2016년 3월 26일 토요일

알파고, 강화학습을 현실에 데뷔시키다


이 글은 한국인터넷진흥원테크M에 기고한 글을 백업한 글입니다. 

현대 인공지능 발전에 있어 딥러닝(deep learning)의 역할은 이제 두말하면 입이 아플 정도이다. 2006년 토론토 대학의 힌톤(G. Hinton)교수 촉발시킨 딥뉴럴네트워크(deep neural network)의 혁신은 이후 동료 연구자들인 뉴욕대학의 르쿤(Y. LeCun)교수, 몬트로올대학의 벤지오(Y. Bengio) 교수, 스탠포드대학의 응(A. Ng)교수 등의 후속 연구에 의해 그 깊이가 더해졌고, IT공룡들이 재빨리 이들 딥러닝 연구자들을 흡수함으로써 딥러닝은 현실을 미래로 이끄는 가장 강력한 기술이 되었다. 현재 구글의 힌톤, 페이스북의 르쿤, 바이두의 응은 각각의 기업에서 딥러닝의 현실세계 적용을 이끌고 있으며, 이들 못지않게 현재 딥러닝의 발전에서 큰 역할을 하고있는 사람이 바로 알파고의 충격을 던져준 구글 딥마인드의 데미스 하사비스(Demis Hassabis)이다. 

이젠 그가 잘생겨보인다. 데미스 하사비스느님... (출처)

하사비스가 추구하는 딥러닝은 기존 주류의 딥러닝과 결을 약간 달리하고 있다. 현재 딥러닝의 주류라고 하면 르쿤이 1998년 최초 주창한 컨볼루셔널 뉴럴네트워크 (convolutional neural network, 이하 컨브넷)[1]를 개량한 방법들[2][3]을 꼽을 수 있다. 이 방법들은 원래 이미지 인식을 위해 고안된 방법으로서 깊은 신경망을 통한 단계적 추상화에서 탁월한 능력을 보이는데, 현재에는 데이터의 추상화를 통한 특징점(feature) 추출을 원하는 많은 분야에서 기본적인 딥러닝 방법으로서 활발하게 활용되고 있다. 뛰어난 프로그래머이자 인지신경과학자였던 하사비스는 동물의 학습 방법에서 착안한 기계학습방법인 강화학습(reinforcement learning)에 깊은 관심을 가지고 있었는데, 기존의 강화학습의 한계들을 강화학습과 컨브넷을 결합한 딥강화학습(deep reinforcement learning)으로 해결해 갔고, 이것이 바로 알파고 기술의 요체(拗體)였다. 

그렇다면 강화학습이란 무엇이고 하사비스가 제안한 딥강화학습이란 어떤 방법일까?

강화학습은 기계학습의 큰 분류인 지도학습(supervised learning)과 비지도학습(unsupervised learning) 그 어느 것에도 들지않는 제 3의 방법으로 불린다. 지도학습이 입력과 출력 데이터를 가지고 학습을 하고, 비지도학습이 입력값만으로 데이터의 모델을 학습하는 것과는 달리, 강화학습은 하나의 에이전트로서 스스로 선택지들을 탐색(exploration)하고 이를 통해 얻은 정보들을 활용해(exploitation) 행위(action)를 해나간다. 대신 강화학습에서는 보상(reward)함수 라는 것이 주어진다. 지금 얻은 데이터에 대해 ‘잘한 일’과 ‘못한 일’의 정도를 평가할 수 있는 평가지표함수를 미리 정해주는 것이다. 게임을 예로 들면, 에이전트는 다양한 상태(state)에서 다양한 행위(action)를 하며 이에 대한 게임 점수 변화를 확인함으로써 자신의 행위가 잘한 행위인지를 판단할 수 있다. 이 때는 게임점수를 보상함수 값으로 볼 수 있을 것이다. 강화학습의 목적은 에이전트를 보상이 가장 큰 행위들로 이끄는데 있다. 이렇게 상황에 따라 최선의 보상을 취하는 행위를 하는 에이전트를 강화학습 기반의 인공지능이라 부르며, 이는 알파고의 바탕 기술이라 할 수 있다.

강화학습의 도식 (출처)
실제 강화학습 기반의 인공지능은 벽돌깨기 게임과 같은 구조화된 환경에서 매우 뛰어난 성능을 보였다. 하지만 그것은 상태와 보상이 잘 정의된 게임에서 였을 뿐, 강화학습이 현실세계에 적용되기까진 크게 세가지의 장벽이 있었다. 첫째, 현실에선 현재 에이전트의 상태를 명확하게 정의하기 쉽지 않고, 둘째, 다양한 상태와 행위들을 탐색하기 위해선 많은 시간이 소요되며, 셋째, 행동에 따른 보상을 현실세계에선 정확하게 정의하기 어렵다는 점이 바로 큰 장벽들이었다. 결국 강화학습은 상태와 보상이 명확히 정의된 게임들에서만 인공지능의 강력함을 발휘할 뿐 모호함으로 가득찬 현실세계에는 적용이 힘든 방법으로 여겨졌었다. 하지만 구글 딥마인드의 하사비스와 실버(D. Silver)는 딥러닝과의 결합으로 이를 해결해갔으며 그것의 대표적인 결과가 바로 알파고의 승리였다.

