Share           Pin It
데이터 마이닝이나 머신러닝, 인공지능 AI 등에 관한 심도깊은 얘기는 다루지 않는다. 내가 그런 심도깊은 일을 하고 있지 않기 때문이기도 하거니와 그런 내용은 학교에서 정식으로 배우거나 많은 연구 논문을 읽으면서 터득해야할 영역이다. 개인적인 요청이 있다면 그걸 위해서 가이드해줄 수는 있지만 이 티스토리에서 그걸 해결해줄 수는 없다. 하지만 2017년에는 공부 좀 하기로 마음을 먹었으니 필요하면 특별한 주제에 맞춰서 또는 머신러닝 알고리즘의 전반적인 것에 대해서 종종 다루려 한다. 계획이 그렇다는 것이지 몇 번을 다룰지는...

최근이라 적고 작년 2016년에 가장 큰 이슈가 됐던 강화학습과 GAN (Generative Adversarial Networks)에 대한 소개 또는 개념적 이해를 돕기 위해서 글을 적는다. 남들이 이해하도록 돕는다기보다는 스스로 정리하고 넘어가고 싶었다.

알파고 AlphaGo가 이세돌 9단을 4대1로 꺾은 이후로 가장 떠오른 단어 또는 개념은 강화학습 Reinforcement learning이다. 물론 알파고가 딥러닝 Deep learning에 기반한 인공지능 AI Artificial Intelligence지만, 딥러닝이나 AI라는 단어는 그전부터 언론에도 많이 등장했었다. 단지 알파고 충격 전에는 이런 용어에 대한 소비 니즈가 없었기 때문에 일반인들은 무시했을 뿐이다. 다른 것보다 강화학습이 더욱더 부각됐다는 의미다.

그런데 강화학습이라는 게 전혀 새로운 개념이 아니다. 사실 기계학습 Machine learning이라 부르는 대부분의 알고리즘 (또는 학습법)은 강화학습에 기반을 두고 있다. 강화학습은 어떤 액션에 대한 반응에 따라서 그 액션의 정당성을 얻느냐 못 얻느냐가 판별하고, 정당성을 얻은 액션은 향후에도 계속 하도록 장려받도록 훈련받는 것이다. 애완견에서 '앉어'라고 말한 후에 개가 실제로 앉으면 '간식'을 준다. 처음에 개는 앉어 명령어와 간식 사이의 연관성을 모른다. '앉어' 명령어에 우연히 앉아서 간식을 얻었다면, 그리고 반복적으로 '앉어' 후에 간식을 계속 받아먹는다면 개는 '앉어'와 '간식' 사이의 인과성을 발견한다. '앉어' 명령어에 앉으면 간식을 얻는다를 학습한 것이다. '앉어'는 액션이고 '간식'은 리워드다. 역으로 어떤 액션을 피하게 하는 페널티도 비슷한 메커니즘이다.

기계학습에서는 이런 과정을 데이터로 한다. 특히 지도학습 Supervised learning이 그렇다. Y = f(X)에서 f() 함수 (또는 모델)을 유추할 때, 주어진 X에 대해서 정답 Y를 뱉어내면 f() 함수를 제대로 유추한 것이고 그렇지 못하면 해당 유추를 무시하면 된다. 정답 Y가 있는 많은 학습데이터 training data을 가지고 적절한 f() 함수의 형태나 파라메터를 얻어내는 과정이 보상과 벌로 애완견의 액션을 인지시키는 훈련 과정과 같고 이것이 강화학습이다. 기계학습이란 것이 학습데이터를 잘 설명하는 모델을 만드는 (또는 기계를 학습하는) 것이고, 즉 학습된 기계는 학습데이터에 따라 움직인다. 그래서 학습데이터로 기계를 학습시킨다는 모든 알고리즘이 강화학습이라고 볼 수가 있다. 특히 딥러닝의 기초가 되는 인공신경망 Artificial Neural Networks의 학습과정을 강화학습이라고 말하지만, 다른 기계학습을 강화학습이 아니라고 말하는 것은 좀 이상하다.
** 강화학습에 관해 더 자세한 것은 다음의 텍스트북을 참고하기 바란다. https://webdocs.cs.ualberta.ca/~sutton/book/bookdraft2016sep.pdf

