http://gujoron.com/xe/1096866와 관련한 글입니다.
인도영화 중에 블랙이라는 영화가 있습니다. 2005년에 나와서 한국에서도 꽤 인기를 끌었다죠. 해당 영화에서 헬렌 켈러는 "사람들은 사물에 이름이 있다고 친다"는 것을 아는데 상당히 힘들어 합니다. 이는 그녀가 타인들의 행동을 관찰할 수 있는 감각인 시각과 청각이 없기 때문입니다. 그래서 이걸 이해하는데 실패하며 짜증을 내다가 런타임 1시간을 소모합니다.
그녀가 수돗가(영화에서는 분수)에서 깨달은 건 이중의 구조인데, "(사물=이름)=명명"입니다. 이는 "1+1=2"를 다르게 표기한 거죠. 구조론에서는 "~라고 한다"라고 한다더군요. +는 =과 달라보이지만 사실 둘은 같은 것인데, 덧셈이 이퀄과 달라보이는 이유는 귀납했기 때문이고 연역의 관점에서 보면 +는 내부 관계의 이름일 뿐입니다. 덧셈이라는 이름으로 1+1이 엮인 거죠. 뒤의 이퀄은 방정식이라는 외부 관계의 이름으로 1+1과 2를 엮은 것이고요. 하여간 사물이 동사가 아니라 관계로 엮여있다는 것을 깨달아야 합니다.
그러므로 "(사물:이름):명명"이라고 표현할 수도 있겠죠. 컴퓨터 프로그래밍에서 이런 인간의 귀납적 인식의 한계 때문에 자료형이 다양해 지는데, 가령 "수치형, 문자열형, 리스트형, 튜플형, 딕셔너리형, 집합형, 바이트형, 부울형"이 있습니다. 자료구조가 다양해진 이유는 귀납에 기반하여 정의하였기 때문인데, 사실 제대로 되려면 개념적으로는 모두 통합해야 합니다. 그래야 진정한 인공지능을 만들 수 있습니다. 사실 프로그래밍이 절차지향에서 객체지향까지만 발전했기 때문에 나타나는 현상입니다. 맥락지향까지 가야 통합이 가능합니다. 절차(프로그램)와 객체(프로그램의 대상)만 있고 맥락이 없는 거죠.
딥러닝이 조금 되는 것은 사물에 이름을 붙일 때 함수의 형식을 차용하기 때문입니다. 반대로 연구하는데 가장 걸림돌이 되는 게 이러한 관계를 일반화/보편화 하는 것을 깨닫지 못하기 때문입니다. 일반화/보편화 하지 못하는 이유는 이중의 구조를 모르기 때문이고요. 알파고가 사용하는 강화학습도 이러한 이중의 구조를 누군가가 방정식으로 잘 만들어야 하는데, 연구자가 사건의 이중구조를 모르다보니 목적함수를 최대 스코어로 정하는 삽질을 합니다.
인공지능 에이전트(게임속)가 새로운 전략을 발견할 동기를 부여하는 방정식은 최대 스코어입니다. 이 최대 스코어를 사용한 방정식은 그것만으로는 작동하지 않는데, 이는 이중의 구조가 아니기 때문이며, 이는 내부에서 완성되는 형태이기 때문입니다. 가령 게임을 하는 아이들이 새로운 전략을 발견하는 이유는 게임을 하는 아이 위에 경쟁이라는 또다른 구조가 덧씌워져있기 때문입니다. 그런데 내부에서 완성되는 구조로 만든 인공지능은 이러한 경쟁 구조를 차용할 가능성을 원천적으로 차단하고 있죠. 강화학습이 이러한 자위구조로 되어 있는 이유는 강화학습을 맨 처음 도입한 게 벽돌깨기라는 1인용 게임이었기 대문입니다.
그럼 알파고는 어떻게 지속적으로 상대를 이기는 전략을 발견하도록 하는 동기부여를 하냐고요? 가치의 할인이라는 걸 적용합니다. 이전 전략의 가치를 시간이 지남에 따라 절하하는 방식을 사용했습니다. 그래서 알파고가 계산밖에 못하는 겁니다. 상대와 대칭하여 그의 전략을 이기겠다는 개념이 없고, 혼자 자위하는 방식인 거죠. 다만 나중에 나온 "알파고 제로"는 좀 다르긴 합니다. 이세돌하고 붙었던 건 "알파고 리"이고요. 유전 알고리즘을 차용하기 시작합니다. 근데 누군가가 이걸 분명하게 정의하질 않아서 그 이상으로 진보하는데 헷갈려 하는 중.
![포인트:177651point, 레벨:30/30 [레벨:30]](https://gujoron.com/xe/modules/point/icons/default/30.gif)
![프로필 이미지](https://gujoron.com/xe/files/member_extra_info/profile_image/919/972/972919.jpg)
![포인트:42072point (61%), 레벨:21/30 [레벨:21]](https://gujoron.com/xe/modules/point/icons/default/21.gif)
![프로필 이미지](https://gujoron.com/xe/files/member_extra_info/profile_image/415/014/14415.jpg)
![포인트:17241point (83%), 레벨:13/30 [레벨:13]](https://gujoron.com/xe/modules/point/icons/default/13.gif)
(작위, 무작위 적으로) 알고리즘들을 무수히 만들어서 서로 경쟁을 시키면, 이기고자(생존하고자) 하는 전략이 우수한 알고리즘이 남지 않을까요?
![프로필 이미지](https://gujoron.com/xe/files/member_extra_info/profile_image/919/972/972919.jpg)
![포인트:42072point (61%), 레벨:21/30 [레벨:21]](https://gujoron.com/xe/modules/point/icons/default/21.gif)
에이전트가 이기거나 생존하려 한다는 것은 알고리즘을 플러스로 보는 시각이며 그것은 구조에 의해 동기부여되는 마이너스 방식이 아닙니다. 알고리즘이라는 것은 내부의 구조를 말하며 이는 외부의 구조를 복제한 것이며, 어떤 알고리즘이 있는게 아니라 그것으로 색칠된 것을 말합니다.
본문에서 밝힌바와 같이 덧셈과 뺄셈이라는 알고리즘은 더하고 빼는, 전혀 다른게 아니라 더하는 관계와 빼는 관계로 구조 하에 있는 어떤 두 사물의 대칭이 다르게 색칠된 거죠. 둘의 본질은 같습니다. 그러므로 알고리즘은 곧 게임구조가 반영되어 최초의 컨셉이 다양한 이름으로 펼쳐지는 것 그 자체입니다.
적자생존을 표방하는 유전알고리즘이 이걸 좀 흉내내다가 그친것 같은데, 자세히 들여다보면 뭔가 좋은 걸 찾아낼 수도 있겠죠. 실제로 알파고 제로는 과거의 자신과 대결하여 전략을 발전시키는 방식을 사용합니다.
재밌소.