강화학습이 정의된 조건들에 따른 상태에 기반하여 행동하는데 반해 인간은 많은 부분 시각적 정보(vision)에 의존하여 판단한다. 비록 폴라니스 패러독스(Polanyi’s paradox)가 일컫는 것처럼 눈에 들어오는 시각적인 정보를 명확히 언어로 표현할 순 없지만, 인간은 미지의 추상화과정을 통해 시각적 정보를 현재 상태로 이해하며, 결국 이러한 이해를 바탕으로 판단하고 행위한다. 다시 말해, 인간이 사는 세상과 인간이 하는 판단, 행위는 기존의 강화학습에서는 다루기 힘든 매우 광대하고 모호한 공간이며, 이를 판단하는 주요 근거는 시각적 정보라는 것이다.  

하사비스와 실버는 강화학습 에이전트가 인간이 수동으로 입력해준 특징점들이 아닌 (예를 들면 벽돌깨기에서의 공과 유닛 위치) 시각적 정보와 같은 복잡한 입력값을 이용해 스스로의 상태를 정의하고 행위/보상을 스스로 이해를 하기를 바랐다. 마치 인간이 그러하듯 말이다. 이러한 목적에 따라 2013년 실버 등이 발표한 “딥강화학습을 이용한 벽돌깨기 게임 플레이”[4]에서는 사람이 미리 정해준 상태함수(공과 유닛의 위치)가 아닌, 모니터에서 출력되는 비디오 그 자체를 강화학습의 상태입력값으로 사용하였다. 결과적으로 인공지능은 비디오로부터 무엇이 중요한 요인들인지 스스로 판단해야 했었는데, 이 역할을 컨브넷이 훌륭하게 해냈으며, 이는 강화학습의 진일보를 의미했다. 왜냐하면 이것은 미래엔 인공지능에게 ‘이게 중요해, 저게 중요해’라고 일일이 가르쳐 줄 필요없이 그저 행위를 시각적으로 보여주는 것만으로도 배우게끔 하는 단초를 제공했기 때문이다. 

알파고의 날카로운 형세 판단도 이러한 딥강화학습의 결과였다[5], 알파고는 19X19 바둑판의 각 칸마다 48차원의 특징점들을 적용하여 총 19X19X48=17328차원의 거대한 벡터를 입력값으로 사용하였는데, 이는 마치 이미지와 같은 고차원의 상태공간으로 볼 수 있다. 따라서 이를 에이전트가 이해할 수 있는 수준으로 끌어내리려면 이미지 인식에서와 같은 고도의 추상화 과정이 필요했는데, 이 과정을 컨브넷이 훌륭하게 수행했다. 나아가 딥강화학습은 강화학습의 핵심이라 할 수 있는 행위의 가치를 평가하는데 성공했다. 현재 행위의 가치는 현재를 포함한 미래의 예상되는 보상들의 합으로 표현될 수 있는데 이는 간단하게 표현되지 않는 매우 복잡한 함수일 것이다. 딥강화학습에서는 이 액션-가치함수(action-value function)를 학습에 컨브넷을 활용하였는데[6], 이 결과 알파고가 형세판단을 하고 이 속에서 최선의 한 수를 둘 수 있었던 것이다. 결과는 아시다시피 인간의 능력을 뛰어넘는 최고의 실력을 가진 인공지능 에이전트의 탄생이었다.

알파고에 사용된 policy net과 value net[6]

알파고에서 보여준 딥강화학습의 도약은 특히 로봇분야에서의 큰 발전을 기대하게끔 한다. 기존에도 강화학습은 로봇분야와 가장 가까운 기계학습 분야로 손꼽혔었는데, 그 이유는 로봇 스스로가 실제 행위하고 이를 통해 배우는 에이전트이기 때문이다. 로봇에 기존의 강화학습 방법론을 적용하기 위해선 로봇이 대하는 상황을 게임처럼 되도록 단순하게 만들 필요가 있었다. 예를 들어 ‘로봇을 통해 다트 10점을 맞춘다’라든지 ‘탁구공을 쳐서 상대방 코트 안으로 넘긴다’와 같이 행위와 이에 따른 보상이 명확할수록 강화학습은 실제 로봇에서 큰 힘을 발휘할 수 있었다. 반대로 말해, 이렇게 환경이 명확하지 않다면 강화학습은 로봇에게 무용지물(無用之物)일 뿐이었다.

