Reinforcement Learning
신경망과 같은 학습 알고리즘에 대해서 이미 경험이 있다면 강화 학습은 새로운 방식의 학습 알고리즘이다. 신경망은 입력과 출력의 패턴을 명시적으로 쌍으로 입력되어 지는 식으로 학습되는 지도 학습(supervised learning)이며, 강화 학습은 입력에 대한 출력의 패턴을 명시적으로 주어지는 식의 학습이 아닌 입력에 대한 다소 추상적으로 보상(reward)이라는 형태로 주어진다. 바꿔 말하면, 강화 학습은 입력과 출력의 패턴을 명시적으로 주기 힘든 경우의 학습 방법으로 사용되기도 한다. 예로 로봇 등이 있다.
강화학습은 자신과 환경과의 상호관계와 이에 따른 강화신호를 통하여 자신의 행동을 개선해 나가는 방법으로서 환경에 대한 정확한 사전 지식이 없이 학습 및 적응성을 보장 하기 때문에 로봇의 학습에 유용하다. 그러나 강화학습법의 가장 큰 문제는 취한 행동에 대한 보상이 즉각적으로 계산되지 않을 경우 학습이 어려운 점이다. .... (심귀보, aistudy.com 발췌)
강화 학습의 모델
강화학습은 MDP (Markov Decision Process) 의 모델과 유사하다. 알고리즘이 처해있는 환경이 비슷하다.
- 환경에는 우선 상태 (S) 라는 것들이 정의됨
- 상태에서의 가능한 액션들 (A)
- 상태들간의 전이(transition) 규칙
- 상태 전이에 따른 보상(reward)
간단히 말해, 이와 같이 구성된 환경에서 강화 학습의 목표는 보상을 가장 많이 받을 수 있도록 하는 액션들을 행할 수 있도록 에이전트를 학습시키고자 할 때 필요한 알고리즘이다.
강화 학습의 특징
- 지연된 보상(Delayed reward) : 강화 학습에서는, 위에서도 잠깐 언급하였듯이 보상이 바로 주어지진 않는다. 쉽게 말해, 액션에 대한 바로 보상이 되지 않고, 어떤 목적 상태에 도달했을 경우에만 보상이 주어진다. 그 때까지는 어떤 일련의 행동들이 필요한 것이다. 따라서 액션 하나 하나에 대한 즉각적인 보상이 되는 형태는 아닌 것이다.
- 탐색(Exploration) : 학습이 되지 않은 초기 상태에서 목표 상태에 까지 도달하기 위해서는 수개에서 수십개의 상태들을 거쳐야 한다. 처음 시스템 계에서는 목표 상태에 이루는 방법을 모르기 때문에, 상태 전이를 위한 탐색 방법 그 자체가 중요하다. 탐색은 강화 학습에 소요되는 시간을 결정짓는다. 간단하게는 랜덤 액션을 취할 수 있지만 물론 성능 면에서는 최악일 것이다.
- 부분적으로 관찰 가능한 상태 정도(Partially observable states) : 환경에 대한 전체 정보를 알 수 없다.
Q-learning
강화 학습에 사용되는 대표적인 알고리즘이 Q-learning이다. Q(s,a)는 상태 s에서의 액션 a를 행할 때의 기대 보상(expected reward)값을 나타낸다. Q(s,a)들의 처음 값들은 모든 상태와 액션들에 대하여 0이겠지만, 탐색 과정에서 목표 상태에 도달으면 보상이 주어지게 되고, 그것들이 점차적으로 역전파(discounting) 되면서 학습되는 방식이다. 학습이 완료되면, 주어진 상태 s에서 Q(s, a)가 최대인 액션을 선택하면 되는 것이다.
Q (s , a = r s , a max_{a'} (Q s', a' r s, a = 상태 s에서의 액션 a에 대한 보상, 없으면 0일 수 있음. = relative value of delayed (MDP (Markov Decision Process)의 discount 개념 유사) s' = 액션 a에 의한 다음(전이된) 상태 a = 상태 s에서의 액션 a' = 상태 s'에서의 액션
| Q-learning definition |
Q-learning의 (상태, 액션)에 대한 lookup table로 표현된다는 방식과 모든 가능한 state-action pair가 방문 되어야 한다는 접근은 실제 적용면에서 비현실적이다. (무한 공간이나, action의 수행 비용이 큰 로봇 학습의 경우) 따라서 다른 방법과의 통합이 필요하다. Lookup table 대신 신경망을 사용하여 Q learning algorithm과 통합되어 사용되기도 한다.
참고
- aistudy에서의 강화 학습
- http://en.wikipedia.org/wiki/Reinforcement_learning
- http://www.acm.uiuc.edu/sigart/docs/QLearning.pdf
- http://cs.sungshin.ac.kr/~jwlee/ml/ML13.ppt
- http://www.applied-mathematics.net/qlearning/qlearning.html
- 강화학습 기반의 자율적인 행동 학습 (프로그램 수준 설명)
Recent Comments