---
description: 강화학습 요소 정리
---

# Introduction

인공지능. 범위를 조금 더 좁혀서 머신러닝 및 딥러닝을 다루는 사람이라면 강화학습에 대한 이야기를 한 번이라도 들어봤을 것이다. '보상을 최대화 하는 방향으로 움직이는 알고리즘!', '사람을 능가하는 성능을 보인 알파고가 강화학습이었지' 혹은 '자세히는 모르지만 진정한 인공지능은 강화학습인 것 같아' 정도의 느낌만 가져가도 강화학습이 일반적으로 다루어지는 지도학습(supervised learning)과 비지도학습(unsupervised learning)과 다르다는 것을 알 수 있다.

강화학습 공부를 시작하는 사람들은 보통 David Silver의 강의를 듣거나 그와 관련된 블로그를 활용하는 것 같다. 필자 또한 2018년 강화학습을 처음 접했을 때 Youtube에 올라온 Silver의 강의를 수강하였고 얼마 지나지 않아 강화학습은 내가 지금껏 해온 머신러닝, 딥러닝과는 다르다는 것을 느껴 금방 포기하였다. Markov process, Markov reward process, Markov decision process, Bellman equation을 공부하는 과정에서 강화학습의 본질을 놓치고 세부적인 내용에 매몰되어 흥미를 잃었던 적이 있다. 실제로 중요한건 그 이후의 내용이라는 것을 연구실 산학과제로 강화학습을 하게 되면서 깨달았다. 알면 좋지만 몰라도 크게 상관은 없는 느낌?&#x20;

강화학습은 한 문장으로 '정답이 주어지지 않은 상태에서 **최적의 행동을 스스로 탐색**하는 알고리즘'이라고  정리할 수 있다. 정답이 존재하지 않는다는 것, 최적의 행동을 스스로 찾아가는 것이 강화학습의 핵심이다. 여기서 최적의 행동을 찾아가는 '무언가'를 에이전트(agent)라고 부른다. 만약 자동차 운전자를 강화학습 알고리즘으로 대체하고자 한다면, agent는 주어진 도로 환경과의 상호작용을 통해 최적의 행동들을 탐색하게 된다. 자율주행 task에서 도로 환경(고속도로, 서울 시내 등)과 같이 agent가 움직일 수 있는 공간을 환경(environment)이라고 부르며 agent는 environment와의 끊임없는 상호작용을 통해 최적의 행동을 탐색한다.  Agent와 environment 간의 상호작용을 도식화 하면 Figure 01과 같다. &#x20;

![Figure 01: interaction between environment and agent](https://253289090-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M7q5D9rn1poAQk0kYFa%2F-MeZ8H-RvH3X1yNFirR1%2F-MeZ9DU4muRFOZ39Szol%2Fimage.png?alt=media\&token=d1c78b01-e8b0-4751-a78d-a5806beeb826)

머신러닝의 예를 들어 supervised learning에서 주로 사용되는 random forest, extreme gradient boosting (XGBoost) 모델들과 같이 강화학습에서도 다양한 알고리즘이 존재한다. 2013년 deep reinforcement learning의 포문을 연 deep q-network (DQN), 이를 개선한 prioritized experience replay (PER), dueling DQN 등 현재까지도 많은 알고리즘이 등장하고 있는데 이는 environment와 agent 중 agent에 해당된다. Environment로부터 보다 빠르고 정확하게 최적의 행동을 탐색하도록 발전해오고 있으며 풀고자하는 task에 맞게 적합한 알고리즘을 사용하면 된다.

RL-background에서 다루고자 하는 내용은 강화학습 기본 요소부터 Q-learning, DQN, PER, dueling DQN, policy gradient (PG), actor-critic, advantage actor-critic (A2C), asynchronous advantage actor-critic (A3C)이며 추가로 self imitation learning (SIL), random network distillation (RND)까지 다루고자 한다. 다음 장을 통해 강화학습의 기본 요소는 무엇이 있는지 알아보자.



> 패키지 없이 R로 구현하는 심층 강화학습 [\[yes24\]](http://www.yes24.com/Product/Goods/102416641) [\[교보문고\]](http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR\&mallGb=KOR\&barcode=9791165920746\&orderClick=LAG\&Kc=)

