A simple neural network module for relational reasoning - 1

이 포스트에 이미지들은 DSBA 연구실 김형석 박사과정의 세미나 발표자료를 활용하여 편집하였습니다.

Introduction

GPU 컴퓨팅 기술, 알고리즘의 발전 그리고 폭발적인 데이터의 증가는 자연스럽게 딥러닝의 발전으로 이어졌습니다. 알렉스넷이 발표된 이후 수많은 네트워크 구조들이 등장했으며 지금은 덴스넷(이전 포스팅)까지 나오게 되었습니다. 이미지 분류쪽은 거의 끝장(?)을 봤다고 해도 좋을 정도로 이미 인간을 넘어섰고 오브젝트 디텍션(object detection)분야 등도 급속도로 발전을 이루어냈습니다. 하지만 그래도 컴퓨터가 넘지 못한 벽이 있었으니..그 벽이 바로 관계 추론(relation reasoning)입니다. 그럼 관계추론이 무엇인지 한 번 살펴보겠습니다.

위 사진을 보셨을 때, 지금까지 큰 성과를 이루어낸 딥러닝 성과는 다음과 같습니다. “여기서 남자가 몇명이야?”, “이 장소가 어디지?” 등 직접적인 질문에 대답하는 것입니다. 하지만 이 질문들을 조금 비틀면 정확도가 현저하게 낮아집니다. “정재윤의 맞은편에는 사람이 몇 명 앉아있지?”, “여기서 초록색 옷을 입은 사람과 같은 성별인 사람은 어디있어?” 등 관계를 추론해야 하는 문제는 해결하기가 어려웠습니다. 사람이 봤을 때는 쉽게 알 수 있는 문제도 학습에 어려움을 느낀다는 것이죠.

Imgur

좌 : 관계추론이 필요 없는 task 우 : 관계추론이 필요한 task

Symbolic approaches

이런 문제를 해결하기 위해 기존에 접근하던 방법이 기호적 접근 방법(symbolic approach)입니다. 이는 간단히 설명하자면 기호(symbol)들 간 관계를 언어와 논리 그리고 수학으로 정의내린 뒤 접근하는 하는 방법이라고 할 수 있습니다. 인공 지능 연구 자체가 최초로 시작된게 이러한 접근 방법입니다. 세상의 모든 것을 기호(symbol)과 그 관계(relation)로 구성된 명제(proposition)라는 수학적 식으로 바꾸고 순차적으로 처리하는 방법입니다. 예를 들어 “사람은 죽는다. -> 나는 사람이다. -> 나는 죽는다.” 그리고 “우유는 하얗다. -> 내가 우유를 마시고 있다. -> 내가 마시고 있는 것은 하얗다.” 이 두 기호(symbol)는 “A는 C다. -> B는 A다. -> B는 C다.”와 같은 공통적인 규칙을 가지고 있습니다.

온 세상 모든 지식을 이런 식으로 묶어내면 인공지능을 만들어 낼 수 있다는게 기호적 접근 방법입니다. 인간을 이긴 체스 컴퓨터 딥블루는 이런 접근 방법의 대표적인 예시입니다. 예전 연구 들은 명제들 사이의 규칙을 어떻게 더 정형화하고 견고하게 구축하는 것인지가 연구의 최종 목표였습니다. 이 방법은 신경망 기반의 방법론에 비해서 분명히 장점이 있습니다. 도대체 이 안에서 무슨 일이 벌어지는지 알 수 있다는 것입니다. 딥러닝 기반 모델들이 블랙박스라서 안에서 무슨 일이 일어나는지 알아내기 어렵다는 것(블랙박스)과는 대비된다고 할 수 있습니다.

Symbol Grounding Problem

하지만 이 방식은 매우 큰 단점이 있었으니 그게 바로 기호 접지 문제(symbol grounding problem)가 발생한다는 점입니다. 기호들로 명제를 정형화 시킨다는 것은 좋으나 이 관계 구축이 너무나도 어렵다는 것입니다. 실제 개체와 기호 사이의 관계 그리고 명제에서 구성된 기호 사이의 관계와 실제 개체 사이 관계를 구성할 수 있는 방법이 쉽지 않습니다.

예를 들어 “나는 러시아를 여행중이야.” 라는 문장이 있다면 사람들은 이 문장을 쉽게 이해할 수 있습니다. 그러나 이 명제를 정리해보면 매우 복잡합니다. 나와 나 사이의 관계, 러시아와 러시아 사이의 관계 그리고 “~는 ~를 ~하는중이다.”라는 구성원리와 실제 세계의 규칙 사이의 관계가 모호하며 실질적으로 간단히 연결시킬 수 없습니다.

