Abstraction & Reasoning in AI systems : (2) abstraction
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 > 강연 발표자료에서 가져왔다. )