(생각보다 artificial intelligence: modern approach 책에서 쓰는 용어와 설명하는 순서들이 시중의 다른 강화학습 교육 자료들과 차이가 꽤 큰 것 같다. 최대한 책에 맞추지만 애매한 내용들은 다른 강화학습 자료도 참고해 정리할 예정이다.)
Passive Reinforcement Learning
기본적으로 Passive 와 Active Reinforcement Learning 모두 model-free reinforcement learning 방식이다. 즉, 이전 posting에서 설명한 MDP에서 P(transition model)을 모르는 상태로 학습을 하는 것이다.
Passive RL : policy를 고정시켜 놓고 학습을 한다. 정해진 policy를 이용해 여러 시도를 하고 reward를 관찰하여 Utility function(Value function)을 예측한다. Utility function은 특정 상태 s에서 최종 state까지 갈 때 얻을 수 있는 reward의 합의 기댓값을 의미한다. 이 책에서는 Utility function으로 U로 표현하기도 하지만 대부분의 자료에서 Value function으로 V로 나타내는 것 같다.
Utility function(Value function)은 아래 식으로 표현이 가능하다.
\( V(s) = E[G_t | S_t = s ] \),
여기서 \( G_t \) 는 현재 시점 t에서 최종 시점까지 받게 될 모든 reward를 감가율 \( \gamma \)를 적용해 모두 더한 값이다. 즉, Utility function(Value fucntion)은 return \( G_t \)의 기댓값이 된다. 아래는 Utility function(Value fucntion)를 예측하기 위한 여러 방법들이다.
- Direct Utility estimation : 일종의 (state, reward-to-go)의 pair를 만들어 supervised로 학습을 시켜 각 state에서의 utility 값들을 직접 찾아내는 식이다. 즉, 한 episode가 끝나면 최종 reward를 이용해 학습을 한다. 하지만 trial이 끝나기 전까지 아무것도 배울 수 없기 때문에 converge가 느리다는 단점이 있다.
- Adaptive dynamic programming : 이전 state와 이전 action, 그리고 현재 state를 이용해 P (transition model) 와 R (Reward function) 을 학습하고 value iteration이나 policy iteration, policy evaluation을 통해 utility를 추정하여 update해가며 찾아낸다. time-step마다 학습이 가능해져 converge속도가 훨씬 빨라진다.
- Temporal-difference learning : 연속적인 state에서의 utility 값의 차이를 이용해 학습을 한다. 예를 들어, 첫 번째 trial이 끝난 뒤, state1의 utility 값이 0.5, state 2의 utility 값이 0.9로 예측했는데 state1에서 state2로 갈 때 utility 값이 0.2 증가 해야 한다는 것을 알면 state 1의 utility 값을 그에 맞게 조절하는 식이다. ( learning rate를 이용해 적당히 조절함 )
Active Reinforcement Learning
Active RL : passive learning 에서는 policy가 고정되어 있어 action이 정해져 있었지만 active learning 에서는 어떤 action을 선택할 지를 결정해가며 학습한다. passive leraning에서 utility function (value function)을 배웠다면 active learning에서는 Q-function(state-action function)을 배운다. Q-function은 utility function에 action의 개념까지 들어간 함수로 특정 state (s)와 특정 action (a)를 했을 때 이후 받게 될 reward의 총합의 기댓값을 나타낸다. 즉 Q-function을 배우면 특정 state에서 가장 reward의 기댓값이 높은 action을 찾을 수 있고 최적의 policy를 찾을 수 있게 되는 것이다.
Active RL에서 발생할 수 있는 문제점으로 expoloration과 exploitation의 trade-off가 있다. exploration은 가보지 않은, 즉 reward를 제대로 모르는 action을 취하는 것이고 exploitation은 short-term 관점에서 reward가 가장 큰 알고 있는 action을 취하는 것이다. trade-off를 잘 관리해주기 위해 exploration function을 만들고 시행 횟수가 적었던 action에 대해 가중치를 조절해 exploration과 exploitation을 조절한다.
위의 passive leraning에서 썼던 adaptive dynamic programming, temporal-difference learning 방식에 action 개념만 추가하면 똑같이 active RL에서도 적용된다.
BackGround
Bellman equation
벨만 방정식(Bellman Equation)은 강화 학습(Reinforcement Learning)에서 상태(state)와 행동(action)의 가치(value) 사이의 관계를 나타내는 기본적인 방정식이다. 벨만 방정식은 현재 상태의 가치를 해당 상태에서 가능한 모든 다음 상태의 가치와 연결하여 설명한다.
벨만 방정식은 크게 두 가지 형태로 나눌 수 있다: 벨만 기댓값 방정식(Bellman Expectation Equation), 벨만 최적 방정식(Bellman Optimality Equation)
- 벨만 기댓값 방정식(Bellman Expectation Equation):
- 벨만 기댓값 방정식은 주어진 정책(policy)에 따른 상태의 가치를 현재 상태에서의 즉각적인 보상과 다음 상태의 예상 가치의 합으로 나타낸다.
- 결정론적 정책에 대한 경우:
- \( V(s)=R(s)+\gamma \sum\limits_{s’ \in S} P(s’ | s,a)V(s’) \)
- 확률적 정책에 대한 경우:
- \( V(s)= \sum\limits_{\alpha \in A} \pi (a|s) \sum\limits_{s’ \in S} P(s’|s,a)(R(s,a,s’)+\gamma V(s’)) \)
- 벨만 최적성 방정식(Bellman Optimality Equation):
- 벨만 최적성 방정식은 최적 정책에 따른 상태의 최적 가치를 현재 상태에서의 즉각적인 최대 보상과 모든 가능한 행동에 대한 다음 상태의 최대 예상 가치의 합으로 나타낸다
- 결정론적 정책에 대한 경우:
- \( V*(s)=max_{a \in A} (R(s,a) + \gamma \sum\limits_{s’ \in S} P(s’|s,a)V*(s’)) \)
- 확률적 정책에 대한 경우:
- \( V*(s)=max_{a \in A} (\sum\limits_{s’ \in S} P(s’|s,a)(R(s,a,s’)+\gamma V*(s’)) \)
위의 방정식에서:
- V(s)는 value function(utility function)
- R(s)는 reward function
- P(s′∣s,a)는 transition model
- A는 action set
- \( \pi (a|s) \)는 정책(policy)에 따라 상태 s에서 행동 a를 취할 확률
- \( \gamma \) 는 미래 보상을 할인하는 요소인 할인율(discount factor)
- V*(s)는 최적 정책에 따른 상태 s의 최적 가치
이러한 방정식은 값 반복(value iteration), 정책 반복(policy iteration), Q-learning 및 여러 모델 기반(model-based) 및 모델 없이(model-free) 방법을 포함한 많은 강화 학습 알고리즘의 기초를 형성하고 최적 정책을 찾거나 주어진 정책 하에서의 가치 함수를 추정하기 위해 반복적으로 값을 업데이트하는 데 사용된다.
답글 남기기