How to represent part-whole hierarchies in a neural network

🏷️ "#논문" "#제프리힌턴"

How to represent part-whole hierarchies in a neural network (GLOM, 2021)

신경망이 구문 구조를 이해할 수 있을까요? 단어는 음소로, 문장은 단어와 구로 이루어집니다. 이 계층 구조를 신경망의 벡터 공간에 어떻게 짜넣을 것인가라는 질문에 대해, Hinton은 GLOM이라는 프레임워크로, 같은 벡터의 "섬"들이 파스 트리(parse tree) 노드를 표현하는 방식을 제안했습니다. 엔티티와 속성 사이의 관계를 동적으로 묶는다는 아이디어는, 트랜스포머 이후 구조 이해에 대한 근본적인 질문을 던집니다.

[1] G. E. Hinton, "How to represent part-whole hierarchies in a neural network," arXiv preprint arXiv:2102.12627, 2021.

배경

2021년, Transformer가 지배적이었지만 Hinton은 어텐션이 부분-전체 계층 구조를 명시적으로 표현하지 못한다는 점에 주목했습니다. 코드나 실험 없이 순수한 아이디어만으로 구성된 이례적 논문입니다.

저자 소개

Geoffrey Hinton 단독 저자입니다. Google Brain 명예 연구원으로 활동하면서 캡슐 네트워크(2017)의 후속 연구로 이 아이디어를 발전시켰습니다. 1980년대부터 파스 트리의 신경망 표현을 고민해온 수십 년간의 사유가 응축된 결과물입니다.

요약

기술 스펙: 다층 신경망에서 각 층마다 여러 개의 벡터(capsule 유사) 세트를 유지합니다. 같은 의미를 나타내는 벡터들이 동일 값으로 수렴(collapse to islands)하면서 자동으로 부분-전체 의존성을 형성합니다. 예를 들어 눈, 코, 입 벡터들이 "얼굴" 벡터로 단합됩니다.

핵심 혁신: 벡터가 캡슐화되지 않습니다. 대신 "섬"이라는 비유로 같은 값이 공간 상 여러 위치에서 나타납니다. 이를 통해 다대일 관계(many-to-one, 예: 다양한 눈 벡터 → 얼굴)와 일대다 관계(one-to-many, 예: 얼굴 → 눈, 코, 입)를 동시에 표현합니다. 구문 분석 트리를 명시적으로 구축하지 않으면서도 계층 구조가 자동 생성됩니다.

논문 상세

배경

신경망, 특히 트랜스포머는 선형 변환과 어텐션으로 작동합니다. 그런데 자연 이미지나 자연 언어는 명백한 부분-전체 구조를 가지고 있습니다. 얼굴은 눈, 코, 입으로 이루어지고, 문장은 주어절과 술어절로 이루어집니다.

기존 접근: - 명시적 파스 트리: 번거롭고 엔드-투-엔드 학습이 어렵습니다. - CNN의 계층적 필터: 위치에 고정됩니다. 얼굴이 이미지 어디든 나타나야 하는데, CNN은 위치별로 다른 필터를 학습해야 합니다. - 캡슐 네트워크: 벡터 형태로 엔티티를 표현하지만, 관계 표현이 명확하지 않습니다.

GLOM의 핵심 문제의식: 벡터 하나로는 "노드의 정체"를 나타낼 수 없습니다. "얼굴"이라는 개념이 이미지의 여러 위치에 나타날 수 있는데, 각 위치마다 다른 가중치로 저장해야 한다면 어떻게 해야 할까요?

방법론

GLOM은 고정된 벡터 크기의 "콜럼" 구조를 사용합니다. 각 콜럼은 이미지(또는 시퀀스)의 한 위치에 대응합니다. 각 콜럼은 여러 "레벨"을 가지는데: - 레벨 0: 픽셀 값 - 레벨 1: 엣지, 텍스처 같은 저수준 특징 - 레벨 2-4: 부분, 객체, 장면 같은 고수준 개념 - 각 레벨은 벡터로 표현됩니다

학습 규칙(핵심): 1. 앞먹임(top-down): 높은 레벨 벡터(예: "얼굴")는 아래 레벨 벡터들(예: "눈", "코", "입")을 예측합니다. 2. 아래먹임(bottom-up): 낮은 레벨 벡터들은 높은 레벨 벡터를 구성합니다. 3. 수평 상호작용: 인접 콜럼들 간의 벡터 동기화입니다. 같은 객체에 속하면 같은 높은 레벨 벡터로 수렴해야 합니다.

