Deep Learning

Neuro-symbolic AI 에 대해서 (2) neural network + symbolic AI

햇농nongnong 2021. 1. 25. 01:23

앞의 neuro-symbolic AI (1) 글을 통해 connectionsim 과 symbolism 을 이해했다면, 이 둘 neural network + symbolic AI 를 합친 "neuro-symbolic AI" 에 대해 자세히 알아보자.

 

Neuro-symbolic AI 란?

위의 질문은 사진을 보고 특징을 파악한 질문을 이해해서 문제를 해결해야 한다. 이러한 연구들을 MIT, IBM 연구실에서 많이 하고 있다.

 

 

위의 질문처럼 사진이 주어지면 사진을 보고 (visual perception), 질문에 맞게 (question understanding), 3이라고 답해야 하는데(logic reasoning) 이렇게 답을 하기 위해서는 일반적인 딥러닝 CNN, RNN 만으로는 어렵다. 경우에 symbolic AI 섞어서 논리적으로 추론하여 답을 풀어낼 있다.

 

Visual Perception 경우에는 neural networkCNN잘하는부분이고, question understanding NLPLSTM, RNN잘하는부분이다. 그리고 답을 추론해야 하는 logic reasoning symbolic AI 잘하는 부분이다.

 

David Cox 이처럼 neural network symbolic AI 서로 대립하지 말고, neural network 은 neural network 대로, symbolic 은 symbolic 대로 두고 collaborate 하자고 주장한다.

 

위의 문제를 해결하는 전반적인 과정은 아래와 같다.

 

Mask r-cnn 통해 input image segmentation 하고 CNN 거쳐 여기서 물체들이 어떤 것을 대표하는지 특성을 잡아내고 것을 구조화해서 ‘structural scene representation’ 만든다. (c) structural scene representation 보면 input image 박스 5개에 대한 특성들 (size, shape, material, color, 위치) 뽑아내 구조화 것을 있다.

 

이후 question parsing 단계로 넘어가서 LSTM 이용해 질문을 구문해석해서 뽑아내고, 것을 domain specific language 바꿔준다. LSTM 거친 결과들을 filter_shape 등과 같이 도메인에 최적화된 프로그래밍 언어로 바꾸어주는 것이다. (e) Program 보면 scene 에서 cylinder 필터링하고 뒤에 있는 것들에 대한 관계를 보는 이런 결과들을 Program 집어넣으면 (c) 의 구조화된 데이터와 (e) 의 프로그램이 같이 실행되어 처리 되고 답이 나올 있게 된다.

 

위의 과정들을 카테고리로 나누어보면 아래와 같이 나눌 있다.

 

- 첫번째 과정은 vision 처리해 압축화된 feature 뽑아내 과정이니 ‘Vision(CNN)’ 이라고 있다.

- CNN 에서 나온 feature 구조화해서 나타내기 때문에 ‘structured representation’ 이라고 있다.

- 주어진 질문을 처리해서 프로그램으로 바꿔주는 과정 언어를 처리하는 과정이니 ‘Language(RNN)’ 이라고 있다.

- 이렇게 해서 만든 프로그램을 symbolic AI(symbolic programming) 이용해서 답을 있으니 ‘Symbolic Program’ 이라고 있다.

 

가지 단계가 겹쳐져서 neuro-symbolic AI 구성하고 왼쪽의CNN, RNN Neural network 파트, 오른쪽의 structured representation, symbolic program Symbolic AI 파트이다. 가지가 결합하면 복잡한 문제도 있다.

 

정리하자면, vision 거치고 symbolic representation 거쳐 feature 준비되면, 질문에 대해 RNN 거치는데 이후 바로 answer 나오는 것이 아니라 ‘symbolic program’ 을 거친다는 중요하다. 여기서 symbolic program structured representation 위에서 operate 한다.

 

과정 jointly trained with the reinforcement learning, 강화학습으로 같이 트레이닝되고, 공동으로 트레이닝되어도 각각의 CNN, RNN 추구하는 것은 다르다.

- RNN learn to better parse language into the program

- CNN learn to better extract symbols into the structured representation

- 이런 전 과정이 jointly together trained 이기 때문에 시스템은 아예 ‘genuine new hybrid’ (새로운 혼합) 시스템이라고 있다.

 

사진에서도 사진 input 받으면 vision 처리하고, structured representation 거친 질문에 대한 semantic parsing 거쳐 program 넣고, 프로그램과 structured representation 으로부터 symbolic reasoning 가능해진다. 이런식으로 접근한다면 딥러닝만으로는 푸는 문제도 reasoning 통해 있을 것이라고 기대한다.

 

그렇다면, 이런식으로 neural network symbolic reasoning 합한 neuro-symbolic AI 의 장점 무엇일까?

먼저 높은 정확도 가진다.

물론 간단한 문제들은 CNN 하나로도 높은 정확도를 가질 있겠지만, 지금까지의 예시들처럼 복합적인 문제를 때도 neuro-symbolic AI 높은 정확도 보인다.

 

두번째로 데이터 효율 좋다.

Input image 가지고 structured data 만들기 때문에, 작은 양의 data 가지고도 분류하고 처리 있게 된다.

 

세번째로 과정을 투명하게 볼 수 있고 해석가능성도 좋다.

 

세번째 장점이 가장 중요한데, 사람들은 항상 AI 추론한 결과를 보고 그러한 결정을 내렸는지 궁금해하지만 없다. symbolic AI 경우에는 tends to show their work. They work in terms of concept(symbol).

 

This system translated from natural language to “program”, we can step through the program.

, 시스템이 concept symbol 받아들이고 NLP 거친 “Program” 으로 넣기 때문에 프로그램 안을 들여다보면 과정들을 있으며 추적 가능하고, reasoning 하는 과정까지 있으므로 투명하고 해석이 쉽다.

 

* 현재까지의 symbolic AI roadmap

- 처음 Neurosymbolic VQA 경우에는 properties all predefined.

- 다음, Neurosymbolic Concept Learner 경우에는 새로운 values 배울 있다. Color 예로 들자면 우리는 새로운 color autonomously learn 있는데, red predefined 해줄 필요 없이 context 통해 배울 있다.

- 이후 갈수록 sophisticated 해지고 combining more neural network 해지면서 less predefined, more autonomous 해지고 있는 추세이다.

 

 

여기까지 AAAI-20 Invited Talk : David Cox 의 neuro-symbolic AI 강연을 듣고 공부해본 내용이었다. 추가적으로 관련 논문들을 읽어 업로드할 예정이다.

 

 

 

 

 

(출처 : 해당 글의 이미지들과 ppt 자료들은 AI 학회 speech  : AAAI-20 Invited Talk : David Cox 의 발표자료와 <Information and Intelligence> 유튜브 채널의 <오늘의 연구와 뉴스 : Neuro-Symbolic AI> 의 영상자료에서 가져왔다.)