한국어
    • 한국어
    • ENGLISH
    • 日本語
    • 中文-繁體

    2017.08.10 AI

    게임과 AI #1. 심층강화학습과 AI

    엔씨소프트는 대한민국 게임회사 최초로 AI Lab을 구축, 게임 AI에 대한 R&D 연구를 선도해 왔습니다. 미래의 핵심 경쟁력으로 꼽히는 AI에 대한 연구를 체계적으로 수행하여 게임 산업에 긍정적 시너지를 내기 위해 노력하고 있는데요.

    엔씨소프트가 게임 AI에 대해 지금껏 연구해 온 정보를 공유하고 환기시키고자 새로운 연재 ‘게임과 AI’를 시작합니다. 또한 게임 AI에 이어서 Speech, Knowledge, Computer Vision, Language 등 엔씨소프트 AI 센터 내 각 분야 전문 연구진들이 AI에 대한 흥미로운 이야기를 들려드릴 예정입니다.

    그 첫 번째로 소개할 내용은 '심층강화학습과 AI'에 대한 이야기입니다.


    “인간이 진 것이 아니라 이세돌이 진 경기다.”

    알파고의 충격이 있었던 지난 해, 이세돌 9단이 인터뷰에서 한 이야기입니다. 그러나 오늘 이 시점에는 이세돌 9단이 거둔 1승이, 사람이 바둑으로 거둔 유일한 승리가 되어버렸습니다.

    다가올 미래는 인공지능의 시대입니다. 벌써 인공지능이 사람보다 잘하는 영역이 하나둘씩 계속 등장하고 있습니다.

    알파고가 대중들에게는 인공지능에 대한 호기심과 충격을 심어줬다면, 머신러닝(Machine Learning) 관점에서 보면 강화학습(Reinforcement Learning)을 현실 세계에 등장시킨 사건이었습니다. 정말 충격적인 데뷔였습니다.

    강화학습이란, 알려지지 않은 환경에서 액션(Action)을 수행하는 경험을 반복하며 얻는 보상(Reward)을 통해 학습해 나가는 방법입니다.

    AI가 직접 시행착오(Trial-and-Error)를 반복하면서 자신이 한 행동에 대해 평가 받고, 점점 자신의 성능을 향상시켜 나가는 방식이지요.

    강화학습에 의해 팬케이크 뒤집는 일을 학습하는 로봇

    이번 기회에 심층강화학습(Deep Reinforcement Learning)에 대해서 같이 살펴볼 필요가 있다고 생각합니다.

    심층강화학습은 강화학습(Reinforcement Learning)에 딥러닝(Deep Learning)을 적용한 기술을 일컫는 것으로, 2013년부터 본격적으로 소개되었고 알파고에도 핵심 기술로 적용됐습니다.

    심층강화학습이란?

    우선, 심층강화학습이란 무엇인지 알아보겠습니다.

    먼저 2013년에 발표된 논문 “Playing Atari with Deep Reinforcement Learning”의 Deep Q-Learning 을 기준으로 설명해보겠습니다.

    이 논문은 사람이 게임을 하는 방식과 같이, 게임 화면의 Raw Image를 보여주고 스스로 경험을 통해 학습하게 하는 기술을 소개하였습니다.

    아타리(Atari) 중 Breakout을 학습하는 영상

    물론 심층신경망(Deep Neural Network)을 어떻게 활용하는지는 논문에 따라 다르지만 여기에서는, 한마디로 표현하자면 ‘Q-Value Approximation에 심층신경망(Deep Neural Network)을 사용한 것’이라고 할 수 있습니다. (※ Q Value: 특정 상태에서 액션을 수행했을 때 기대되는 보상의 총합)

    강화학습 AI는 현재 상태에서 앞으로 얻을 수 있는 보상(Reward)이 얼마인지 알고 있고, 앞으로 얻을 수 있을 것으로 기대되는 보상(Reward)이 가장 높은 액션(Action)을 선택합니다.

    가장 간단한 형태로는 아래와 같은 테이블처럼 만들고 업데이트 해나가면 됩니다. 그러나 이런 형태는 당연히 State가 너무나 방대하고 테이블이 너무 커지기 때문에, 이렇게 AI를 만드는 것은 사실상 불가능합니다.

    Tabular Representation

    대신 상태(State)와 액션(Action)을 입력해주면 기대 보상(Reward)을 Return해주는 함수를 학습을 통해 만들면 됩니다. 즉 이런 함수를 신경망(Neural Network)을 사용해서 만들어주는 것입니다.

    Q Value를 회귀(Regression)하는 네트워크를 만드는 것이죠. 당연히 신경망(Neural Network)에 사용되는 입력 데이터(Feature)를 정교하게 직접 선별해야 하겠죠.

    NFQ, Neural Fitted Q Learning

    이 논문에서는 여기에 더 나아가서, 심층신경망(Deep Neural Network 또는 CNN, Convolutional Neural Network)을 활용해 게임 화면을 그대로 Raw Video Input으로 입력 받아 사용해서 Handcrafted-Feature를 선별하는 과정 없이 학습을 할 수 있도록 한 것이 Deep Q Learning입니다.

    강화학습에 대해서 간단하게 설명을 드렸는데, 자세한 건 여러 자료들을 참고해서 공부해보시면 좋을 것 같습니다. (UC Berkeley 강의 자료: http://rll.berkeley.edu/deeprlcourse)

    Deep Q Learning

    사실 이 논문이 나왔을 때 Game AI를 이런 형태로 만들 생각을 한 것을 보고, 개인적으로 꽤 충격을 받았던 기억이 납니다. 그리고 여기서 그치지 않고 아타리(Atari) 기반 심층강화학습 기술들이 계속 발표됩니다.

    심층강화학습의 발전

    최근에는 DQN에서 더 발전하여 A3C(Asynchronous Advantage Actor-Critic) 알고리즘들이 좋은 성능을 보여주고 있습니다.

    A3C 알고리즘은 Replay Memory를 없애는 대신 여러 에이전트(Agent)를 비동기식(Asynchronous)으로 동시에 학습되게 함으로써 학습 성능을 높인 것으로, 최근에 대다수의 논문에서 사용되고 있습니다.

    이렇듯 지속적인 발전을 통해서 아타리(Atari) 게임 중에서는 이미 사람보다 잘하는 게임이 아주 많습니다. 아래 표는 2015년 자료인데, 이미 사람보다도 더 잘하는 게임이 많음을 보여주고 있습니다.

    Mnih., 2015, Human-level Control Through Deep Reinforcement Learning

    그런데 표 가장 아래에 라는 게임을 한번 주목해서 봐주세요. 0%라는 건 전혀 학습이 안 된다는 의미입니다.

    아래 게임 영상을 학습이 비교적 잘 되는 Breakout과 비교해서 보면, 복잡도 면에서 차원이 다른 게임이라는 것을 알 수 있습니다. ^^

    물론 최근에는 A3C와 Hierarchical Reinforcement Learning 등을 활용해서 문제가 어느 정도 풀리기 시작했습니다만, 아직 더 많은 노력이 필요한 단계입니다.

    게임 영상

    그렇다면 최근 상용 게임과 한 번 비교해볼까요? 엔씨소프트의 대표 게임 중 하나인 <블레이드 & 소울>의 게임 영상입니다.

    <블레이드 & 소울> 게임 영상

    와 같은 게임에서 성과가 나타나고 있기는 하지만 여전히 상용 게임과는 꽤 큰 격차가 있습니다.

    <블레이드 & 소울>만 해도 캐릭터가 사용할 수 있는 스킬이 50여 개가 넘습니다. 또한 게임 규칙도 상당히 복잡합니다.

    여러 스킬들을 동시에 실행할 수 있으며, 스킬을 사용했다가 취소가 가능하다는 점, 스킬을 사용하는 도중에도 다른 스킬을 사용할 수 있다는 점 등 표면적으로 보이는 것보다 AI에게 주어지는 경우의 수가 정말 엄청납니다.

    사실 그래서 이런 상용 수준 게임의 AI를 만들어보고자 하는 시도가 꽤나 어려운 도전인 것도 사실입니다.

    엔씨가 강화학습을 연구하는 이유

    그렇다면, 왜 강화학습 기술을 연구하는 것일까요? 사실 저희가 다른 연구자들의 속마음을 알 수 없으니 다른 사람들의 목표와 비전보다는, 일단 저희 엔씨소프트 이야기부터 해보는 게 좋을 것 같습니다.

    엔씨소프트 Game AI팀은 게임에 필요한 AI 문제를 폭넓게 다루는 팀입니다. 구체적으로 보면 크게 두 가지 일을 하고 있는데요.

    첫 번째는 의사 결정(Decision Making) 기술을 연구하여 게임 내 필요한 AI를 만드는 일입니다.

    두 번째는 게임 기획 및 아트, 애니메이션 제작 등 게임 개발 과정을 자동화하여 사람을 도와줄 수 있는 Assistant AI를 만들어 보려 하고 있습니다.

    AI 기술을 적용한 <블레이드 & 소울>의 무한의 탑

    이런 상황에서 강화학습에 관심을 갖는 가장 직접적인 이유는, 데이터가 없는 상황에서도 게임에 필요한 AI를 만들 수 있는 기술이기 때문입니다.

    최근 딥러닝(Deep Learning)와 빅데이터(Big Data)의 결합이 인공지능의 발전을 가져왔고, 데이터를 구하는 비용은 점차 높아지고 있으며, 데이터가 없으면 AI를 만들기가 어렵습니다.

    사실, 엔씨소프트는 게임 서비스를 통해 엄청나게 많은 데이터가 쌓여 있는 곳이긴 합니다만, 데이터가 없는 새로운 게임을 위해서는 AI를 만들 수가 없는 것일까요?

    엔씨소프트는 앞으로도 재미있는 게임들을 계속 선보일 예정이고, 이런 경우에 강화학습 기술이 훌륭한 솔루션이 될 수 있다고 보고 있습니다.

    데이터 없이도 스스로 학습하는 AI가 필요합니다

    더 나아가서 강화학습을 포함한 의사 결정(Decision Making) 기술은 앞으로 지능형 에이전트(Intelligent Agent)를 만드는 데 핵심적인 기술이 될 것이라고 믿고 있습니다.

    가깝게는 게임 속의 NPC들, 멀게는 로봇이나 드론, 각종 기능과 서비스에 필요한 여러 종류의 에이전트(Agent)에 관한 핵심 기술은 현재 상황에서 최선의 선택을 해줄 수 있는 의사 결정(Decision Making) 기술이라고 생각합니다.

    물론 저희도 강화학습만 다루는 것은 아니고, 지도 학습(Supervised Learning)을 포함하여 의사결정(Decision Making) 기술 전반에 걸쳐 두루 연구하고 있습니다.

    그래서 <블레이드 & 소울>을 중심으로 여러 게임에서 AI를 만들어가며 의사 결정(Decision Making) 기술을 쌓아가고 있습니다. 아직 갈 길이 멀다는 것은 알지만 한 걸음씩 나아가다 보면 더욱 멋진 AI를 만들어서 공개하는 날이 올 것이라고 믿고 있습니다.

    다음 연재에서는 저희가 실험하고 있는 <블레이드 & 소울> AI의 구조와 신경망(Neural Network) 설계, 학습 알고리즘 등에 대한 이야기를 들려드리겠습니다.


    이경종

    AI Center Game AI Lab 실장.
    AI 만드는 일을 정말 좋아하는
    대한민국의 평범한 엔지니어입니다.

    AI Center Game AI Lab 실장.
    AI 만드는 일을 정말 좋아하는
    대한민국의 평범한 엔지니어입니다.