인공 지능…?

이세돌 9단과 구글 알파고의 대결

이세돌 9단과 구글 알파고의 대결

개발자가 아닌 필자에겐 ‘인공 지능’이라는 단어가 참 낯설다. 어려운 단어는 아니지만, 친구들과 대화 주제로 나오기도 힘들고, 그렇다고 업무적으로도 전혀 사용할 일이 없는 단어다. 하지만 이번 구글 알파고AlphaGo 덕분에 평생 사용할 ‘인공 지능’이란 단어를 이미 다 사용해 버린 것 같다.

필자는 살면서 단 한 번도 개발 관련한 교육을 받아본 적이 없기에 기술적인 설명은 소프트웨어정책연구소의 ‘AlphaGo의 인공지능 알고리즘 분석’을 직접 읽어보기를 권한다. 필요한 부분을 본문에 발췌하겠지만, 개발에 관련된 배경 지식 없이도 상식적으로 이해 가능한 수준으로 적혀 있어 기본적인 알고리즘을 이해하는 데 큰 도움이 되었다. 이제 알파고와 이세돌 9단은 두 번의 대국이 남아있는데, 적어도 그동안은 알파고의 이야기가 끊이지 않을 텐데 한번 읽어두면 지인들과 이것저것 나눌 수 있는 이야기도 많다.

알파고의 인공지능 알고리즘 – 몬테카를로 트리 탐색

바둑은 경우의 수가 지독하게 많아서1 기존에 존재하는 전체 경우의 수를 빠르게 탐색해 가는 게임 소프트웨어 알고리즘으로는 구현할 수 없어 그동안 소프트웨어가 정복하지 못한 게임 중 하나였다. 그래서 알파고를 포함해서 모든 바둑 프로그램의 성능은 탐색의 전략에 달려 있다고 해도 과언이 아니다. 알파고의 인공지능은 아래의 두 가지 핵심 알고리즘 방식2에 의해 구현된다.

  1. 알파고는 게임 트리 탐색(MCTS)을 하는 데 있어 실제 바둑 기사의 착수를 학습한 Policy Network(트리의 폭을 제한)와 국지적인 패턴인식으로 승산 판단을 위한 Value Network(트리의 깊이)의 두 가지 핵심 요소로 구현되어 있다.
  2. 프로바둑 기사들의 착수전략을 학습하는 지도학습 방식과 스스로 경기하여 학습된 전략을 강화하는 강화학습(Reinforcement Learning) 방식이 적용되어 있다.

정확히 이해하고 싶은 사람은 꼭 원문 리포트를 보도록 하고, 이번 글에서는 알파고 인공지능이 갖는 한계에 대해 집중해서 설명하려고 한다.

알파고를 ‘인공지능’이라고 부르기 꺼려지는 이유3

이세돌 9단에게 무서운 기세로 3연승을 거두고 있는 알파고의 인공지능에 도대체 뭐가 실망스럽다고 말하는지 의아할 것이다. 하지만 구글에서 밝힌 대로 알파고는 ‘바둑 소프트웨어’로 개발한 것이 아니다. 바둑은 단지 알파고의 알고리즘을 시험하기 위해 삼은 무대일 뿐, 결국은 ‘인공지능 소프트웨어’ 자체로서 평가받아야 한다. 그래서 필자는 과연 알파고를 ‘인공지능’이라 부를 수 있을지가 의문스럽다.

“알파고는 결국 검색 엔진과 다를 바 없다.”

위에서 언급한 알파고의 첫 번째 핵심 알고리즘을 쉽게 말해본다면, 알파고는 ‘바둑의 특성상 모든 경우의 수를 검색할 수 없으므로, ‘정책’과 ‘가치’라 부르는 두 가지 핵심 요소를 근거로 검색을 제한한다는 것’이 특징이다.

적어도 이 글을 읽고 있는 사람이라면 하루에 적어도 다섯 개 이상의 검색을 구글(혹은 네이버)을 통해 하고 있을 것이다. 하지만 우리 중 그 누구도 검색 엔진을 통해서 키워드를 입력하고 검색하는 과정, 그리고 검색 결과에 대해서 ‘인공지능’이 개입한다고 생각하지 않는다. 물론 우리가 입력한 키워드를 토대로 검색 엔진은 가장 가능성이 큰 찾으려는 결과물을 먼저 보여주기 위해 일종의 룰4이 존재하지만, 역시 그 누구도 그 룰을 ‘인공지능’으로 생각하지 않는다.

매일 수많은 검색을 하지만 이것이 '인공지능'이 주는 혜택이라고는 아무도 생각하지 않는다.

매일 수많은 검색을 하지만 이것이 ‘인공지능’이 주는 혜택이라고는 아무도 생각하지 않는다.