강화학습이라는 것이 기계학습에서 일반적인 것이라면 왜 알파고 이후에 강화학습이 주목을 받은 것일까? 단순히 기계를 학습하는 방법보다는 기계를 학습시키는 정답세트를 얻는 전략적인 과정에서 비롯했다고 본다. 그래서 그냥 강화학습이라고 말하기보다는 자기강화 Self-reinforcement라는 용어를 쓰는 게 맞지 않나?라는 생각을 한다. 기계학습이 결정적으로 실패할 때는 적당히 많은 정답세트가 없을 때다. 아무리 이론적으로 뛰어난 알고리즘이더라도 그걸 학습시킬 데이터가 없다면 기계학습은 실패한다. 기계학습의 승패는 정답세트를 얻느냐의 여부에 달려있다. 알파고가 수십년동안 수집한 대국기보를 가지고 학습했다지만, 그것만으로 인간을 이길 전략을 완벽히 마스터하는 것은 사실상 불가능하다. 현재까지 학습한 것을 바탕으로 사람과 직접 대국하면서 전략을 시험해보고 전략을 수정할 수도 있겠지만, 그럴려면 시간도 많이 걸리고 탑랭크 바둑기사들이 불완전한 기계를 상대해줄 가능성도 낮다. 이 부분에서 딥마인드 DeepMind는 자기강화라는 훌륭한 전략을 사용했다.

알파고 이전에 딥마인드는 오래된 아타리 Atari라는 게임을 학습시키면서 (자기)강화전략을 선택했다. 랜덤이든 어떤 규칙에 따른 것이든 아타리게임의 커서cursor를 이리저리 수없이 많이 옮기면서 점수를 얻는 법을 터득해 나갔다. 즉, 커서를 적당히 옮겨서 떨어지는 볼을 되받아쳤더니 그 볼이 위로 올라가서 벽돌을 부수면서 점수를 얻고, 커서가 볼을 되받아치지 못했을 때는 게임이 끝나버린다. 이런 무수한 임의의 움직임을 통해서 볼을 위로 보내면 점수를 얻고 떨어뜨리면 점수를 얻지 못한다는 것을 학습하고, 커서를 유효하게 움직이는 방법을 터득한 것이다. 수많은 시행착오 끝에 사람보다 더 뛰어난 점수를 얻게 된 것이다. 게임의 최종 점수, 즉 목적 함수가 있었기에 가능한 방법이다. 같은 전략을 바둑에도 적용시켰다. 단 바둑에서는 고득점이 아니라 고승률을 얻도록 목적함수를 설정했다.

기본적으로 사람들의 기보를 통해서 합습한 알파고와 그것의 클론을 만들어서 둘 사이에 대국을 펼친다. 완벽한 계산에 따라서 움직일 수 없으니 적당히 임의의 움직임도 가지는 전략을 갖는다. 그 둘의 대국에서 승리한 쪽의 전략은 받아들이고 패한 전략은 약화시킨다. 그렇게 한번더 승리한 전략을 가진 새로운 알파고가 만들어진다. 새로운 알파고는 이전 버전과 다시 대국을 펼친다. 새 버전의 알파고도 여러 전략으로 자신과 싸워서 이기는 전략을 취하고 지는 전략은 버린다. 이런 과정을 수만번, 수십만번 반복하면서 이기는 또는 빈틈없는 전략을 찾아가는 과정이 (자기)강화학습과정이다. 사람과 직접 대국하지 않고 (정답세트 데이터가 없이) 바둑에서 이기는 전략을 찾아간 것이다. 알파고에서 자기강화의 개념을 빼버리고 단순히 강화학습이라고 설명하면 안된다는 걸 말하고 싶었다.
** 알파고의 강화학습은 알파고 논문을 보면... http://airesearch.com/wp-content/uploads/2016/01/deepmind-mastering-go.pdf

여담. (일반적인) 강화학습에서 초기값와 임의성은 전역최적화 Global optimization 때문에 매우 중요하다.

2016년도 초반에는 자기강화학습이 유명해졌다면 후반에는 GAN이라는 게 주목받았다. 2016년 12월에 열린 NIPS 학회에서 GAN이 튜토리얼로 소개됐는데, 앞서 설명한 알파고의 자기강화전략과는 또 다른 재미있는 전략으로 정답세트 없이 (또는 적은 정답세트로) 기계를 효과적으로 학습시키는 전략을 소개했다. GAN은 Generative Adversarial Networks의 약어인데, 각각이 중요한 의미를 가진다. 먼저 Network는 그냥 신경망이나 아니면 일반 모델정도로 이해해도 충분한 것 같다.

