Abstract
A capsule is a group of neurons whose activity vector represents the instantiation parameters of a specific type of entity such as an object or an object part. We use the length of the activity vector to represent the probability that the entity exists and its orientation to represent the instantiation parameters. Active capsules at one level make predictions, via transformation matrices, for the instantiation parameters of higher-level capsules. When multiple predictions agree, a higher level capsule becomes active. We show that a discrimininatively trained, multi-layer capsule system achieves state-of-the-art performance on MNIST and is considerably better than a convolutional net at recognizing highly overlapping digits. To achieve these results we use an iterative routing-by-agreement mechanism: A lower-level capsule prefers to send its output to higher level capsules whose activity vectors have a big scalar product with the prediction coming from the lower-level capsule.
캡슐은 activity vector가 객체나 객체 부분과 같은 특정 유형의 인스턴스화 매개 변수를 나타내는 뉴런 그룹이다.
우리는 엔터티가 존재할 확률을 나타내는 activity vector의 길이와 인스턴스화 매개 변수가 나타내는 방향을 사용한다.
한 레벨의 활성 캡슐은 변환 매트릭스를 통해 상위 레벨 캡슐의 인스턴스화 매개 변수를 추론한다.
다수의 예측이 올바를 때, 하위 레벨 캡슐이 활성화된다.
차별적으로 훈련된 다층 캡슐 시스템이 MNIST에서 높은 성능을 달성하였고, 매우 많이 겹치는 숫자를 인식하는데 있어서 CNN보다 더 나은 성능을 보여주었다.
이러한 결과를 달성하기 위해 반복적 routing-by-agreement 메커니즘을 사용한다: 하위 레벨의 캡슐은 하위 레벨의 캡슐로부터 나오는 예측과 함께 큰 스칼라 곱을 가지는 activity vector를 갖는 상위 수준의 캡슐로 출력을 보내는 것을 선호한다.
요약
- 기존의 CNN은 feature 학습에 있어서는 뛰어나지만, feature 간 특수 관게 학습에는 어려움이 존재한다. 또한, 기존에 사용되는 Data augmentation이나 max pooling 같은 경우는 상당히 비효율적 계산 비용을 발생하는 문제를 가지고 있다.
- 우리가 원하는 것은 위치나 크기가 바뀌던 특징을 인식하여 그 물체가 동일한 물체라는 것을 인식할 수 있도록 하는 것이다.
- 여기서 말하는 캡슐은 다수의 뉴런을 하나의 그릅으로 묶어놓은 형태이다. 이러한 다수의 뉴런은 위치, 회전, 크기 등의 특징을 학습하게 된다. 또, 캡슐이 내보내는 출력값을 activation vector라고 하는데, 뉴런의 활성화 정도로 객체를 판단하는게 아니라 벡터의 길이를 통해 객체를 판별해내는 방식이다.
- ROUTING 알고리즘은 캡슐넷의 핵심 알고리즘이다.
- 캡슐넷의 출력으로는 activation vector의 길이로 판단한다고 하였는데, 이때 캡슐에 존재하는 예측된 값을 통해 벡터의 agreement의 정도를 판단하고 최종적으로 agreement가 높은 것이 활성화되어 다음 층의 입력으로 사용된다. agreement의 높고 낮음은 벡터의 방향에 의해 결정되며, 내부적으로 계산되는 가중치에 의해 중요성이 결정된다.
- 캡슐넷의 구조에서 하위 레벨의 캡 슐들은 예를 들어 보트같은 경우 삼각형에 해당하는 돛이 있냐 없냐에 대한 것을 다루고, 상위 레벨 같은 경우는 전체적인 객체의 형태가 보트인지 또는 집인지에 대한 판단을 하게 된다.
- 층의 마지막에 FCN을 사용하여 reconstruction 할 수 있도록 하여 훨씬 더 robust한 모델을 얻을 수 있었다고 한다.
- routing 과정 때문에 학습 또는 추론 속도가 매우 느리다. 또한, 캡슐넷은 매우 동일한 객체가 겹쳐있을 경우, 하나만 인식하고 나머지 하나는 무시해버리는 문제가 있다.
Reference
Sabour, S., Frosst, N., & Hinton, G. E. (2017). Dynamic routing between capsules. In Advances in neural information processing systems (pp. 3856-3866).
https://www.youtube.com/watch?v=_YT_8CT2w_Q&list=PLWKf9beHi3Tg50UoyTe6rIm20sVQOH1br&index=56
'# Paper Abstract Reading' 카테고리의 다른 글
Style Transfer from Non-Parallel Text by Cross-Alignment (0) | 2020.01.16 |
---|---|
Mask R-CNN (0) | 2020.01.16 |
ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices (0) | 2020.01.13 |
Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization (0) | 2020.01.08 |
Conditional Generative Adversarial Nets (0) | 2020.01.08 |