본문 바로가기
STEM - 학술세미나/컴퓨터공학

DeepMind 논문으로 보는 강화학습의 기초

by STEMSNU 2023. 9. 1.

안녕하세요, 저는 현재 인공지능 관련 연구를 진행하고 있는 대학원생 공우 13.5기 김용호입니다. 저는 이번에 딥마인드라는 회사에서 2013년에 발행한 “Playing Atari with Deep Reinforcement Learning”이라는 논문을 바탕으로 강화학습의 기초적인 내용들을 설명해드리려고 합니다. 딥마인드라는 회사는 여러분도 전에 한 번쯤 들어보셨을 텐데요, 그 유명한 알파고를 만든 회사가 바로 딥마인드입니다. 이번에 소개해드릴 논문은 본격적인 강화학습 연구의 시발점이 된 논문이라고도 할 수 있는데요, 딥마인드는 이 논문을 만들고 구글에 인수되어 알파고를 훗날 만들게 되었죠.

Introduction

우선 논문 제목부터 살펴보도록 하겠습니다. 논문 제목은 번역을 하자면 “강화학습을 통해 아타리 게임을 플레이하기” 정도로 표현을 할 수 있는데, 여기서 말하는 아타리는 무엇을 의미하는걸까요? Atari는 70~80년대 게임 시장을 풍미했던 게임 회사인데, 당시에는 Atari 2600이라 불리던 게임기가 한창 유행이었습니다. 저희가 흔히 닌텐도 게임기를 편의상 닌텐도라고 부르는 것처럼, 논문에서 말하는 Atari는 이 Atari 2600 게임 콘솔을 의미합니다. 이 논문의 연구 목표는 이 Atari 2600 게임기에 있는 여러 게임들을 게임 화면만 보고도 학습할 수 있는 범용적인 인공지능 모델을 개발하는 것입니다. 여기서 중요한 포인트는 게임 화면만 보고, 여러 가지 게임들을, 동일한 구조를 가지는 한 가지 인공지능 모델로 학습하겠다는 것이죠. 이런 인공지능 모델을 만들 수만 있다면 게임에 상관없이, 특별한 추가 정보를 줄 필요도 없이 동일한 방법을 활용해 게임을 플레이하는 인공지능을 만들 수 있다는 뜻이라 더 의미가 있습니다.

Image credit: Wikipedia

 

Background

Image credit: https://jamiekang.github.io/2017/05/07/playing-atari-with-deep-reinforcement-learning/

본격적으로 논문 분석에 들어가기 전에, 강화학습을 잘 모르시는 분들을 위해 강화학습의 기본적인 개념들을 잠시 설명해드리려고 합니다. 우선 강화학습의 가장 기본적인 개념이 바로 에이전트와 환경의 상호 작용입니다. 여기서 에이전트는 사람이나 인공지능과 같이 어떤 행동을 하는 주체를 의미하고, 환경은 말 그대로 에이전트에 그런 행동들에 대한 피드백을 주는 환경을 의미합니다. 이번 연구를 예시로 들자면 에이전트는 게임을 조작하는 인공지능이고, 환경은 게임 환경, 게임 그 자체라고 할 수 있겠습니다. 에이전트는 본인이 지정하는 행동을 통해 환경에 영향을 주고, 환경은 그러한 행동에 대한 피드백을 다시 에이전트에게 주게 됩니다. 이러한 피드백은 크게 보상과 관측으로 나눌 수 있는데요, 보상은 에이전트의 행동에 대한 보상이고, 관측은 행동에 의해 환경이 어떻게 바뀌었는지 에이전트가 이해할 수 있는 형태로 전달하는 것이라고 볼 수 있겠습니다. 에이전트는 이러한 관측을 통해 본인의 상태를 바꾸고 이에 따라 다시 환경에 특정 행동을 하게 됩니다. 그리고 이러한 과정이 계속 반복되는 거죠. 이 사애는 단순히 게임 화면과 같이 관측과 비슷한 것이 될 수도 있고, 아니면 에이전트가 내부적으로 좀 더 복잡한 계산을 거쳐 적당한 본인의 상태를 정의할 수도 있습니다. 일단 이번 연구에서는 상태는 그냥 그 순간의 게임 화면이라고 생각하시면 될 것 같습니다.

 

인공지능이 본인의 행동을 결정하는 방법