수렴 과정: - 초기: 각 콜럼의 높은 레벨 벡터는 다릅니다 (위치별로 다른 얼굴 조각). - 반복: 앞먹임과 아래먹임, 그리고 인접 콜럼의 영향으로 비슷한 벡터들이 점점 같은 값으로 수렴합니다. - 최종: 같은 객체에 속한 콜럼들의 높은 레벨 벡터가 동일해집니다 ("섬" 형성).

이 "섬"들이 곧 파스 트리의 노드입니다. 트리 구조를 명시적으로 구축할 필요가 없습니다.

결과

논문의 결과는 사변적(speculative)입니다. Hinton은 시뮬레이션이나 대규모 실험을 보여주지 않습니다. 대신 아이디어의 논리적 일관성과 생물학적 타당성(뇌의 피드포워드-피드백 구조와 유사)을 강조합니다.

제시된 간단한 사례들: - 여러 위치에 배치된 간단한 도형들이 각 위치마다 독립적으로 인식되면서, 같은 도형은 높은 레벨에서 같은 벡터로 표현됩니다. - 부분-전체 계층이 명시적 라벨링 없이 자동 형성됩니다.

생각

잘한 점

문제 설정이 깔끔합니다. "신경망이 구조를 이해한다는 게 무엇을 의미하는가?"라는 철학적 질문을 수학적으로 번역했습니다.

생물학적 타당성을 고려했습니다. 역전파는 뇌에서 일어나지 않는다고 알려져 있습니다. GLOM의 앞먹임-아래먹임 상호작용은 뇌의 실제 회로(시각 피질의 피라미드 구조)와 더 유사합니다.

캡슐 아이디어의 진화입니다. 2017년 캡슐 네트워크와 달리, GLOM은 벡터를 활성화하지 않습니다. 대신 분포된 표현 내에서 "섬" 같은 구조가 자동 형성되는 방식으로, 더 우아한 해결책을 제시합니다.

한계

구현과 실증이 부재합니다. 논문에 코드나 실험 결과가 없습니다. 이론적으로는 아름답지만, 실제로 작동하는지 검증되지 않았습니다. 2024년 현재도 GLOM의 전체 구현체는 학계에서 주목받지 못했습니다.

계산 복잡도가 불명확합니다. 각 콜럼에서 여러 레벨이 반복적으로 수렴해야 합니다. 수렴 속도, 필요한 반복 수, GPU 메모리 요구량이 명시되지 않았습니다.

학습 신호가 애매합니다. 앞먹임과 아래먹임 신호를 어떻게 조합할지, 각 신호의 강도는 어느 정도인지 상세하지 않습니다. 하이퍼파라미터 민감성은 어떨까요?

부분-전체 관계만 다룹니다. 속성 바인딩(attribute binding) 같은 더 복잡한 관계는 어떻게 표현할지 불명확합니다. 예를 들어 "빨간 삼각형과 파란 원"을 어떻게 구분하는지에 대한 답이 없습니다.

의의

GLOM은 트랜스포머 이후 구조 학습의 근본 문제를 제기했습니다. 어텐션은 모든 토큰 간에 부드러운 관계를 만드는데, 진정한 구조(예: 문법)는 이산적입니다. 이 간극을 어떻게 메울 것인지에 대한 질문입니다.

또한 신경망의 "해석가능성(interpretability)"이라는 새로운 화두도 제시했습니다. GLOM이 작동한다면, 각 "섬"이 의미 있는 개념을 나타내므로, 네트워크가 무엇을 학습했는지 직관적으로 읽을 수 있습니다.

그럼에도 2024년 현재, GLOM은 주류 딥러닝 아키텍처가 되지 못했습니다. 트랜스포머의 단순함과 확장성이 구조 학습의 우아함보다 실용적이었기 때문입니다. 하지만 구조 학습의 이론적 기초로서, 그리고 신경망이 계층을 "어떻게" 형성하는지를 이해하는 도구로서 여전히 중요한 논문입니다.

후속 연구 링크

GLOM은 실험 결과 없이 아이디어만 제시한 사변적 논문으로, 2026년 현재까지 Hinton의 후속 논문에서 직접적인 구현이 이루어지지는 않았습니다. 이 논문은 Dynamic Routing Between Capsules에서 시작된 부분-전체 표현 연구의 이론적 정점입니다.