1. 제목

  • Dynamic Routing
  • between 
  • Capsules

"Capsule들 사이에서 기작 하는 Dynamic Routing"

 

직역하면 이런 뜻이 된다.

그렇다면 논문을 읽을 때,

  • Capsule은 뭘까? 그리고 Dynamic Routing은 뭘까?
  • Capsule 사이에서 Dynamic Routing은 어떤 역할을, 어떻게 할까?

이 두 가지 질문을 중심으로 읽으면 되겠다고 감을 잡으면 될 듯 하다.

 

2. Abstract

capsule은 neuron들의 그룹으로, object와 object part의 특정 entity type의 instantiation parameter를  나타낸 벡터 값이다. 우리는 vector의 length로서 entity가 존재하는가의 확률을 나타냄과 동시에, 그 벡터의 방향은 보존한다. Active capsule은 transformation matrix를 통해, 그 위 level의 capsule의 instantioation parameter를 예측한다. 여러 capsule에 의해 prediction이 agree 되었을 대, higher-level capsule이 비로소 active 되는 원리이다. 본 연구는 multi-layer capsule system이 MNIST에 대해 SOTA 모델이며, 특히 겹쳐 있는 숫자 데이터에 대해 convolutional net보다 우수함을 보였다. 이를 위해 본 모델은 "iterative routing-by-agreement mechanism"을 사용한다 (lower-level capsule은 higher level capsule로 output을 보내는데, 그 값은 lower-level capsule과 scalar dot product를 하여 정해진다).

 

목차

1. Human Vision & Parse Tree 
2. Dynamic Routing Capsule Network Architecture
 i) ReLU Conv
 ii) Primary Capsule(=Conv Capsule)
 iii) Digit Capsule
 iv) Reconstruction Decoder
3. Dynmic Routing
 i) Algorithm
 ii) Squash Function
4. Margin Loss
5. Experiment
6, Conclusion & Summary

 

3. Human Vision & Parse Tree

인간의 vision system은 아주 사소한 detail은 무시하도록 되어 있다. 인간의 눈으로는 아주 고해상도가 아니면 보기 어렵기 때문이다. 또한 "Introspection"은 우리가 고정된 포인트의 연속성으로부터 얼마나 scene knowledge를 도출해 내는지, 한 고정된 포인트로부터 얼마나 어렵게 정보를 수집하는지에 대한 설명으로는 많이 부족하다. 하지만 본 연구는 single fixation(고정된 포인트)가 "just a singlee identified object와 그 properties"보다 많은 정보를 준다고 보고 있다. 따라서 multi-layer visual system이 parse tree-like 구조를 각 fixation에 따라 형성한다. 다만, single-fixation에서 multiple fixation으로 결합되는 과정은 무시된다 (이는 모델이 자동으로 weight를 통해 학습한다).

How human vision recognize object?

 

Parse Tree는 memory의 동적 할당을 위해 고안된 방법이다. 하지만 이를 multi-layer neural network에도 적용이 가능하다. 각 layer는 neuron들이 그룹화된 capsule로 구성되고, 각 노드는 active 한 capsule들끼리 연결된다. 여기에 "iterative routing process"를 적용하여, 각 capsule은 상위 capsule을 선택(연결)하게 된다. 그렇다면 위에서 말한, single fixation이 coordinate 되어 single identified object가 되는 문제인 part를 whole에 assign 하는 것을 해결 가능하다.

Capsule's Parse Tree Architecture

 

4. Dynamic Routing Capsule Network Architecture

Dynamic Routing Capsule Network Architecture

 

Convolutional Neural Networks(CNNs)은 학습된 feature detector를 중복해서 사용한다(weight sharing). 이는 이미지의 한 위치에 있는 적절한 weight를 다른 position에도 똑같이 적절하게 적용할 수 있도록 하는 역할을 한다 (이는 image interpretation에서 매우 결정적인 역할을 한다). 본 연구는 비록 CNN의 scalar output을 vector output(capsule)로 바꾸고 max-pooling을 dynamic routing(이후 설명)으로 바꾸기는 하지만, 제안하는 모델 또한 CNN의 효율적 특성(적절한 weight를 이미지의 다른 position에도 적용 가능함)을 그대로 가져가고 싶기 때문에, 마지막 capsule layer는 convolution으로 한다. CNN의 특징을 살림으로써, 본 모델의 higher-level capsule은 image의 더 넓은 부분을 커버할 수 있게 된다. 

 

하지만 max-pooling과 달리, 본 모델(dynamic routing)은 특정 위치에 있는 정보를 버리거나 하지는 않는다. low-level capsule에서는 location정보가 "place-coded(위치가 고정됨)"되며, hierarchical 하게 위로 올라갈수록, 더 많은 positional 정보가 "rate-coded(비율적으로 계산됨)"된다. 이 place to rate의 shift가 higher-level capsule이 더 복잡한 entity(with more DoF)를 뜻하며, 이는 capsule의 차원이 layer level이 높아질수록 커져야 함을 뜻한다.

 

i) ReLU Conv

Conv1은 256 hidden unit, 9x9 convolution kernel, 1 stride, ReLU activation functino으로 구성되어 있다. 이 layer는 pixel intensity를 local feature detector로, 그다음 layer인 Primary Capsule의 input값으로 embedding 하는 역할을 한다. 

 

ii) Primary Capsule(=Conv Capsule)

본 layer는 multi-dimensional entities에 대한 가장 낮은 level의 layer로, inverse graphic관점에서 primary capsule을 activate 한다는 것은 rendering process를 도치시키는 것을 말한다. 이는 근접한 whole을 만들기 위해 part 객체들을 이어 붙이는 것과는 전혀 다른 것이다. 즉, whole에서 part가 아니라, part에서 whole로 가는 것이다.

 

Primary Capsule layer는 convolutional capsule layer의 32개 channel로 구성되어 있으며, 8-D의 convolutional unit(with 9x9 kernel, 2 stride)을 그룹화하여 capsule을 만들었다. 

 

iii) Digit Capsule

마지막 layer인 Digit Capsule은 16-D의 capsule을 가지고 있으며, 이는 routing을 통해 얻어진다. routing은 오직 Capsule layer들 사이에서만 이루어지는데, 이는 Conv1 layer에서는 output이 vector가 아니기 때문에 방향성이 없어 routing의 agreement prediction을 할 수 없기 때문이다. 

 

iv) Reconstruction Decoder

Reconstruction Decoder는 loss의 regularizer로 사용하기 위한 output을 뱉어내며, 이는 digit capsule이 instatntiation parameter를 input digit에 잘 encoding 하기 위함이다. Training 중, 정답 digit capsule을 제외하고 나머지 capsule vector들을 masking 하여 학습한다. 그리고 masking 되지 않은 active vector(digit capsule)을 reconstruction에 사용하는 것이다. 


다음 챕터에서 Dynamic Routing과 Margin Loss에 대한 자세한 설명을 이어가도록 하겠다.

+ Recent posts