기계학습에서 Generative라는 용어가 등장하면 Discriminative라는 용어도 함께 등장한다. 이 두 용어의 개념을 여러 번 찾아보고 이해하려 했지만 논문을 읽을 때는 '아 이런 개념이었구나'라고 하다가 또 금새 '두개의 차이가 뭐지?'라고 하곤 했다. 모든 기계학습은 generative거나 discriminative다. 그냥 사전을 찾아보면 '생성적인'과 '식별하는'정도의 뜻을 가졌는데, 이것만으로 무슨 개념인지 이해하기 어렵다. 앞서 설명했듯이 기계학습은 주어진 데이터를 바탕으로 학습한다. Discriminative는 주어진 그 데이터의 현상만을 가지고 판별하는 것이라면, generative는 그 데이터 이면에 현재 이런 현상을 만든 이유 (또는 모델, 함수)가 있다고 가정하고 그 이유를 찾는 것이다. 설명이 좀 거시기하다. 예를 들어, 주어진 데이터만으로 'X > 5이면 Y = 1이고 X <= 5이면 Y = 0이다' 식으로 규칙 (바운더리)를 찾아내면 discriminative 방식이다. 하지만 generative는 X가 어떤 함수 -- 보통은 분포 distribution -- g(z)에 따라서 생성됐다고 가정하고 g(z)의 모형과 파라메터를 찾는 것이다. 클러스터링에서 가장 기본이 되는 k-means 알고리즘은 discriminative이고, 보통 gaussian 분포로 가정해서 EM expectation maximization 알고리즘으로 그 분포의 파라메터를 찾아가는 알고리즘은 generative다.
** GAN의 generative의 의미가 일반적으로 기계학습에서 사용하는 generative인지 여부는 좀 헷갈린다. (좀더 공부한 후에...)

마지막으로 adversarial이 GAN의 핵심이다. Adversarial은 반대의 또는 대립관계가 있는 등으로 해석할 수 있다. 알파고의 강화학습은 똑같은 목적을 가진 알파고와 알파고 클론 간의 경쟁을 통해서 더 나은 전략을 찾아가는 과정인데, GAN은 서로 다른 목적을 가진 기계끼리 경쟁하면서 더 나은 전략을 찾아가는 과정이다. 대표적으로 위조범G과 위작감별사D다. 예를 들어, 피카소의 그림은 매우 비싸게 팔린다. 만약 명화위조범이 피카소의 화풍으로 왁벽히 똑같은 그림을 그려서 그걸 피카소가 직접 그린 그림이라고 판매를 한다면 어떻게 될까? 반대편에서는 구입하기 전에 그 그림이 진품인지 위작이지를 알고 싶어할 것이다. 그래서 GAN은 위작을 만드는 generator G와 위작을 판별하는 discriminator D를 별도로 학습시켜서, G는 D를 속이도록 D는 G의 속임수를 찾아내도록 만드는 것이다. 자기강하학습에서는 자기 자신과 싸우면서 더 좋은 전략을 찾아가지만, GAN에서는 자신과 경쟁 관계가 있는 상대방과 경쟁하면서 전략을 향상시키는 것이다. 게임이론에서 말하는 내쉬평형을 찾는 일이라서 어렵다고 한다. 그리고 아직은 초기라서 연구하고 해결해야할 것들이 많고, 새로운 아이디어가 쏟아져나오고 있다고 한다.
** GAN에 대한 더 자세한 설명은 NIPS 2016 Tutorial 논문 참조: https://arxiv.org/abs/1701.00160