여기서 에이전트, 즉 인공지능의 가장 핵심적인 부분이라면 주어진 환경에서 어떻게 행동하는지 결정하는 부분일텐데요, 이 논문에서는 Q-learning이라는 방법을 사용하게 됩니다. 우선 Q-learning은 여기서 소개드릴 action-value 함수를 찾아가는 과정인데요, 이 함수는 에이전트의 상태와 행동이 주어졌을 때 그 에이전트가 앞으로 얻게 될 보상의 총합이라고 생각하면 됩니다. 그래서 간단히 생각하면 내가 지금 이 action을 취했을 때, 내가 앞으로 얻을 수 있는 보상이 얼마나 되는지 알려주는 게 이 action-value 함수 Q(s, a)이고, 만약 이 함수를 알 수 있다고 하면 이를 통해 내가 지금 당장 어떤 행동을 취하는 게 가장 좋은지 알 수 있겠죠.

이를 수식으로 표현하면 다음과 같습니다:

에이전트의 상태 s와 행동 a, 행동을 정하는 정책 pi, 그리고 그에 대한 보상 R에 대한 (이상적인) action-value 함수 Q*(s,a)는 위 수식과 같이 표현됩니다. 어떤 상태에서 어떤 행동을 했을 때 앞으로 얻을 수 있다는 보상을 완벽하게 알고 있다고 가정하면 위와 같은 이상적인 action-value 함수를 얻을 수 있게 되는데요, 다만 여기서 문제점은 이를 알기 쉽지 않다는 것이죠. 저희는 전지전능한 존재가 아니기 때문에 모든 상황에서 모든 행동이 초래할 결과를 미리 알고 있을 수는 없는데, 이를 어떻게 알아내거나 최소한 근사라도 할 수 있을까요? 이를 위해 저희는 머신러닝과 점진적 개선 (iterative update)를 활용하게 됩니다. 저희가 지금까지의 지식을 바탕으로 알고 있는 action-value 함수의 근삿값과 경험을 통해 얻어낸 데이터를 통해 이 action-value 함수의 근삿값을 좀 더 올바른 근삿값으로 점차 개선시켜 나가는 것이죠.

이를 수식으로 나타내면 다음과 같습니다:

이전 단계의 상태와 행동 s, a, 그리고 그 다음 단계의 상태와 행동 s’, a’, 그리고 그로 인해 발생한 실제 보상 r을 이용하면 원래 알고 있던 action-value 함수를 좀 더 올바른 함수로 바꿀 수 있게 됩니다. 이 부분이 이 논문에서 사용하는 강화학습 알고리즘인 Q-learning의 핵심이라고 할 수 있겠습니다. 여기서 주어진 상태 s와 행동 a로부터 action-value 함수를 계산하는 구체적인 방법은 간단한 딥러닝 모델을 활용해서 하게 되는데, 이에 대한 구체적인 설명은 여기서는 생략하도록 하겠습니다. 간단하게는 s와 a를 입력으로 받아 보상 r을 출력하는 모델을 활용한다고 생각하시면 될 것 같습니다.

 

인공지능의 성능은?

그 결과 위 표와 같이 기존의 인공지능 모델의 성능, 그리고 많은 게임들에서는 사람의 능력조차 상회하는 인공지능 모델을 개발할 수 있었습니다. 여기서 DQN이라고 되어 있는 행이 이 논문에서 개발한 모델이 게임을 플레이해 얻은 점수, Human은 사람이 플레이해 얻은 점수, 그리고 나머지 행들은 다른 인공지능 모델들이 게임을 플레이해 얻은 점수라 보시면 되겠습니다. 결과를 보시면 상대적으로 간단한 게임들에서는 사람보다도 뛰어난 성능을 보여준 반면, 상대적으로 더 복잡한 게임들에서는 사람보다는 미치지 못하는 성능을 보여주었다는 사실을 알 수 있습니다. 하지만 2013년 당시를 생각해 보면 매우 고무적인 결과라고 볼 수 있겠네요.

 

마치며

여기까지 딥마인드에서 2013년에 발행한 “Playing Atari with Deep Reinforcement Learning”이라는 논문의 (매우) 간단한 요약과 관련된 강화학습 기초 개념들에 대한 설명을 마치도록 하겠습니다. 편의상 중간에 생략을 하거나 건너뛴 내용들도 굉장히 많이 있는데, 혹시 더 궁금하신 분들은 무료로 공개되어 논문을 직접 찾아보시거나, 논문을 좀 더 자세히 설명한 유튜브 동영상을 찾아보시기 바랍니다. 논문 제목만 유튜브에 검색해도 좋은 동영상이 많이 나오기 때문에 저도 공부하는데 많은 도움이 되었던 것 같네요.

 

여기까지 긴 글 읽어주셔서 감사합니다!

댓글