이세돌 9단의 바둑 대국을 보면서, 생각나는 단상들이 있어 몇 자 남겨 볼까 한다. 알파고와 이세돌 9단의 대국이 진행되면서 몇 가지 재미있는 현상들이 생겼다.
- 1980년대부터 2000년대까지 유행했던 인공지능(로봇) 관련 영화들이 다시 유행하기 시작했다.
- 학부모들은 바둑을 가르치기 시작했다.
- 사람들은 알파고와 이세돌 9단의 대결을 ‘인간 대 기계’의 대결 구도로 만들었다.
- 조만간 인공지능이 인간적인 감성을 가지게 될 것이며,
- 머지않아 인공지능이 세상을 지배할 것이라는 공포가 확산 등등.
내가 여기서 언급하고자 하는 것은 3~5까지에 대한 이야기이다. 그리고, 결론부터 이야기하자면, 세상이 복잡할수록 기초가 되는 학문을 잘 알고 있어야 하며 기초학문이 얼마나 중요한지 알아야 한다는 것이다.
1. 알파고 이해하기
많은 사람들이 알파고의 알고리즘에 대해서 궁금해하고 검색도 해보았을 것이다. 인터넷을 통하면 대부분의 자료들을 찾아볼 수 있는데, 이렇게 검색된 문서들은 크게 두 종류이다. 하나는 너무 기술적이라 전산학 특히 신경망 쪽(여기서 신경망이라 함은 머신러닝을 포함)을 전공한 사람이 아니면 이해하기 어렵다. 또 다른 종류는 나름 IT에 일가견이 있다 하는 준전문가들이 적은 글들인데, 이게 사실상 보면 말도 안 되게 글을 적은 경우가 많다는 것이다.
알파고를, 더 나아가 신경망의 동작을 이해하려면 그 중간점(너무 기술적이지도 않으면서, 그렇지만 전체적인 로직의 이해를 도와줄 수 있는)에서 설명해야 한다. 우선 알파고는 다음과 같은 학문 부류를 알아야 이해할 수 있다.
확률론(Probability), 선형대수 (Linear Algebra);
신경망(Neural Network), 전문가시스템(Expert System)
분산컴퓨팅(Distributed Computing), 시스템구조(System Architect)
이외에 컴퓨터나 네트워크 성능에 관련된 모든 기술들을 알면 도움이 된다. 위의 학문 부류는 알파고뿐만 아니라 인공지능에 관련한 구현을 하기 위해서는 필수적으로 알고 있어야 하는 과목들이다. 머신러닝을 추가할 수도 있지만, 신경망을 하게 되면 머신러닝은 자동(?)으로 하는 것이라 생략하겠다.
AI의 주축이라 할 수 있는 신경망이나 전문가 시스템의 경우 1980년대에 이미 학문적으로 상당한 발전을 이루었으며, 이 기술을 이용한 물건(특히, 군사용)들이 나오기 시작했다. 자, 당신이 AI전문가는 아니지만 알파고가 어떻게 동작하는지를 정확하게 이해하고 싶다면 아래의 내용을 알고 있을 필요가 있다.
확률론, 선형대수, 신경망 (조금)
우선 알아야 할 것은 ‘신경망 조금’이다. 여기서 ‘조금’이라 함은 신경망 동작원리이다. 신경망 혹은 AI라고 하는 게 아주 복잡할 것 같지만 사실은 굉장히 간단하다. 정의하자면 ‘주어진 자료 묶음(Data Set)을 이용하여, 최적화된(가장 빠른 시간내에, 가장 적은 수의 Iteration에) 행렬(Matrix)을 찾아내는 것’이라 할 수 있다.
왜 행렬이냐고? 행렬이 가장 시스템적 연산(컴퓨터를 이용한)이 용이하기 때문이다. 바로 그러한 이유때문에 전산·컴퓨터를 학부 때 전공하면 2학년 즈음 듣는 전공 필수 과목이 선형대수학인 거고. 그리고, 이 과목에서 배우는 것이 바로 행렬 연산 방법을 배우는 것이다.
처음엔 unit matrix(대각선으로 1인 기초 행렬)로 시작했던 행렬이 데이터 묶음(입력 데이터와 출력데이터)에 따른 연산을 거치면서 최적화된 행렬을 생성하게 되고, 이렇게 계산된 최적화 행렬은 새로운 데이터(즉, 우리가 답을 알고자 하는 데이터)를 넣었을 때 단 한 번의 행렬 연산으로 최적화된 답을 내어놓게 되는 것이다.
이렇게 unit matrix에서 최적화된 매트릭스를 만들어 가는 과정이 바로 머신러닝이다. 이러한 머신러닝에서 가장 중요한 것 가운데 하나가 행렬을 최적화 하기 위해 필요한 데이터 묶음인 것은 자명하다 하겠다.
그런데, 일반인들이 알파고를 이해하는데 가장 중요한 점은 무엇이 입력이고 무엇이 출력이냐는 것이다. 우선, 알파고에서 ‘입력’은 현재 놓인 돌들의 상태이며, ‘출력’은 다음에 착수 가능한 점들에 대한 확률이다. 이 정의가 별게 아니라고 생각하는 사람들이 많을지도 모르겠다. 일부 블로그나 기사에서도 위의 부분을 언급하기도 했다.
하지만 이 정의가 알파고의 동작을 이해하는데 있어서는 가장 핵심이 되는 내용이다. 나는 이세돌9단과 알파고의 대전을 해설하는 많은 해설자의 해설을 들으면서 피식 웃었던 적이 한두 번이 아니다. 만약 해설자들이 위의 정의를 정확하게만 알고 있었더라도, “왜 그렇게 두었는지 모르겠네요?” 내지는 “알파고의 특별한 수인가요?”, “판세의 불리한 수인데요?”와 같은 엉뚱한 소리는 하지 않았을 텐데 말이다.
즉, 알파고는 매 착수마다 주어진 데이터(기보 기록들)들을 가지고 각 착수점에 대한 확률들을 계산하고, 그중에 확률이 가능 높은 곳에 착수를 한다는 것이다. 즉, 알파고의 계산량은 이렇게 볼 수 있다.
착수할 수 있는 빈점 x 정확한 확률 계산
빈 바둑판을 생각해보자.
알파고가 생각해야 할 것은 361(19×19) 각각의 착수점에 대한 확률이다. 이게 계산할 가짓수(착수할 수 있는 빈점)는 많지만, 확률 자체는 그리 정확하지 않아도 된다는 것이다. 정확하지 않아도 된다는 의미는 한계점을 두어 반올림 내지 버림을 해서 확률을 계산해도 된다는 의미다. 심지어 출력 부분을 생각하지 않고도 가장 좋은 착수점을 찾을 수 있다 (아무리 초보라도 네 귀퉁이에 첫수를 두는 데이터는 없을 테니까).
그리고 판이 거의 끝나갈 때(즉 바둑판에 돌들이 많이 찼을 때) 계산량 또한 많이 줄어든다. 물론 정확도를 위해 한 점 한 점에 대한 계산량은 많아질 것이지만, 착수할 수 있는 경우의 수(빈 곳에만 착수가 가능하므로)가 줄어들기 때문에 전체 계산량은 역시 줄어들게 된다.
바둑판이 절반 즈음 찼을 때는 어떨까? 이때는 착수할 수 있는 빈 점도 많고, 각 점마다 정확한 계산을 해야 한다. 최선점과 차선점의 확률 간격이 크지 않기 때문에 정확한 계산을 하지 않으면 이길 가능성이 가장 높은 곳에 착수를 할 수 없다.
그리고 이러한 ‘가능성’을 이해하기 위해서는 확률론에 대해서 알 필요가 있다. 다시 한번 말하지만 알파고는 이길 ‘가능성’이 높은 곳에 착수를 하지, ‘이길 곳’에 착수를 하는 것이 아니다.
가능성이 높다는 것과 반드시 이기는 곳과는 엄청난 차이가 있다. 이는 마치 컴퓨터가 무한대를 모사할 수는 있지만 무한대 자체를 나타낼 수 없는 것과 같은 이치이다. 그리고, 여기서 중요한 점은 이러한 가능성은 데이터를 통해서 계산이 된 값이기 때문에 이번 대국에서 지든 이기든 ‘이길 확률’ 자체는 크게 영향을 받지 않는다는 것이다.
알파고가 해설자들의 예측과 달리 두었다는 것은 현재 돌들이 놓인 상태에서 그 다음 착수점 두었을 때 이길 확률이 해설자들이 생각했던 점에서의 이길 확률보다 크거나 같았기 때문이지 그 이상도 그 이하도 아니다. 알파고가 특별한 기풍이 있어서도 아니요, 특별한 손맛이 있어서는 더더욱 아니다.
다만 인간이 흔히 두지 않는 수일 뿐이지.
2. 기계가 인류를 정복할 가능성
기계, 혹은 인공지능이 인간의 생활을 지금보다 더 변화시킬 것이며 분석만을 하는 많은 직업군들이 사라질 것이고 지금보다 훨씬 더 많은 부분을 기계에 의존하게 될 것이라는 사실은 자명하다. 하지만 기계가 자신의 의지와 자아를 가지고 독립적으로 인류에 반하는 행동을 취할 가능성은 적어도 아직까지는 불가능하다 하겠다.
우선 이게 가능하기 위해서는 ‘자아’ 자체에 대한 측정과 계량화(혹은 데이터화)가 가능해야 한다. 하지만 현재의 기술로서는 신체에 일어나는 효과조차도 정확한 측정이 불가능하다.
예를 들어 이런 것이다. 음주 측정을 왜 하는가? ‘취한’ 사람을 가려내기 위해서일 것이다. 하지만 우리는 음주측정 할 때 ‘혈중 알콜 농도’를 측정한다. 이러한 혈중 알콜 농도가 그 사람이 정말 취했다는 것을 뜻하는지, 취했다면 몇 %나 취한 것인지는 알 길이 없다. 우리가 그렇게 정한 것은 혈중 알콜 농도가 취한 정도에 영향을 미친다는 것과 어느 정도의 양에서 어떤 행동이 나오는지에 대한 ‘모사’를 수용한 것뿐이다.
관찰을 하고 정도를 판단하는데 있어서는 이 정도만 있어도 충분하다. 하지만 이걸 구현하는 건 그리 만만한 일이 아니다.
예시는 또 있다. 여러분이 아주 감명 깊게 본 영화의 한 장면이 있다고 하자. 기억할 때는 ‘대충’해도 된다. 그렇지만, 그걸 그려낼 때는 그리 만만치 않을 것이다. 노래도 마찬가지다. 들어본 적은 있지만 모르는 노래들, 알고 있지만 정확하게 모르는 감정들. 혹은 자아. 이런 것들은 실제로 구현하려면 만만치가 않다는 것 정도는 조금만 생각해보면 감이 잡힐 것이다.
즉 기계가 인간을 정복할 수 있을 만큼, 혹은 그 전에 자아를 가질 만큼의 기술이 되기 위해서는 자아 혹은 감정 자체에 대한 결과물이 먼저 나와야 한다. 그리고 이 분야는 컴퓨터나 전자공학 분야가 아닌 다른 분야의 기술들을 필요로 한다. 아무리 많은 데이터를 입수, 분석할 수 있다고 하여도 존재하지 않는 데이터는 모을 수도 없고, 분석할 수도 없다.
3. 알파고가 남긴 것
알파고가 가지는 가장 큰 의미는, 무한하다고 여겨졌던 또 하나의 영역이 기술의 발전으로 인해 ‘유한’의 영역으로 들어왔다는 점이라 하겠다. 바둑은 19×19에서 벌어지는 유한한 게임이다. 이는 예전에도 그랬고 지금도 그렇다. 다만 과거에는 이 유한한 게임이 무한한 게임으로 생각했었고, 많은 사람들이 무한하다고 믿었었다. 하지만, 알파고를 통해서 이제는 바둑이 더 이상한 무한한 게임이 아니라는 걸 극명하게 보여줬다.
얼마나 많은 사람들이 자신만의 고정관념으로 세상을 살아가고 있을까? 얼마나 사실과 다르게 판단할까? 알파고가 이번 대국에서 남긴 것은 그렇게 정확했다고 생각했던 인간의 판단이 얼마나 편협할 수 있는지를 보여준 것이라고 나는 생각한다.
원문: Amang Kim의 브런치