기계학습의 승패는 양질의 정답세트를 얻느냐 못 얻느냐에 달려있다. 하지만 양질의 정답세트를 얻는 것이 때로는 불가능하고 가능하더라도 리소스가 많이 들어간다. 그래서 제한된 학습데이터로 더 좋은 알고리즘을 만드는 것이 많은 연구자들의 목표였다. 아니면 비지도학습 unsupervised learning처럼 애초에 정답세트가 없이 제한된 범위 내에서 문제를 해결하려고 노력중이다. 중간에 semi-supervised learning이 존재해서 적은 양의 정답세트로 나름 괜찮게 작동하도록 학습시키는 방법도 있다. 하지만 결국 더 많은 정답세트를 이길 수는 없다. 그런 측면에서 알파고가 채택한 자기 자신과 싸우면서 더 좋은 전략을 찾아가는 방식이나 GAN이 채택한 경쟁 관계의 상반된 모델을 만들어서 전략을 수정해가는 방식이 참 흥미롭다.

강화학습이나 GAN까지는 아니더라도 부족한 정답세트를 극복하기 위한 다른 여러 방법들이 있다. Semi-supervised 중에 하나인 active learning (다른 의미로 사용되는 경우도 있음)도 일종의 앙상블 방법인데, 두개의 다른 learner가 서로 다른 결과를 예측하면 어느 예측이 맞는지 사람에게 확인받아서 모호한 케이스에 대해서 정답세트를 추가하는 방식이다. 위에서 설명한 것보다는 좀더 아날로그적인 방식이지만 액티브러닝을 소개받았을 때도 참 재미있다고 생각했었다. 일반적으로 두개의 classifier가 같은 답을 내놓으면 그게 정답이겠거니라고 생각하겠지만, 역으로 둘다 틀린 답변을 내놓았을 가능성도 있다. 그래서 둘이 다른 판정을 내린 사안에 대해서만 다시 슈퍼바이저 (인간)이 투입돼서 정답 여부를 가늠하는 겁니다. (처음 적을 때 이 문단은 없었지만, 함께 언급해도 괜찮을 것 같아서 추가함)

당장 내가 하고 있는 업무에서 자기강화방식이나 GAN방식을 사용할 수 있을지? 또는 어떻게 사용할 수 있을지는 아직 잘 모르겠다. 내가 앞으로 머신러닝 분야에서 더 깊은 연구를 하거나 새로운 알고리즘을 개발할 가능성은 낮지만, 다른 차원의 문제에서 이런 비슷한 전략으로 문제를 해결하는 실마리를 얻을 수 있지 않을까?라는 생각에서 좀 길게 글을 적었다.

===
B: https://brunch.co.kr/@jejugrapher
F: https://www.facebook.com/unexperienced


댓글을 달아 주세요

  1. Favicon of http://jyyang.tistory.com BlogIcon acon 2017.04.24 14:12 신고 Address Modify/Delete Reply

    흔히 기계학습에서는 Supervised Learning, Unsupervised Learning, Reinforcement Learning으로 나누는걸로 알고 있는데요, RL은 엄밀히 말하면 지도학습이나 비지도학습과는 다른 분류로 나눠야 하는 것 아닌가요?

    • Favicon of http://bahnsville.tistory.com BlogIcon Bahniesta 2017.04.24 15:20 신고 Address Modify/Delete

      일반적으로 RL을 별도의 분류로 보는 건 맞지만, 그냥 RL을 리워드(함수)도 결국 슈퍼바이즈드의 라벨과 큰 차이가 없을 수도 있습니다. 관점의 차입니다. 특히 말하고 싶었던 것은 강화 프로세스가 요즘 언급되는 RL만을 의미하는 것은 아니라는 것입니다.

Share           Pin It
인간과 기계를 구분하는 것은 지능이 아니라 마음이다.

알파고와 이세돌 9단의 대국은 대한민국을 다른 — 좋은 의미든 나쁜 의미든 — 단계로 이끌고 있다. 내심 이 9단의 (완벽한) 승리를 바랬건만, 그렇지 못했던 것이 오히려 우리에게 큰 자극제가 됐다. 정부 주도의 이상한 움직임을 예상 못했던 것도 아니지만, 어쨌든 이번 대국을 통해서 우리는 더 전진하리라 믿는다. 이미 시작된 혁명을 가까이서 목격했고 여유는 없어도 늦지 않게 준비해나갈 수 있다.

