포스터가 상당히 인상적인 영화 "그녀"를 보았다. 포스터 뿐만 아니라 캐스팅 역시 흥미로운데, 그것은 바로 목소리 출연 '스칼렛 요한슨'이다. 목소리 출연이라니? 그게 무슨 소리야? 라는 분들을 위해 간단히 영화 설정을 얘기하자면 다음과 같다.
멀지 않은 미래에 살고 있는 남자주인공이자 첫사랑급의 부인과 별거 중인 '테오도르'는 무료한 일상을 보내고 있다. 그러던 중 새로 출시된 인공지능 OS를 구입해 설치한다. 기존에 쓰던 딱딱한 남자기계음이 아닌 여성의 목소리, 그것도 살아있는 사람의 것인 듯한 목소리를 내는 OS '사만다'에 매료되기 시작한다. 시키지도 않은 일을 미리 알아서 하고, 심지어 감정 표현까지 하는 '사만다'와 연애하는 기분으로 삶의 활력을 찾기 시작한다. 급기야 사랑의 감정까지 서로 느끼게 되고, '테오도르'와의 교감을 통해 점점 성장해가는 OS는 '테오도르'가 감당할 수 없는(?) 지경에까지 이른다.
그렇다. 이 영화는 기본적으로 '사랑'에 관한 영화다. 때마침 '참을 수 없는 존재의 가벼움'이라는 쿤데라의 소설도 읽고 있어서 인지, 사랑, 섹스, 육체, 정신에 관한 잡상들이 많이들 떠올랐다. 이런 생각들은 각자 영화를 보면서 떠올리거나 반추하면 될 것 같고, 오늘 내가 얘기하고자하는 주제는 인공지능의 학습 성장이다. 영화 속에서 '사만다'의 지적 성장은 '테오도르'와의 교감으로부터 시작해서, 넷상의 다른 인공지능 OS와의 대화, 다른 인간과의 대화, 복원된 과거의 철학자 인공지능과의 대화, 뿐만아니라 물리학 교과서 등의 전자책 독파 등을 통해 이루어진다.
이러한 인공지능 또는 기계의 학습에 관한 분야를 machine learning이라고도 부를 수 있는데, 추후에 소개할 지도 모르는 유명한 MOOC[각주:1] 인 coursera의 인기 강의 주제이기도 한다. machine learning에 쓰이는 기법은 아주 다양한데,(필자도 잘 모르는데..) 그 중 neural network를 이용한 인공지능 학습에 대해 얘기 해보고자 한다.
neural network는 말 그대로 우리 생물체의 뇌에 있는 회로와 학습 원리를 본 따 만든 기법이다. 이 회로나 학습원리를 소개하기 전에 neural network를 이용한 인공지능의 예를 보자.
47초 부터 보면 손글씨로 되어 있는 숫자들의 패턴을 익히는 neural network에 대한 설명을 볼 수 있다. 반짝이는 점들은 신경세포 하나하나를 상징 재현하고 있다고 보면 되고, 각 점들은 다른 층의 점들과 연결되어 있다. 다시말해 시냅스를 이루고 있다. 그리고 연결된 시냅스가 다음 신경세포로 신호를 전달하는 것은 시냅스 강도에 따라 결정되고, 그 신호들을 받은 신경세포는 신호를 종합해 역치를 넘는지 못 넘는지에 따라 firing할지 말지가 결정된다.
물이 일정량 이상 들어오지 않으면, 역회전해서 물을 버리게 되는 물레방아가 있다고 가정하자. 이 물레방아로 물을 공급하는 수로가 여러개 있고, 이 수로들에서 적당량 이상의 물이 동시에 흘러 들어와 물레방아를 제대로 돌리게 되면 이 물레방아는 다음 수로로 물을 공급하고(다음 신경세포로 신호전달하고) 방아도 찧을 것이다(firing). 단순히 신호전달만 한다면 그냥 변화없는 전기회로나 다름 없을 것이다.
여기서 중요한 규칙인 Hebb's rule이 등장한다. Firing together, wiring together로 잘 알려져 있는 이 규칙은 신경과학과 인공지능학의 토대를 이루고 있다고 해도 과언이 아닐정도로 유명하고 중요하다. 물레방아 비유로 다시 설명해보자면, 물레방아 두 개가 수로로 연결되어 있다고 치자. 앞서 있는 물레방아가 돌아 다음 물레방아로 물을 전달하고, 아주 짧은 간격으로 다음 물레방아 역시 돌아가게 되면(Firing together), 이 두 물레방아 사이에 연결되어 있는 수로가 넓어져(wiring together) 다음에는 더 많은 물을 전달할 수 있게 되는 현상을 Hebb's rule이라고 말한다. 다시 말해 시냅스를 이루고 있는 두 신경세포가 짧은 간격을 두고 거의 동시에 firing하게 되면 둘 간의 시냅스 강도가 강해진다는 규칙이다.
이 규칙은 단순히 이론적으로만 그치지 않고, 실제 신경세포 간의 시냅스에서도 증명된 현상이다. 그것을 바로 STDP(spike-timing dependent plasticity)라 부른다. 말로 설명하기엔 조금 복잡할 수도 있으니 다음 그림을 보자.
시냅스 전 신경세포(presynaptic neuron)와 시냅스 후 신경세포(postsynaptic neuron)이 보이는가? 이 둘 사이의 화학적 신경전달이 일어나는 곳이 synapse라고 빨간 점선 동그라미가 쳐진 것이다. 물레방아 비유에서는 수로라고 볼 수 있겠다. 그 밑에 그림에서 세로 막대가 있는 부분이 신경세포가 firing하는 시점이다. 가로로 긴 화살표를 시간의 흐름이라고 본다면 빨간색 세포 막대가 검은색 세로막대보다 살짝 먼저 있는 것을 볼 수 있다. 다시 말해 시냅스 전 신경세포가 시냅스 후 신경세포보다 약 30ms먼저 firing했다는 것이다. 그 점이 아래쪽 그래프에 찍혀있고, 그런 시간간격으로 두 신경세포가 firing했을 경우 두 신경세포 사이의 시냅스 강도가 변하는 정도를 Y축에 표현하고 있다. 그렇게 알고 그래프를 해석하면 시냅스 전 신경세포가 먼저 firing을 하고 그 간격이 짧을 수록 시냅스 강도 변화가 강화되는 쪽으로 크며(간격이 0ms일 수록 위로 그래프가 솟는 것이 보이는가?), 간격이 멀어질 수록 변화가 거의 없다. 반대로 시냅스 후 신경세포가 먼저 firing하면 시냅스는 오히려 약화된다.
대충 이해가 되시는가? 위 같은 현상을 STDP, 시냅스 전후 신경세포의 firing 타이밍에 의존적인 시냅스 가소성 현상이라고 부른다. 그럼 이제 우리는 Hebb's rule - Firing together, wiring together의 좀 더 세포-시냅스적인 버전의 현상인 STDP에 대해서 알았다. 그럼 위에서 보았던 neural network에서 반짝이는 점들과 점들 사이의 연결에 적용되는 가장 중요한 규칙을 알게 된 것이다. 물론 neural network에 적용되는 규칙은 우리 머리, 또는 동물들의 뇌에서 일어나는 생명현상에 비하면 너무나도 간단하게 축약되어 있다. 신경세포 수, 신경세포 간의 시냅스의 수도 현격하게 적을 뿐 아니라, firing 현상과 시냅스 가소성 현상의 복잡성 역시 비할 수가 없다.
여기에서 필자가 소개한 것은 아주 단순한 neural network의 규칙이지만, 현재 IBM같은 곳에서 연구하고 있는 AI의 수준은 상당하다. 세계 제일의 인간 체스 선수를 IBM의 슈퍼컴퓨터가 이겼다는 것은 익히 잘 알려진 사실이고, 그 이후에 퀴즈쇼 Jeopardy! 에서 우승한 왓슨이라는 AI도 있다. 최근 IBM은 SyNAPSE project라는 것을 진행하고 있는데, 말 그대로 brain의 구조를 본딴 컴퓨터를 만드는 것을 목표로 하고 있다. 이것은 단순히 소프트웨어적인 알고리즘을 새로 짜는 수준이 아닌 하드웨어 수준, 즉 chip 자체 부터 신경회로의 원리에 따라 컴퓨터 전체를 새로 만드는 것을 의미한다.
이런 것을 Cognitive Computing이라고 그들은 부르는데, 그들이 정말 영화 '그녀'에 나오는 '사만다'같은 인공지능을 만들어 낼지, 만약 가능하다면 언제쯤일지 기대된다.
massive open online course의 줄임말. 쉽게 말하자면 인터넷강의인데, 대부분 무료로 공개되어 있다. 요즘 Hot한 coursera나 edX같은 곳은 interactive한 환경을 제공해서 단순하게 인터넷 동영상을 보는 것과는 다르게, forum, quiz, programing assigment 등 다양한 학습환경을 통해 지루하지 않게 강의를 들을 수 있다. [본문으로]