딥러닝의 아버지 힌튼이 제안한 새로운 연구
인공지능은 몇 년 사이에 어떤 기업이든 투자해야 하는, 반드시 해야 되는 기술이 되어 버린 느낌입니다. 그리고 대부분의 연구자에게 이런 인공지능 붐의 핵심 기술이라고 할 만한 딥러닝의 아버지를 한명 꼽아보라고 한다면, 아마도 Geoffrey Hinton 교수를 꼽을 것 같습니다. 그만큼 딥러닝을 오랫동안 연구 해 왔고, 가장 공로가 크다고 볼 수 있는 연구자인 Hinton 교수가 몇 개월 전에 GLOM이라는 논문을 arXiv 에 올렸습니다.
흥미로운 점은 그냥 개념에 대해서 설명한 이론적인 논문이고 실제로 동작하는 시스템은 아니라는 것입니다. 사실 일반적인 연구자가 이런 실체가 없는 시스템에 관한 논문을 올리면 별 주목을 받지 못할텐데, Hinton 교수이기 때문에 연구자들 사이에서 많은 주목을 받았었습니다. Hinton 교수는 예전부터 지능의 비밀을 알아냈다고 자주 말하고 다녀서 이런 것들을 개그 요소로 써먹기도 했었는데요, 그만큼 혁신적인 시도를 많이 하는 뛰어난 분이고, 이런 논문을 바탕으로 이미 동작하는 모델에 관한 연구도 다양하게 많이 하고 있을 것이니 어찌되었건 좋은 연구라고 볼 수 있을 것 같습니다.
Hinton 교수가 발표하여 한 때 굉장히 주목 받은 Capsule Network 같은 모델 같은 경우 아직 실용화되어 쓰이는 케이스는 잘 없지만, 이런 것들이 모이다 보면 인공지능 기술이 한 단계 더 도약할 수 있지 않을까요. 아무튼 이 GLOM이 어떤 내용인지 대략적으로 살펴보면, 현재 한계에 부딪친 듯 보이는 것들을 어떻게 돌파 해 나갈지에 관한 고민들을 엿 볼 수 있는 거 같습니다.
사실 GLOM은 기존의 CapsNet 같은 것 처럼 새로운 모델을 의미하는 것은 아닙니다. Computer Vision 분야에서 몇 가지 최근에 이뤄진 성취들을 모아서 GLOM이라고 명명하였습니다. 아래의 연구들을 접목시켜서 새로운 아키텍쳐를 고안한 것입니다.
Transformer
Neural Fields
Contrastive Representation Learning
Distillation
Capsules
논문에서는 biologically inspried 되었다고 말하고 있습니다. 사람/동물 지능의 원리에서 차용했다고 합니다. 인간의 경우 visual scene을 part-whole hierachies 로 파싱한다고 합니다. 말이 좀 어려운데, 눈으로 어떠한 이미지를 본다면 부분적으로 나누어서 그것이 무엇인지를 parse tree 형태로 분석을 한다는 이야기 입니다. 리뷰 영상의 예시를 그대로 가져오면, 자동차를 볼 때 창문, 문짝, 바퀴 등을 나누어서 계층화하여 이해할 수 있다는 의미입니다. 그렇기 때문에 비교적 처음 본 물체라고 해도 사람의 경우 어느정도 이해, 추론을 할 수 있습니다.
Neural Network 의 경우 이런 파싱을 하는 것이 가능은 하지만, parse tree 내의 node에 다이내믹하게 뉴런을 할당하는 것은 쉽지가 않으며 대신에 node사이 connection들의 weight이 변경되는 방식으로 동작하게 됩니다.
GLOM 에서는 이 문제를 해결하기 위해서 static neural network 이 이미지를 많은 갯수의 column으로 나누고, 각각의 column에는 multiple level of representation을 학습하는 local autoencoder 를 쌓게 됩됩니다. (stack 형태) 그리고 각각의 autoencoder 는 bottom-up, top-down decoder 를 사용해서 next level 로 embedding 값을 변경해 줍니다. (이게 뭔말이여?)
위와 같이 설명하면 사실 전혀 이해가 안가는데요, 아래 그림을 참고해 보겠습니다.
빨간 펜으로 그려진 고양이 이미지를 인식한다고 할 때, 격자 형태로 column (image patch) 으로 나뉘게 됩니다. 각각의 column에는 local autoencoder stack 이 쌓여지게 됩니다. 밑에 층일수록 low level representation 을, 높은 층일수록 high level representation을 추출하게 됩니다. 예를 들어, 고양이 귀 쪽에 있는 column 에서는 첫번째 층은 털, 두번째 층은 귀, 세 번째 층은 고양이 머리, 네 번째 층은 고양이 이런식으로 말입니다. 대부분의 Neural Network 구조가 이렇게 input 에 가까운 layer 일 수록 low-level, 뒤쪽일수록 high-level representation 을 추출하긴 하지만 각각의 column마다 정보를 가진 형태가 아니고 해당 layer의 정보가 모두 있어야 됩니다. (아닌 모델들도 있지만) GLOM에서는 각각의 image patch 들 마다 정보를 가질 수 있는 구조이기 때문에 사람/동물의 인식 체계처럼 part-whole hierarchy를 찾아낼 수가 있습니다.
구조 자체는 생각하기 쉬울 수도 있지만, 각각의 column 들이 어떻게 정보를 주고받고, 어떻게 학습할지가 가장 문제겠죠.
하나의 column 내에서는 bottom-up, top-down, 동일 레벨 내에서까지로 3 가지 값을 average하여 임베딩 값을 전달합니다.
또한 Nearby column들 사이에서는 동일한 level에서의 임베딩을 비교하게 되는데, 위의 이미지에서 2번째 레벨 (sub-part level) 에서 파란색과 분홍색 화살표는 같은 임베딩을 의미하며, 이들은 머지되게 됩니다. 이로써 동일한 sub-part 부분이라는 것을 알 수 있죠. 그 위의 레벨에서도 빨간색, 초록색 임베딩 값이 같은것들이 머지되어 동일한 part라는 것을 알 수 있습니다. 계속 level이 올라가면 어떤 부분에 어떤 object가 있고, 전체적인 이미지의 scene은 무엇을 뜻하는지 등도 알 수 있을 것입니다.
이처럼 일반적인 Neural Network 의 weight 방식이라기 보다는 consensus 알고리즘에 가깝다고 합니다. 해당 논문에는 GLOM 의 디자인에 대한 다양한 내용, 예를 들어 얼마나 많은 level로 나눌 지, 어떻게 location을 정의할 지 등에 관해서도 논하고 있고 기존의 Capsule model, Transformer model, 일반적인 CNN 등과 비교하여 설명한 내용들도 있습니다.
이 연구 자체는 아직 application level 로 뭔가 나온게 없다보니 뭐라 말은 하기 힘들지만, 실제로 학습이 되어서 의도한대로 동작만 한다면 꽤 괜찮을 것 같습니다. 다만, 이런 구조는 예전부터 비슷한 생각을 가진 연구자들이 많았을 텐데 아직 실제로 동작할 만한 구조를 만들기가 쉽지 않을 것 같습니다. 컨셉은 어렵지 않게 생각할 수 있겠지만, 이것을 어떻게 학습 시켜서 동작하도록 만들 지 궁금합니다.
다만 예전에 CapsNet과 같은 연구도 그렇지만, 구조적으로 좋은 것과 실용적으로 쓰기 좋은 것과는 아직 괴리가 있는게 사실입니다. 이런 연구들이 application level 로 가능한 게 나와서 검증이 되고, 그런 다음에 실제로 서비스에 쓰일 수 있을 정도로 기술 수준이 올라오려면 최소 몇 년이 걸릴 것입니다. 하지만 많은 뛰어난 분들이 열심히 연구하고 있는 만큼, 앞으로가 더 기대되네요!
리뷰 유튜브 영상 : https://youtu.be/cllFzkvrYmE