우리가 공부하고자 하는 강화학습(Reinforcement Learning)에 대해 알아보는 것으로 시작하겠습니다.
과연 강화학습은 무엇이고, 어떤 것을 강화학습이라고 부르며, 이것이 적용된 예는 어떤 것이 있는지 살펴보는 Chapter입니다.
Reinforcement Learning in ML
강화학습의 정의에 대해 살펴보기 전에, 강화학습이 속해있는 Machine learning에 대해 간단히 살펴보겠습니다.
< Fig1. Machine learning의 분류 >
ㆍ Supervised Learning : 지도학습은 Label이라는 정답 data를 알고 있어서 이로부터 즉각적인 feedback을 받으며 학습하는 것을 말합니다. 현재의 data들을 바탕으로 미래를 예측하거나, 정답이 있는 결과를 맞추는데에 목적이 있습니다. 대표적으로 분류(Classification)를 예로 들 수 있겠네요. K-NN, SVM, Decision Tree 등이 있습니다.
ㆍ Unsupervised Learning : 비지도학습은 정답에 해당되는 Label이 없습니다. 따라서 즉각적인 feedback을 받을 수 없습니다. 대표적으로는 Clustering과 같은 방법론들이 비지도학습에 해당합니다.
ㆍ Reinforcement Learning : 강화학습은 Label은 없지만 환경으로부터 주어진 reward를 통해 action을 학습합니다. 이와 같은 면에서 reward도 label로 보는 견해가 있으나, 환경과 상호작용을 한다는 측면에서 다릅니다.
그럼 강화학습에 대해서 더 자세히 알아보겠습니다.
Definition
강화 학습(Reinforcement learning)은 기계 학습의 한 영역이다. 행동심리학에서 영감을 받았으며, 어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택 가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를 선택하는 방법이다.
<KAIST 김종환 교수>
강화학습이란 잘한 행동에 대해 칭찬 받고 잘못한 행동에 대해 벌을 받은 경험을 통해 자신의 지식을 키워나가는 학습법이다. 로봇 (Robot) 이 여러 번의 실패와 성공경험을 쌓으며 주어진 작업을 잘 수행할 수 있도록 하는 것이다. 로봇은 어떤 상태에서 가능한 행동들 중의 하나를 선택, 이 행동 결과에 따른 포상 (reward) 을 받고 나서 다음 상태를 알게 된다.
<AI Topics : Reinforcement Learning>
강화학습은 수치로 표현되는 보상 (reward) 신호를 최대로 하기위해서 무엇을 해야할지 (어떻게 상황과 행동을 매핑 해야할지) 를 학습하는 것이다. 학습자는 대부분의 기계학습 (Machine Learning) 에서 처럼 어떤 행동을 취해야 할지를 직접 배우는 것이 아니라 어떤 행동을 해야 가장 좋은 보상이 주어지는 지를 발견해야 하는 것이다.
일관되게 출현하는 단어를 보자면 환경(상황 혹은 상태), 행동, 보상이 자주 등장합니다.
이 단어들과 위 정의를 함께 생각해보면 강화학습은 환경(environment)와 Agent 사이에서 상태, 행동, 보상을 interaction하며 학습하는 것이라고 개괄적으로 이해를 할 수 있겠습니다. 아래는 강화학습에 대해 나름대로 정리해본 그림입니다.
< Fig2. 강화학습의 Interaction >
즉, Environment(환경, 이하 Env.)이 Agent에게 특정 상황(state)을 주면(Agent가 관찰에 의해 이를 얻게 된다고 볼 수도 있습니다)
Agent는 그에 대해 반응(action)을 하고 Env.은 Agent에게 보상(reward)를 주게 됩니다. 이러한 과정으로 Agent는 Env.와 상호작용을 하며 reward를 많이 취할 수 있는 action들을 학습을 하는 것이고, 이를 강화학습이라고 부릅니다.
엄밀히 말씀드리자면, 강화학습의 목적은 reward를 최대화 하는 policy를 찾는 것인데, 이는 차차 다루도록 하겠습니다 :)
Wikipedia의 정의와 마찬가지로 강화학습은 행동심리학에 영향을 받았습니다. 그래서 사람이 무엇을 배우는 방식과 매우 유사하게 학습을 합니다. 우리는 어릴 때부터 자전거를 타고 운전을 하며 컴퓨터를 사용할 수 없었습니다. 우리가 할 줄 아는 모든 것은 방법을 알고 이것이 익숙해지는 학습의 과정들이 있었습니다. 강화학습도 마찬가지로 1) Trial and Error, 2) Delayed Rewoard라는 두 가지 특성을 갖습니다.
Properties of RL
1. Trial and Error
2. Delayed Reward
Example
1. Atari 'Breakout'
<Video 1. Atari 'Breakout' Agent with DRL>
2. Super Mario
<Video 2. SuperMario Agent with DRL>
다음은 모두가 잘 아시는 슈퍼마리오입니다. 어릴 적 많이 했었는데 이 게임에서도 강화학습을 통해 agent가 게임을 수행합니다.
(주)카카오의 송호연님께서 이를 구현하실 수 있게 도움을 주셨습니다. 시간내서 한번 구현해보고 싶네요.
마치며
Sutton 교수님 책에서 아래와 같은 문장이 있습니다.
Reinforcement learning is defined not by characterizing learning methods, but by characterizing a learning problem.
강화학습은 학습을 하는 '방식'이 아닌, 어떻게 강화학습 '문제'인가로 정의됩니다.
미리 말씀드리자면, 강화학습은 MDP(Markov Decision Process)로 표현되는 문제를 푸는 것이라고 할 수 있습니다.
다음 포스팅은 강화학습을 다루며 나온 용어들(State, Action, Policy ...)의 개념과 강화학습이 정의되는 MDP에 대해 살펴보겠습니다.
오탈자나 잘못 언급된 부분이 있으면 댓글로 지적해 주세요 :)
Reference
[1] https://dnddnjs.gitbooks.io/rl/content/reinforcement_learning.html
[2] https://ko.wikipedia.org/wiki/%EA%B0%95%ED%99%94_%ED%95%99%EC%8A%B5
[3] http://www.aistudy.com/learning/reinforcement_learning.htm
'RL > Contents' 카테고리의 다른 글
[Ch.6] Temporal Difference Methods (9) | 2018.01.18 |
---|---|
[Ch.5] Monte-Calro Methods (23) | 2018.01.01 |
[Ch.4] Dynamic Programming (16) | 2017.12.28 |
[Ch.3] Bellman Equation (11) | 2017.12.24 |
[Ch.2] Markov Decision Process (11) | 2017.12.16 |