세계의 곳곳에서 이미 시작된 혁명이지만 이번 대국을 통해서 이제서야 대한민국이 각성했다고 본다. 지금 세계적으로 일으나는 움직임 그리고 앞으로 대한민국을 뒤덮을 이 거대한 움직임을 지능혁명이라 명명할 것이다. 지능혁명이란 지능의 폭발적 증가를 뜻한다. 농업 기술의 발전으로 농업 생산물의 폭발적 증가를 일으킨 것이 농업혁명 (또는 제1의 물결)이었고, 증기기관의 발명과 함께 생산성의 폭발이 산업혁명 (제2의 물결)이었고, 그리고 컴퓨터의 발전과 함께 이뤄진 정보 통신의 발달 그리고 소프트웨어와 서비스 중심의 개편이 정보혁명 (제3의 물결)이었다. 그렇다면 인공지능의 발달로 인한 새로운 사회로의 전환을 지능혁명이라 명명하는 것이 틀린 표현은 아니다.

그런데 궁금한 점이 하나 있다. 분명 현재 그리고 향후 몇 년 동안 인공지능의 급진적인 발전을 목도할 것인데, 이 지능혁명은 인류에게 어느 수준의 혁명으로 불릴 것인가다. 지능혁명은 정보혁명 이후의 메이저 변혁 (제4의 물결)인가? 아니면 그저 정보혁명의 마이너 버전업 (제3.x의 물결)이 될 것인가?가 궁금하다. 스마트폰의 등장으로 촉발된 모바일 중심으로의 변화는 분명 정보혁명의 마이너 버전이었다. 그래서 나는 모바일혁명을 제3.1의 물결정도로 부른다. 그러면 지능은 단순히 정보혁명의 연장선상에 있는 제3.2의 물결일까? 아니면 정보혁명 다음의 거대한 물결, 즉 제4의 물결일까?

해커주의와 메이커스 운동에 따라서 정보혁명 이후의 세상을 다시 자급 사회로의 회귀를 예측했었는데, 그런 흐름의 겻갈레로 지능의 발전을 목도하고 있다. 어쩌면 지능혁명이 자급사회로의 회귀를 부추길 가능성이 있다. 지능의 폭발로 인한 로봇의 인간 대체 현상이 가속화됐을 때 잉여 노동력은 무엇을 해야할까? 혁명의 과실을 모두 고르게 나눈다면 큰 문제가 없을지 모르겠으나, 항상 그렇듯이 (소수 인간의 욕심으로) 인공지능과 로봇의 혜택을 모두가 고르게 누리지는 못할 것이다. 연명하기 위해서 다시 밭을 갈고 낚시/수렵을 하게 되는 인류의 모습을 상상하게 된다. 단순히 예술활동이 아닌 진짜 생존을 위해서… (고르게 혜택을 누리는 경우에도 자연주의가 도래할 가능성이 높다고 본다.) 어차피 그 때가 되면 인간이 산업에 영향을 줄 수 있는 부분은 거의 없다.

놀라운 컴퓨팅 파워에 인간의 창의성과 직관이 도전받고 있다. 바둑을 통해서 전략 게임이 직관이 아니라 계산에 압도되는 것을 이미 확인했다. 직관이 우리를 미지의 세계로 이끌었는데, 이젠 모든 상황에 대한 계산이 우리를 뻔한 미래로 이끌고 있다. 계산이 직관을 이기는 세상이 우리 곁으로 왔다. 지난 모든 혁명은 분명 인류에게 큰 기회였고 도움이었는데, 지금의 변화는 우리에게 어떤 새로운 기회를 가져다 줄 것인가? 어쩌면 일말의 기대마저 무너뜨리는 것은 아닐까?라는 두려움이 앞선다.

지능혁명 — 이게 맞다면 — 은 앞으로 어떻게 진행될까? 딥블루나 왓슨이 그랬듯이 알파고를 지능형 머신이라고 부르는 것이 맞을까?라는 의문이 여전히 있다. 알파고가 여전히 생각하는 기계 (thinking machine)이 아니라 계산하고 평가하는 기계이기 때문이다. 그런데 이젠 연산이 생각을 앞선 세대가 됐다. 딥블루와 왓슨으로 미국인들이 자각했듯이 알파고로 이젠 한국인들이 자각했다. 물론 자각했다고 제대로 된 미래를 계획할 수 있다는 얘기는 아니다. 구글/알파벳이 싼값에 알파고를 내세워서 마케팅을 잘했다는 비아양도 있지만, 알파고가 대한민국에서 많은 대한국민들이 보는 앞에서 이9단을 꺾은 것은 우리에겐 분명 행운이었다. 다른 나라 땅에서 다른 나라 사람을 이겼다면 지금처럼의 충격과 각성이 없었을 것이다. 그저 4년마다 돌아오는 월드컵 이벤트보다 우리에게 영향을 주지 않았을 것이다.