다시 알파고로 돌아와 보자. 알고리즘에 대해서 어렵게 설명했지만 알파고의 핵심 요소인 ‘정책’, ‘가치’ 네트워크 역시 검색의 규칙임을 알 수 있다. 어디까지 검색해야 할지(정책), 그리고 정해진 범위 내에서 얼마나 많은 수를 검색할지(가치)를 결정하는 잘 짜인 검색 규칙인 것이다. 세계 최고의 검색 엔진과 데이터 서버를 가진 구글에서 이런 알고리즘을 가장 잘 만들 수 있음은 의심할 여지가 없을 것 같다.

“알파고는 새로운 수를 둘 수 없다.”

소프트웨어정책연구소의 리포트가 일반인도 쉽게 이해할 수 있게 기술적인 내용을 잘 풀어썼다고 생각하는데, 한 가지 동의하기 힘든 부분이 있다. 바로 ‘알파고의 직관’에 대한 내용이다. 본 리포트에서는 알파고 알고리즘의 두번째 핵심요소인 ‘강화학습(reinforcement learning)’을 통해 직관에 의한 경기를 할 수 있다고 하는데 필자의 의견은 다르다.

알파고는 박보검처럼 혼자 앉아서 새로운 수를 연구할 수 없다.

알파고는 박보검처럼 혼자 앉아서 새로운 수를 연구할 수 없다.

기본적으로 알파고는 ‘지도학습’이라고 부르는 과정을 통해 프로 6단에서 9단 사이의 실제 대국 16만 개의 기보로부터 3,000만 가지의 바둑판 상태를 데이터로 추출해 사용한다. 여기에 알파고는 스스로 경기하여 지도학습을 강화하는 ‘강화학습’을 수행한다. 마치 알파고가 프로 기사처럼 혼자 앉아 기보를 두면서 새로운 수를 연구하는 모습을 연상하게 하는 설명이다.

하지만 알파고는 스스로 대국을 통해서 기존 프로 기사의 대국에서 얻지 못했던 새로운 수를 둘 수 없다. ‘강화학습’을 통해서 알파고는 새로운 데이터를 얻는 것이 아니라 기존 대국 정보에 대한 가중치를 획득한다. 즉, 앞서 언급한 검색 규칙을 정교화하기 위한 수단으로 사용하는 것이다. 왜 본 리포트에서 ‘강화학습’이 직관으로 경기할 수 있게 만든다고 했는지 이해하기 어렵다.

인공지능에 거는 기대

‘인공지능’이라고 부르는 것들에 대해, 그리고 이번 알파고의 알고리즘을 살펴보면서 기대했던 것은 귀납적 사고방식이 아니었다. 지금까지 조금 성급하게 부르는 모든 인공지능은 모두 귀납적 방식의 사고(검색)을 한다. 일어날 수 있는 모든 상황을 될 수 있으면 빠짐없이 준비해 놓고 그 안에서 모든 일이 일어나길 바라는 것이다. 하지만 진정 ‘인공지능’의 시작은 연역적으로 사고할 수 있는 알고리즘의 시작에 달려있다. 예상된 상황을 검색하고 준비된 반응을 보여주는 것은 물론, 준비되지 않은 상황에서 자신의 논리로 반응할 수 있어야 한다.

알파고에 기대한 것은 이세돌 9단에게 승리하는 것이 아니라, 지더라도 한수 한수 나름의 논리를 갖고 바둑이라는 게임을 처음부터 끝까지 해내는 것이었다. 지금 알파고는 바둑이라는 게임을 하는 것이 아니라 확률상 이길 가능성이 큰 수를 검색하고 있을 뿐이다.


  1. 바둑에서 평균적으로 다음 수를 둘 수 있는 경우의 수가 250개, 바둑 게임의 평균 길이는 약 150수 정도. 약 250의 150 제곱만큼의 경우의 수가 있다. 사실상 모든 경우의 수를 계산하는 것이 불가능하다. 
  2. 이 한 문장으로 알파고의 알고리즘을 이해할 수 있는 사람이 얼마나 될까 싶다. 꼭 리포트를 한번 정독하길 바란다. 개발자가 아닌 필자가 읽기에도 재밌고, 현재 가장 진보된 인공지능 수준에 대한 감도 잡을 수 있다. 
  3. 소프트웨어 업계에서 ‘인공지능’으로 부를 수 있는 기준이 따로 있는지는 모르겠다. 다만 알파고는 개인적으로 기대하고 있는 ‘인공지능’의 모습은 아니다. 
  4. 구글을 일반적으로 사이트가 포함된 외부 링크의 수로 ‘신뢰도’를 측정하고, 그 신뢰도의 정도에 따라 검색 결과를 보여준다. 

Posted by JW