실제 세계는 너무나도 복잡한 연속적인(continuous) 개체인데 단어는 이산적인(discrete)한 개체입니다. 얼굴을 묘사할 때 “코는 우뚝 솟아 있고 눈은 사슴눈망울 처럼 초롱초롱하며 입술은 앵두같다.”라고 묘사해도 똑같이 재현하기는 매우 어렵습니다. 일단 “사슴눈망울 같이 초롱초롱 한 눈”을 제대로 표현하기 위해서라도 엄청나게 많은 기호가 필요하며 이 기호를 전부 관계를 만들어주기 위해서는 명제도 기하급수적으로 늘어나버립니다. 또한 이산적인 단어들조차도 시간이 지남에 따라서 조금씩 변형되어가며 이에 맞춰 끊임없이 바꿔줘야 하며 변하는 뜻에 따라 관계도 새로 재정립해주어야 합니다. 또한 작은 태스크나 입력에 조그마한 변동이 생기는 것에도 약한 모습을 보입니다.

여기서 다 설명하자면 너무 길기에 인공지능 역사 관련된 글은 기회가 된다면 따로 포스팅 하도록 하겠습니다.

전반적인 특징

RN의 전반적인 특징은 다음과 같습니다.

  • Plug and play : 말 그대로 네트워크 뒤에 붙여주면 쉽게 적용이 됩니다.
  • SOTA급의 인간을 뛰어넘은(super-human)성능을 보여줍니다.
  • Unstructured input을 가지고 그 내부에 있는 관계를 추론할 수 있습니다.

최근 visual question answering에서 좋은 성능을 낸 방법론들이 관계 추론에서 어려움을 겪었다면 RN을 활용하면 좋은 성능을 낼 수 있다고 논문 저자들이 설명하고 있습니다. 다양한 데이터셋을 가지고 실험을 했을 때, 어느 한쪽 치우치치 않고 전부 좋은 성능을 내고 있는게 관계 추론에서 굉장히 robust하다고 근거를 대고 있습니다.

Relation Networks

RN을 함수로 간단히 표현하면 아래와 같습니다.

\[RN(O)={ f } _ { \phi }(\sum _{ i,j }^{ }{ { g }_{ \theta }({ o }_{ i },{ o }_{ i }) })\]

여기서 입력되는 object는

\[O=\left\{ { o }_{ 1 },{ o }_{ 2 },...,{ o }_{ n } \right\} ,{ o } _ { i }\in { { R } }^{ m }\]

입니다. ${ f } _ {\phi}$와 ${ g } _ { \theta }$는 모두 MLP(Multi layer perceptron)이고 미분이 가능하므로 end-to-end로 학습이 가능합니다. 함수 ${ g } _ { \theta }$의 결과물을 “relation”이라고 할 수 있습니다. RN은 다음과 같은 세 가지 장점이 있습니다.

RNs learn to infere relations

RN의 식을 보면 RN이 모든 오브젝트들에 대한 관계를 고려한다는 것을 알 수 있습니다$(\sum _ { i,j }^{ }{ { g } _ { \theta }({ o } _ { i },{ o } _ { i }) } )$. 또한 어떤 오브젝트 관계가 실제로 존재하는지 또는 어떠한 특징이 있는지 접근할 필요가 없습니다(논문에 나온 말 그대로 번역했는데, 위에 설명한 기호 접근 방법이랑 다르다는 뜻인 듯 합니다). 이 오브젝트들 간 관계를 추론하는게 RN이 학습하는 목표입니다.

그래프 관점에서 봤을 때, 입력되는 데이터를 노드들이 완전히 연결된 그래프이며 엣지(edge)들을 이들의 관계라고 할 수 있습니다. 즉 a, b, c 등 노드들은 입력된 데이터를 구성하는 내용물이며 노드를 연결한 선들이 관계를 표현해주는 것입니다. 만약 연결 관계를 알고있다면 그 엣지들만 그대로 입력해도 되며 나중에 upstream mechanism을 사용하여 다시 뽑아낼 수도 있을 것입니다.

RNs are data efficient

${g} _ {\theta}$는 각 관계(relation)를 계산하는 간단한 단일 함수입니다. 이는 오브젝트 조합의 배치가 입력되는 함수라고도 볼 수도 있습니다. 이는 다시말해서 어떤 특정한 오브젝트 조합에 ${g}_{\theta}$가 과적합 되지 않는다는 것이며 관계 계산에서 큰 일반화(generalization) 효과가 있습니다.

RNs operate on a set of objects

$RN(O)={ f } _ { \phi }(\sum _ { i,j }^{ }{ { g } _ { \theta }({ o } _ { i },{ o } _ { i }) } )$ 위에서 쓴 이 식을 보면 입력 데이터의 순서에 영향을 받지 않는다는 것을 알 수 있습니다(invariant to the order of objects in the input). 이 말은 마찬가지고 결과물(output) 또한 invariant하다는 말과 같습니다. 즉, 이러한 invariance는 RN의 결과물이 오브젝트 조합들에 존재하는 대표적인 관계들의 정보를 담고 있다는 것을 뜻합니다.

이제 Relation Network에 대해 간략하게 살펴보았으니 다음 포스트에서는 네트워크 구조에 대해 자세히 알아보도록 하겠습니다.

Reference

  • Santoro, Adam, et al. “A simple neural network module for relational reasoning.” arXiv preprint arXiv:1706.01427 (2017).