하지만 알파고는 우리 모두에게 두려움을 줬고 어떤 이들에게는 희망을 줬다. 인공지능이나 머신러닝 쪽으로 공부해보고/시켜보고 싶어한다는 얘기가 SNS에 전파되는 것을 여러 번 봤다. 이전 글에서 밝혔듯이 우리는 이젠 알파고키즈를 기다리고 있다. 그들이 이룩할 혁명적 발전, 즉 지능혁명을 기대한다. 3.2가 될지 4.0이 될지 여전히 알 수는 없지만 4.0이 될 가능성이 더 높아보인다. 우리는 근본적으로 변할 것이다. 원하든 원치 않든… 바라건대 수동적으로 이끌려갈 것이 아니라 능동적으로 이끌어갈 수 있기를… 

혁명은 이미 시작됐고, 우린 지금 그 한 가운데 놓여있다. 외롭지 않기를...

===
B: https://brunch.co.kr/@jejugrapher
F: https://www.facebook.com/unexperienced


댓글을 달아 주세요

알파고 키즈의 등장

Gos&Op 2016.03.12 10:30 |
Share           Pin It
(금요일에 생각한 것 위주로...) 어제 이세돌 9단과 알파고의 구글 딥마인드 챌런지 2차 대국이 끝난 후에는 나름 멘붕에 빠져 아무런 생각도 나지 않았는데, 자고 일어나서 다른 분들의 글을 읽으면서 여러 생각들이 막 떠오른다. 휴가를 내고 하루 종일 운전하면서 떠오른 생각을 정리하려 한다. 그냥 출근했더면 글을 적느라 아무 것도 못했을 것 같다.

알파고 키즈
역사적인 현장에는 늘 새로운 스타가 등장한다. 그러면 그를 모델로 삼은 새로운 세대가 등장하곤 한다. 최초의 메이저리거였던 박찬호나 맨체스터 유나이티드에서 당당히 레귤러 멤버로 확약한 박지성을 보고 자란 박찬호 키즈나 박지성 키즈가 있지만, 가장 대표적인 사례는 골프 여제 박세리를 보고 자라난 박세리 키즈가 있다. 이번 대국에서 아마도 바둑계에서는 이세돌 9단이 무난히 승리해서 국내에서 바둑 신드롬을 일으켜서 이세돌처럼 되기를 꿈꾸는 이세돌 키즈의 등장을 내심 기대했겠지만, 결과적으로 알파고의 영향을 받아서 인공지능이나 로봇공학에 관심을 가지고 연구하려는 세대가 등장할 것 같다. 이 세대의 사람들을 알파고 키즈라 부르면 될 것 같다. 이세돌 개인과 박둑계에는 안타까운 일이지만, 5년에서 10년 내로 알파고를 보고 인공지능을 만들고 싶었어요라고 말하는 연구자들이 나올라 것이고 — 인공지능이 디스토리아를 만들지 않는다면 — 인류 전체에는 분명 큰 전진을 위한 일보 후퇴였다. 당장 1~2년 안에 정부에서 인공지능 쪽으로 지원이 많이 늘어날 듯...

전략
좋은 전략이란 무엇인가?라는 질문을 던지게 된다. 듣기에 아주 그럴듯한 전략도, 과거에 성공했던 전략도, 또는 다수가 좋아하는 전략도 좋은 전략일 수가 있지만, 결국 좋은 전략은 이기는 전략이다라는 결론을 내린다. 아무리 참신한 전략이더라도 진다면 좋은 전략이 아니고, 마지막까지 승기를 잡은 전략이더라도 끝에 지면 좋은 전략이 아니다. 알파고가 어떤 전략과 전술을 사용했는지 모르겠으나 결국 이겼다. 알파고는 바둑을 둔 것이 아닐지는 몰라도, 최소한 이기는 전략을 펼쳤고, 이기기 위해서 최선을 다 했다.

