지난 글에 이어서..

'게임'을 통해 인공지능을 테스트한다면, 점점 똑똑해지고 실력이 늘고 있는지를 게임 속의 '점수'를 통해 아주 편리하게 알아볼 수가 있습니다. 그리하여 딥마인드는 게임을 검증 플랫폼으로 사용하기 시작했죠.

이것은 End-to-End 학습 에이전트입니다. 이 말인즉슨, 화면에 보이는 픽셀값(특별히 전처리되지않은)이 입력되어 실행에 옮겨지는 것입니다. 즉, 인식에서부터 실행에 이르기까지의 전체 과정을 포함합니다.

Deep Reinforcement Learning
딥마인드의 최대 혁신인 "심화 강화 학습"(Deep reinforcement Learning)은 바로 인식하는데서 실행까지 가는 데에 있는 모든 과정, 그리고 이 모든 다양한 분야들을 모두 다루는 것입니다. 딥러닝을 통해 인지하는 절차를 밟고, 강화학습이 결정을 내려 실행에 옮깁니다. 즉, 딥러닝과 강화학습을 합침으로써 다양한 스케일의 문제에서 강화학습 알고리즘을 적용시킬 수 있게 해줍니다. 그리고 이를 일반화시켜서, 하나의 시스템으로 다른 모든 게임을 플레이 할 수 있도록 하고자 합니다.

아타리(Atari)는 세계 최초의 비디오 게임이다.(1972)아타리(Atari)는 세계 최초의 비디오 게임이다.(1972)
아타리(Atari)는 세계 최초의 비디오 게임이다.(1972)

그들이 처음으로 시도해본 대상은 80년대에 있었던 고전적인 게임인 아타리(Atari) 게임입니다. 에이전트에게 주어지는 정보는 전 처리되지 않은 픽셀값만이 유일합니다. 아타리 게임의 화면 크기는 가로200 * 세로150 픽셀크기이므로, 프레임당 3만개의 숫자가 입력됩니다. 에이전트의 목표는 단순히 '최고 점수를 내라!'는 명령입니다. 에이전트는 모든 것을 처음부터 스스로 배우기 시작합니다.

중요한 것은, '어떻게 조종하는지', '어떻게 점수를 내는지', '게임의 규칙이 무엇인지'에 대한 정보를 프로그래머가 전혀 주지않았습니다. 이 모든 것은 스스로 배워야 합니다. 심지어 인접해 있는 픽셀들이 시간에 따라 조금씩 변해진다는 것조차 모릅니다.

스페이스 인베이더
스페이스 인베이더

그들이 먼저 테스트해본 게임은 '스페이스 인베이더'입니다. 처음에 에이전트는 아무런 연습경험이 없습니다. 그래서 그냥 이것저것 막 눌러봅니다. 화면 아래에 있는 초록색 로케트를 막 조종하다보면, 아래에 있는 3개의 목숨이 닳아서 죽어버립니다. 이 에이전트는 자신이 뭘 하고 있는지, 무엇을 해야하는지를 아직 모르지만- 목숨이 닳으면 더이상 게임을 플레이할 수 없다는 것을 점차 깨닫기 시작합니다. 


에이전트가 게임을 밤새 20시간 정도 하도록 놔두고, 다음날 와서 보면, 이제 굉장한 실력의 플레이어가 되어있습니다. 총알을 발사할 때마다 모두 적을 섬멸합니다. 분홍색 우주선(고득점 이벤트)가 날아올 때 놀라울 만큼 정확하게 맞춰서 보너스를 획득합니다.


그리고 이 게임은, 적의 숫자가 적어질수록 적의 이동속도가 빨라집니다. 에이전트는 이 특성을 학습했기 때문에, 적이 어디쯤 올 것이라는 것을 예상하여 마지막 한발을 발사하고 명중시킵니다. 놀랍지요. 

보시는 바와 같이 게임을 하는 에이전트는 시간에 따른 정보의 변화를 완벽하게 모델링하고 마스터하였음을 알 수 있습니다.


두번째 게임은 '벽돌 깨기'입니다.

이 게임은, 바닥에 있는 판을 조종해서 상단에 있는 무지개색의 벽돌들을 하나씩 부수는 것입니다.

