캡슐 신경망(CapsNet)은 계층적 관계를 더 잘 모델링하는 데 사용할 수 있는 인공 신경망(ANN)의 한 유형인 기계 학습 시스템이다. 이 접근 방식은 생물학적 신경 조직을 더 밀접하게 모방하려는 시도이다. 핵심 아이디어는 합성곱 신경망(CNN)에 "캡슐"이라는 구조를 추가하고, 여러 캡슐의 출력을 재사용하여 (다양한 섭동에 대해) 더 안정적인 표현을 상위 캡슐에 형성하는 것이다. 출력은 관측값의 확률과 해당 관측값의 포즈로 구성된 벡터이다. 이 벡터는 예를 들어 CNN에서 분류와 위치 파악을 동시에 수행할 때 사용되는 것과 유사하다.
다른 이점들 중에서도 캡슐 신경망은 이미지 인식에서 "피카소 문제"를 해결한다. 즉, 모든 올바른 부품을 가지고 있지만 올바른 공간적 관계에 있지 않은 이미지(예: "얼굴"에서 입과 한쪽 눈의 위치가 바뀐 경우)를 처리한다. 이미지 인식의 경우, 캡슐 신경망은 시점 변화가 픽셀 수준에서는 비선형 효과를 가지지만 부품/객체 수준에서는 선형 효과를 가진다는 사실을 활용한다. 이는 여러 부품으로 구성된 객체의 렌더링을 역전시키는 것과 비교할 수 있다.
역사
2000년, 제프리 힌턴(Geoffrey Hinton) 등은 구문 분석 트리를 사용하여 분할과 인식을 단일 추론 프로세스로 결합한 이미징 시스템을 설명했다. 소위 신뢰도 네트워크(credibility networks)는 잠재 변수와 가능한 구문 분석 트리에 대한 결합 분포를 설명했다. 이 시스템은 MNIST 손글씨 숫자 데이터베이스에서 유용함이 입증되었다.
캡슐 네트워크를 위한 동적 라우팅 메커니즘은 2017년 힌턴과 그의 팀에 의해 도입되었다. 이 접근 방식은 MNIST에서 오류율을 줄이고 훈련 세트 크기를 줄이는 것으로 주장되었다. 결과는 겹침이 심한 숫자에서 CNN보다 상당히 우수한 것으로 주장되었다. 힌턴의 원래 아이디어에서 하나의 미니컬럼(minicolumn)은 하나의 다차원 엔티티를 표현하고 감지할 것이다.
변환
불변량(invariant)은 어떤 변환의 결과로 변하지 않는 객체 속성이다. 예를 들어, 원의 면적은 원이 왼쪽으로 이동해도 변하지 않는다. 비공식적으로, 등변량(equivariant)은 변환 하에서 예측 가능하게 변하는 속성이다. 예를 들어, 원의 중심은 원이 이동할 때 원과 같은 양만큼 이동한다. 비등변량(nonequivariant)은 변환 하에서 값이 예측 가능하게 변하지 않는 속성이다. 예를 들어, 원을 타원으로 변환하면 둘레를 더 이상 π 곱하기 지름으로 계산할 수 없다.
컴퓨터 비전에서 객체의 클래스는 많은 변환에 대해 불변량일 것으로 예상된다. 즉, 고양이는 이동하거나, 뒤집히거나, 크기가 줄어들어도 여전히 고양이이다. 그러나 다른 많은 속성은 대신 등변량이다. 고양이의 부피는 크기가 조정될 때 변한다. 공간적 관계와 같은 등변량 속성은 객체의 이동, 회전, 크기 및 반사를 설명하는 데이터인 포즈에 포착된다. 이동은 하나 이상의 차원에서 위치의 변화이다. 회전은 방향의 변화이다. 크기는 크기의 변화이다. 반사는 거울 이미지이다.
비지도 캡슐 신경망은 객체와 그 포즈 사이의 전역 선형 다양체를 가중치 행렬로 학습한다. 즉, 캡슐 신경망은 객체를 포즈와 독립적으로 식별할 수 있으며, 공간적 관계를 객체의 일부로 포함하여 객체를 인식하도록 학습할 필요가 없다. 캡슐 신경망에서 포즈는 공간적 관계 이외의 속성(예: 색상 - 고양이는 다양한 색상일 수 있음)을 통합할 수 있다. 객체에 다양체를 곱하면 객체가 포즈를 취하게 된다(공간에서 객체의 경우).
풀링
캡슐 신경망은 다음 상위 계층에서 처리할 세부 정보의 양을 줄이는 기존 CNN의 풀링 계층 전략을 거부한다. 풀링은 어느 정도의 이동 불변성(다소 다른 위치에서 동일한 객체를 인식할 수 있음)을 허용하고 더 많은 수의 특징 유형을 표현할 수 있게 한다. 캡슐 신경망 지지자들은 풀링이 다음과 같은 문제가 있다고 주장한다:
- 내재적 좌표 프레임이 없어 생물학적 형태 인식을 위반한다.
- 등변량(정보 분리) 대신 불변량(위치 정보 폐기)을 제공한다.
- 이미지 간의 많은 변형의 기초가 되는 선형 다양체를 무시한다.
- 잠재적인 "발견"을 인식할 수 있는 특징에 전달하는 대신 정적으로 라우팅한다.
- 주변 특징 감지기를 손상시켜 의존하는 정보를 삭제한다.
캡슐
캡슐은 위치, 크기, 색조와 같은 객체 유형의 다양한 속성에 대해 개별적으로 활성화되는 뉴런 집합이다. 공식적으로, 캡슐은 각 뉴런의 인스턴스화 값을 보유하기 위해 각 뉴런에 대한 요소를 가진 활동 벡터를 집합적으로 생성하는 뉴런 집합이다(예: 색조). 그래픽 프로그램은 인스턴스화 값을 사용하여 객체를 그린다. 캡슐 신경망은 입력에서 이를 파생시키려고 시도한다. 특정 입력에서 엔티티 존재의 확률은 벡터의 길이이고, 벡터의 방향은 캡슐의 속성을 정량화한다.
전통적으로 인공 뉴런은 관측값의 확률을 느슨하게 나타내는 스칼라 실수 활성화를 출력한다. 캡슐 신경망은 스칼라 출력 특징 감지기를 벡터 출력 캡슐로, 최대 풀링을 라우팅-합의(routing-by-agreement)로 대체한다. 캡슐은 독립적이기 때문에 여러 캡슐이 일치하면 올바른 감지 확률이 훨씬 높아진다. 6차원 엔티티를 고려하는 두 캡슐의 최소 클러스터는 10% 이내에서 우연히 일치할 확률이 백만 번의 시도 중 한 번뿐이다. 차원 수가 증가함에 따라 더 높은 차원을 가진 더 큰 클러스터에서 일치할 확률은 기하급수적으로 감소한다.
상위 계층의 캡슐은 하위 계층의 캡슐에서 출력을 가져와 출력이 클러스터링되는 것을 수용한다. 클러스터는 상위 캡슐이 엔티티가 존재한다는 높은 관측 확률을 출력하고 또한 고차원(20-50+) 포즈를 출력하게 한다. 상위 수준 캡슐은 이상치를 무시하고 클러스터에 집중한다. 이는 고전적인 디지털 이미지 처리의 허프 변환, RHT 및 RANSAC과 유사하다.
합의에 의한 라우팅
한 캡슐(하위)의 출력은 상위 캡슐의 출력을 예측하는 능력에 따라 다음 계층의 캡슐(상위)로 라우팅된다. 몇 번의 반복 동안 각 상위 캡슐의 출력은 일부 하위 캡슐의 예측과 수렴하고 다른 하위 캡슐의 예측과는 발산할 수 있으며, 이는 해당 상위 캡슐이 장면에 존재하거나 존재하지 않음을 의미한다. 각 가능한 상위 캡슐에 대해 각 하위 캡슐은 출력에 가중치 행렬(역전파로 훈련됨)을 곱하여 예측 벡터를 계산한다. 다음으로 상위 캡슐의 출력은 예측과 이 하위 캡슐이 해당 상위 캡슐에 속할 확률을 나타내는 계수의 스칼라 곱으로 계산된다. 예측이 결과 출력에 상대적으로 가까운 하위 캡슐은 해당 상위 캡슐과 하위 캡슐 사이의 계수를 연속적으로 증가시키고 다른 캡슐에 대해서는 감소시킨다.
캡슐 네트워크는 Deep learning 내에서 활발한 연구 분야로 남아 있으며, 명시적 공간 계층 구조가 필요한 작업에서 기존 CNN에 대한 대안을 제공한다. 이는 Artificial intelligence 및 Machine learning과 같은 맥락에서 탐구되었으며, Computer vision 및 Robotics와 같은 분야에 잠재적 응용 가능성이 있다. Transformer (architecture) 기반 모델만큼 널리 채택되지는 않았지만, 등변량 표현과 라우팅 메커니즘에 대한 연구에 계속 영감을 주고 있다.