하지만 알파고에 사용된 딥강화학습은 로봇이 좀더 복잡한 상황을 이해하고 이에 대해 최적의 행위를 할 수 있을 미래의 가능성을 보여준다. 비록 지금의 탁구 로봇[7]은 인간이 수동으로 탁구공의 정보와 탁구채의 정보만을 골라 입력함으로써 로봇을 학습시키지만 (즉, 무엇이 이 태스크에 중요한지 인간이 선택해주지만), 미래엔 로봇 스스로가 탁구 행위를 시각적으로 관찰함으로써 탁구공과 탁구채의 관계가 중요함을 스스로 깨달을 수 있을지도 모른다. 마치 실버의 벽돌깨기 인공지능이 비디오 정보로부터 최적의 행위를 학습했 듯 말이다. 또한 행위에 대한 복잡한 가치를 계산하는 일 역시 인간의 수식을 넘어 딥러닝의 학습결과에 맡길 수 있을지도 모른다. 더 이상 무엇이 잘 된 행위인지 명료하게 가르쳐주지 않아도 된다. 이렇게 된다면 스스로 행위하고 이를 반추할 수 있는 하나의 인격체에 가까운 로봇을 맞이하는 것도 미래엔 상상해 볼 수 있을 것이다.


탁구 로봇은 인간으로부터 단위모션(motion primitives)들을 배운 후 강화학습을 통해 상황에 따른 모션 배합을 스스로 터득하여 인간과의 탁구에 성공하였다.[7] 
딥강화학습의 발전은 특히 로봇 분야의 난제로 꼽히는 감정 로봇의 발전에도 큰 기여를 할 것으로 보인다. 그동안 감정 로봇은 시장성에 대한 큰 기대를 받음에도 불구하고 아직 실용화가 되지 못했는데, 그 이유 중 하나는 로봇이 인간과의 상호 교감을 통해 이해하고 배우는 것이 어렵다는 점에 있었다. 로봇은 인간의 표정과 행동을 보고 그의 기분을 유추해야 하며, 이러한 상황에 맞게 최적의 행동을 보여주어야 하며, 이에 대한 인간의 반응도 보상함수로 계산하여야 한다. 이러한 난제들의 해결의 실마리는 바로 딥강화학습 기술과 맞닿아있다. 비록 지금은 인간의 감정 상태를 시각적 정보를 통해 평가하는 것도 쉽지않고, 행위에 대한 인간의 반응을 보상 함수로 표현하는 것도 쉽지 않지만, 딥강화학습이 지속적으로 발전한다면 우리는 눈치 빠르고 싹싹한 감정 로봇을 미래에 볼 수 있을지도 모른다. 이렇게 된다면 감정로봇 역시 폭발적인 성장세를 이룰 것이다.

이 외에도 딥강화학습은 스스로 탐색하고 행위하며 개선해나가는 다양한 에이전트에 활용될 수 있다. 아직 시작일 뿐이다. 알파고는 세상에서 가장 복잡한 보드게임인 바둑에서 인간을 이겼을 뿐이다. 상태와 행위, 보상이 잘 정의된 바둑에 비해 현실은 이보다도 훨씬 모호하고 심오한 정보들을 품고있다. 지구 상의 원자의 수보다 많다는 바둑의 경우의 수 역시 연속된 시간 속에서의 다양한 현실 상황 연출에 비하면 그저 소꿉놀이에 불과할지도 모른다. 따라서 알파고가 현실의 인공지능으로 거듭나기까지는 아직도 많은 시간이 필요할 것으로 보인다. 하지만 알파고에서 인간을 능가할 수 있따는 가능성을 확인한 만큼, 이 기술이 적용될 분야의 복잡도를 단계적으로 높여가다 본다면 언젠간 우리가 꿈꾸는 인공지능 로봇의 출현도 머지않을 수 있음을 기대해본다. 그 중심엔 알파고를 통해 막 데뷔한 딥강화학습이 있을 것이다.

[1] LeCun, Yann, et al. "Gradient-based learning applied to document recognition." Proceedings of the IEEE 86.11 (1998): 2278-2324.
[2] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems. 2012.
[3] Szegedy, Christian, et al. "Going deeper with convolutions." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015.
[4] Mnih, Volodymyr, et al. "Playing atari with deep reinforcement learning." arXiv preprint arXiv:1312.5602 (2013).
[5] Silver, David, et al. "Mastering the game of Go with deep neural networks and tree search." Nature 529.7587 (2016): 484-489.
[6] Mnih, Volodymyr, et al. "Human-level control through deep reinforcement learning." Nature 518.7540 (2015): 529-533.
[7] Mülling, Katharina, et al. "Learning to select and generalize striking movements in robot table tennis." The International Journal of Robotics Research 32.3 (2013): 263-279.