본문 바로가기
Deep Learning

Abstraction & Reasoning in AI systems : (2) abstraction

by 햇농nongnong 2021. 1. 30.

NeurIPS 에서의 < Abstraction & Reasoning in AI systems : Modern perspectives > 강연을 보고 그 중에서도 Francois Chollet 의 "why abstraction is the key, and what we're still missing" 에 대해 정리해보겠다.

(해당 강연은 https://slideslive.com/38935790/abstraction-reasoning-in-ai-systems-modern-perspectives 이 링크에서 확인할 수 있다.)

 

<2> nature of abstraction on the relationship between generalization and abstraction

- abstraction is the key to generalization

 

** Abstraction 이란? 

먼저 abstraction 에 대해서 말해보자. abstraction 은 무엇이고 왜 중요할까? 

 

 

지금까지의 설명으로 이제 우리는 왜 task specific skill 보다 broad generalizable cognitive abilities 에 대해 focus 해야 하는지 알 수 있다. 그리고 이것은 “abstraction” 의 문제를 풀어야 가능하다. 왜냐, abstraction generalization 은 매우 긴밀하게 묶여있기 때문이다.

- Abstraction 은 generalization 을 생산하기 위한 엔진과도 같다.

 

 

** The nature of abstraction : reusing programs & representations 

우주의 신비, 우주는 매우 많은 복잡한 다른 것들로 이루어져 있는데 이것들은 모두 다 서로 비슷한 다른 것들이라는 것이고,

소수의 “kernels of structure” 의 반복과 변형으로 이루어졌다는 것이다.

 

We are surrounded by isomorphism (=Different but similarity of form). 그리고 이것을 “kaleidoscope hypothesis” 라고 할 것이다.

- kaleidoscope : 튜브 안에 여러 colored glass 가 들어있고 이게 거울들로부터 repeated, amplified 되어 엄청난 복잡한 패턴을 만들어내는 것. (단순한 몇 개의 original information 만을 가지고 remarkable richness of complex pattern 만들 수 있음)

 

 

Generalization 내가 가지고 있는 경험을 채굴해서 재사용가능한 bits 를 찾아내는 능력이다.

찾아낸 이 bits 를 추출하고 이걸 abstractions 이라고 부른다. 그리고 abstractions programs representations 의 형태를 가지고 있고, abstractions 을 재사용해서 novel situations 을 이해할 수 있다.

 

 

* abstraction : 재사용가능한 kernels of structure 를 위해 과거 경험을 채굴하는 것 (비슷한 것을 찾아냄으로써)

 

* intelligence : 비슷한 것을 찾는 것에 있어서의 민감성 & 오래된 패턴을 새로운 문맥으로 재구성하는 능력

 

 

* 그럼 어떻게 reusable kernels(핵심) of structure 을 알아보고 찾을 수 있을까?

 

: 단순히 두 개가 비슷해보이면 찾아내면 된다. "유사성"을 발견하면 된다.

(두 번 발견되었다는 것은 kaleidoscope 처럼 원래 이 두개가 모두 하나의 origin 을 가지고 있던 것)

 

- 따라서 intelligence(=generalization power) 은 말 그대로 추상적 유사성에 대한 민감성이다.

   Intelligence는 그냥 추상적인 유사한 것들을 얼마나 잘 민감하게 찾느냐가 모든 것이다.

 

- 만약 유사성을 민감하게 잘 발견한다면 적은 경험에서도 powerful abstractions 을 잘 추출할 수 있을 것이다.

그리고 이 abstractions 을 미래의 experience space 에서 최대의 영역에서 활동하기 위해 잘 사용할 수 있을 것이다.

 

- 또 abstractions 을 잘 추출한다면 과거 경험을 미래의 새로움을 다루는 능력으로 전환하는데 있어 최대의 효율성을 얻을 수 있을 것이다.

 

 

** Abstraction 의 양극

앞에서 Abstractions  representation 이나 program 의 형태라고 했었다.

이걸 참고하면 abstraction 의 두가지 카테고리를 알 수 있다 :  value-centric abstraction and program-centric abstraction

 

공통점 : 두 가지 abstraction 모두 비교하고 개별 인스턴스들의 디테일들을 제거한 후 하나의 공통된 abstractions 으로 합친다.

(comparing things & merging individual instances into common abstractions by eliminating certain details about these instances.)

 

다른점 

value-centric abstraction operates over a continuous domain

program-centric abstraction operates over a discrete domain

 

 

- value-centric abstraction continuous distance function(연속된 거리 함수)를 통해 사물을 비교한다.

그래서 이것은 한 물체의 두 인스턴스를 거리 함수와 비교하거나 기본적으로 추상적인 특징을 갖는 프로토타입의 관점에서 표현하는 것을 포함한다. Human perception, human intuition, pattern recognition 과도 비슷하고 주로 머신러닝에서 하는 것이다.

(ex. abstract features 을 이용해서 face non face 를 찾는 것, 구체적인 샘플들을 프로토타입으로 합치면서 얻어지게 되는 것(위의 그림처럼 여러 개 얼굴들 모아 하나의 사람원형을 만드는 것))

 

 

- program-centric abstraction subgraph isomorphism 의 거리계산보다는 그래프와 같은 이산형 프로그램(discrete programs)을 비교하는 것이다.

이것은 인간의 reasoning, planning 과 비슷하고 소프트웨어 엔지니어가 하는 일이기도 하다.

만약 소프트웨어 엔지니어가 abstraction 을 이야기한다면 이 유형의 abstraction 이다.

(ex. 리스트를 분류하는 함수, 입력 노드가 유형 내에서 다른 값을 취할 수 있는 (일반적으로 이산형) 연산자의 그래프, 입력 노드값에 대한 추상화, 새로운 추상 특징에서 특수 함수(detail)를 병합하여 획득할 수 있음) 

 

 

 

두 형태의 abstraction 모두 analogy(비유,유사점) 를 통해 움직이기 때문에

analogy 가 abstraction 을 만드는 fundamental engine 이다.

 

Value analogy 가 되어 value 에 따라 두 instances 를 비교할 수도 있고, program analogy 가 되어 두 개의 프로그램 구조를 비교할 수도 있다.

 

- Value analogy 는 기하학적으로 기초를 두고 있어 거리 함수를 통해 인스턴스 비교가 가능하고, 비슷한 인스턴스들을 원형으로 합치면서 abstractions 을 만든다.

 

- Program analogy topologically grounded(방법론의 특성. 방법론적.. ) 따라서 두 그래프의 구조를 비교하고 isomorphic 인 인스턴스들을 하나의 abstract program 으로 합치면서 abstractions 을 만든다.

 

모든 intelligence는 이 두가지 형태의 abstraction 조합에서 생겨난다.

따라서 이걸 좌뇌 우뇌 비교를 통해 기억할 수도 있다.  뇌의 반은 perception, intuition 을 위한 것이고, 남은 반은 reasoning, planning, mathematics 등을 위한 것이라고 생각할 수 있다.

 

 

 

 

다음 글에서는 abstraction 의 관점에서 딥러닝을 다뤄볼 예정이다.

 

 

 

(출처 : 해당 글의 이미지들은 NeurIPS 의 < Abstraction & Reasoning in AI systems : Modern perspectives > 강연 발표자료에서 가져왔다. )

댓글