춘래불사춘
인공지능에 대한 정의가 광범위하지만 적어도 인간과 같은 지능의 등장은 아직도 멀었다. 2패 직후에는 인간과 같은 지능의 등장이라는 생각에 힘이 빠졌지만 자세히 생각해보면 그 단계에 이르려면 아직 갈 길이 멀다. 특정 분야에서는 인간만이 할 수 있을 것같은 일들을 기계가 해내고 있지만 그건 그렇게 하도록 프로그래밍된 것에 불과하다. 프로그래밍됐다는 하드코딩됐다는 의미가 아니다. 알파고를 인공지능이라고 불러야할까?를 고민해봤지만, 어쩌면 아니다라고 말하는 것이 맞을 것 같다는 생각이다. 인간을 이긴 것은 맞지만 그렇다고 지능을 가졌다라고 말하는 것에는 무리가 있다는 얘기다.

딥블루가 체스 그랜드마스터를 이겼지만 그건 지능의 승리가 아니라 컴퓨팅 파워의 승리였다. 당시 최고의 슈퍼컴퓨터의 컴퓨팅 파워가 인간이 할 수 있는 것 이상을 처리해낸 것에 불과하다. 왓슨이 쿼즈 프로그램에서 이긴 것은 조금 더 발전한 건 맞다. 사회자의 목소리를 해석해서 맞는 답을 찾아냈기 때문에 그렇다. 그러나 결국 왓슨은 방대한 양의 정보의 승리에 더 가깝다. 언어 추론과 정답 매핑을 평가절하하는 것이 아니다. 만약 다른 사람들이 왓슨만큼의 정보를 가졌다면 버즈를 누르는 타이밍은 놓쳤을지라도 정답을 몰랐을 수는 없다. 만약 사람 얼굴 사진을 보여주고 누구냐?라는 퀴즈가 나왔다면 당시 왓슨은 대답하지 못했을 가능성이 있다. 그런데 지금의 알파고 (를 가능케한 ConvNet)는 가능하다. 그런 의미에선 지능이 발전했다.

알파고도 결국 컴퓨팅 파워, 즉 연산의 승리로 보인다. 알파고의 승리는 결국 (인간) 집단지성의 승리고, 그런 집단지성을 한데 모아서 패턴을 찾아낼 수 있게한지 컴퓨팅 파워와 아키텍쳐의 승리다. 결국 인간의 바둑을 모사한 것이지 엄밀히 말해서 바둑 규칙에서 전략을 스스로 만들어낸 것은 아니다. 그리고 딥블루 이후로 컴퓨팅 파워가 아주 발전했다는 것을 확인할 수가 있었고 또 분산처리 패러다임이 딥블루보다 진일보한 것이다. 결국 — 러프하게 말하면 — 알파고는 수많은 인간의 바둑 기보의 집합체에 불과하다고 볼 수도 있다. 물론 모든 기보를 가졌다고 알파고처럼 할 수 있다는 얘기는 아니다. 강화학습 — 정확히 표현하면 자기강화 self-reinforcement — 을 통해서 인간의 기보를 발전시킨 점에서 대단한 능력을 가진 것은 분명해 보인다. 추론컨대 사람의 기보 및 자기강화를 통한 학습은 대국의 극초반과 지협적인 전투만 국한해서 영향을 줬지, 중반 이후의 승기는 학습과는 좀 무관해 보인다. 경우의 수가 많을 때는 임의 시뮬레이션을 통해서 그리고 경우의 수가 충부히 줄어들었을 때는 풀스캔을 통해서 최고의 점수를 얻는 길을 그냥 선택한 것 뿐이다. (간단한 것처럼 적었지만 이게 어려우니 아직까지 등장하지 못했던 거긴 하다.)

체스나 바둑과 같은 전략 게임에서 새로운 전략을 스스로 세워서 경쟁하는 것이 아니라, 가능한 모든 시나리오 또는 (사실상 불가능하니) 임의의 시뮬레이션을 통해서 가장 좋은 수를 얻는다는 것은 스스로 생각하는 기계가 아니라 원래부터 컴퓨터가 가장 잘 하던 것 (빠른 연산)을 잘 수행한 것 그 이상이 아니다. (이걸 가능케한 연구진들에게는 박수와 찬사를 보낸다.) 봄이 왔지만 봄은 오지 않았다. 컴퓨터가 인간을 이기고 있지만 인공지능의 시대가 도래한 것은 아니다. 인공지능의 수준에 따라서 이견이 있겠으나, 적어도 기계가 인간을 지배하는 그런 류의 마치 인간처럼 또는 인간 이상으로 행동하는 그런 지능의 시대는 멀었다는 얘기다. 스카이넷은 잠시 잊어라.