에이전트는 100게임을 하는 동안, 그다지 좋은 실력을 갖추지 못하고 번번히 공을 놓칩니다. 하지만 '공을 떨어뜨리면 게임이 끝나는구나!', '판을 공쪽으로 움직여서 받아내야 하는구나!'를 깨닫기 시작합니다. 이런 학습을 통해 에이전트의 실력은 조금씩 단계적으로 좋아집니다. 300판을 지나면 에이전트는 어려운 각도임에도 불구하고 거의 빠짐없이 공을 받아내고 있습니다. 보통 인간이 할수있는 수준을 살짝 넘어서고 있습니다.


'아주 잘하는군, 하지만 200게임을 더 하도록 놔두자'.. 하고 총 500게임을 플레이하도록 실험해보았습니다. 놀랍게도 에이전트는 벽돌의 가장자리에 구멍을 뚫어서 공을 윗층으로 올려 보내는 최적의 전략을 짜서 게임을 하기 시작했습니다. 상당히 놀라운 정확도였습니다. 이것이 에이전트가 짜낸 최상의 전략이었습니다.

한쪽 모서리에 구멍을 내어 공을 집어넣었다.
한쪽 모서리에 구멍을 내어 공을 집어넣었다.

사실 이 시스템을 만든 연구원이나 기술자들도 아타리 게임을 잘 모르고, 이런 전략을 전혀 생각해내지 못했었습니다. 거꾸로 이 에이전트 시스템으로부터 사람이 무언가를 배운 것이지요.  아타리 게임에 한해서는 '일반성'이 있는 인공지능을 만들어낸 것입니다. 차례대로 여러가지 다른 게임들입니다. 보시다시피, 하나의 에이전트가 이 모든 게임을 플레이하고 있습니다. 


Enduro


River Raid 


Battle zone, 해적과 싸우는 게임, 초창기의 3D게임 등, 이 모든 게임들은 각기 다른 규칙을 가지고 있는데, 이를 모두 마스터한 것입니다.


pong

이 초록색 바를 조종하는 탁구게임은 항상 20대 0으로 이깁니다. Seaquest (잠수함 게임) 외에 여러가지 다른 게임들도 그러합니다.


Boxing

이 복싱게임의 왼쪽에 있는 선수는 스파링을 하다가 구석으로 몰아넣고 끝업이 점수를 얻습니다(일명 꼼수) 이제 게임을 쉽게 이기는 전략까지 터득한 것입니다.


이것을 이를 DQN(Deep Q-Network)에이전트 라고 부릅니다.  

Comparison of the DQN agent with the best reinforcement learning methods in the literature.
Comparison of the DQN agent with the best reinforcement learning methods in the literature.


이처럼 에이전트가 기초자료만 가지고, 직접 시행착오를 겪으며 스스로 학습하여 게임을 마스터하고, '일반성'을 가진 것은 이번이 처음입니다. 이와 관련된 자료는 네이처 저널 표지 논문으로 실린 링크를 통해 더 깊이 확인하실 수 있습니다. 실행코드를 받아보실 수 있고, 직접 DQN을 활용해 보실 수 있습니다. 모두 네이처 웹사이트에 있습니다. (첨부파일)


Visualization of learned value functions on two games, Breakout and Pong
Visualization of learned value functions on two games, Breakout and Pong


그렇게 아타리와 2D게임에서 현재는 3D게임으로까지 발전했습니다. 이번에도 역시 전처리 되지 않은 순수한 픽셀값만을 가지고 경기장에서의 운전을 배우게 되었습니다. 에이전트는 200킬로 넘는 속도로 운전을 하고, 꽤 멋지게 추월하며 차를 조종합니다. 또한, 퀘이크 엔진을 이용해서 3D 미로 문제를 해결하는 장면입니다.(Mazes) 이 에이전트는 이 미로에서 사과같은 아이템을 찾을 때까지 달려갑니다. 미로가 어떻게 생겼었는지를 정확하게 기억하여 나가는 길을 찾습니다. 역시나 픽셀정보만을 가지고서 플레이하는 것입니다. 딥마인드에서는 더욱 복잡하고 정교한 3D 학습 환경을 만들고 있습니다. 이러한 결과는 올해 말 정도에 논문으로 개제될 예정입니다. 또한 현재는 로봇 시뮬레이터 작업도 하고 있습니다. 곧 실제 로봇 작업을 할 것입니다.


아시다시피, 요즘은 바둑(이세돌과의 대결)에 관심을 쏟고 있습니다. 이와 관련된 내용이 이어지는데 다음 포스팅에서 뵙겠습니다.

CPUU님의 창작활동을 응원하고 싶으세요?