사람과 컴퓨터
그동안 데이터 분석을 업으로 삼으면서 약간 모호함 (과 인간의 직관)을 중시하는 편이었다. 이전 글들에서 적었듯이 데이터와 알고리즘에서 나온 엄격함보다는 인간이 이해할 수 있는 또는 사람에게 설명할 수 있는 것을 추구하는 것이 필요했다. 경험과 감에 의해서 조절되는 것에 많은 의미를 뒀다. 그러나 이젠 사조가 바뀌어야할 것 같다. 사람이 이해를 못하더라도 모델과 데이터에서 얻은 것으로 끝까지 밀고 나가야할 것 같다. 알파고는 바둑에서 집 싸움을 하지 않았다. 그래도 이겼다. 사람을 이해시키기 위한 노력은 이젠 헛것이 된 것 같다. 몇 수 앞을 내다보는 것은 더이상 의미가 없다. 모든 수, 즉 마지막 수까지 내다보고 계산해서 현재의 가능성을 가장 높이는 것이 최적의 솔루션이 됐다. 분석 이후의 해석이 중요하다고 생각했지만, 이젠 해석이 필요없는 시대로 접어들었다. 그저 결과가 좋으면 그만이다. 더 촘촘하게 짜맞춰야 한다.

한계
이번 대국에서 놀라웠던 점이 있다. 원래 인간과 컴퓨터의 대결에서 후반부로 가면 인간이 절대 불리하다. 바둑의 경우의 수는 현재의 컴퓨터로는 아직 넘어설 수 없다. 그런데 한 수 한 수 진행되면서 종반으로 가면 컴퓨터가 감당할 수준의 경우의 수만 남는다. 바둑판이 361칸이라서 최소 200이나 250수가 넘어서면 풀스캔이 가능하다고 생각했는데, 생각보다 (사실상) 풀스캔이 이른 시점에 가능하다는 점이다. 100수 정도가 지난 중반부터는 사실상 풀스캔이 이뤄지고 그때부터는 기존에 충분한 영역을 확보해놓지 않으면 절대 컴퓨터를 이길 수 없다. 1200개의 CPU 클러스터가 생각보다 연산 능력이 뛰어났다. 그리고 경우의 수가 크다는 의미는 역설은 수가 진행될수록 경우의 수가 기하급수적으로 줄어든다는 점에 있다. 뿐만 아니라, 영역이 어느 정도 정해지면 (자신의 영역 및 남의 영역 모두) 그 부분은 고려 대상에서 제외시켜버리면 경우의 수가 매우 제한적이다. 361개의 가능한 포인트에서 이미 100수가 진행되었다면 100집 정도는 이미 안정적으로 구축돼서 파고들 여지가 없다. 그렇다면 이제 남은 150개 정도의 지점을 누가 가져가느냐의 싸움이 시작되는데, 이 수준에 이르렀을 때 사람들은 여전히 불확실하지만 컴퓨터는 그렇지 않다. 사실상 컴퓨터는 대국의 승패를 알고 있다. 이 순간부터 인간이 자칫 실수를 하면 인간의 완패다. 두번째 대국에서 이세돌 9단이 승기를 잃었던 시점도 이때부터였던 것같다. 현재까지 본 것을 결론을 지으면 극초반에 자신의 영역을 확실히 선언하고 중반으로 가면서 공통 영역인 중앙에서 밀리면 안 된다. 초반에 충분한 집을 확보해놓지 못하고 또 중반에 중앙에서 밀리면 그냥 끝이다.

(낮동안 많은 생각을 했지만 밤 늦게 글로 옮기면서 행간의 의미를 모두 끼워넣지 못한 점이 있습니다. 낮에 생각한 그대로 표현하지 못한 것도 있고…)

승패는 결국 중요하지 않다. 인간과 컴퓨터의 대결에서 승자와 패자가 아닌, 인간만이 할 수 있는 것을 묵묵히 해가고 있는 이세돌 9단을 끝까지 그리고 대국 이후에도 계속 응원합니다.

===
F: https://www.facebook.com/unexperienced

댓글을 달아 주세요