MDP의 모든 요소(state, tansition probability, reward, discount factor, action)들을 다 알고 있을 때 dynamic programming을 사용하여 optimal value function과 policy를 구했었다.
MDP에서 transition matrix를 모르는 상태, 즉 Model free한 상황에서 agent가 value와 policy를 어떻게 학습시킬 수 있을까? 2가지 모델을 통해 그 방법을 자세히 알아보도록 하겠다.
1.Monte Carlo(MC)
1)Prediction
-MC prediction에서는 agent가 model free한 상황, 즉 transition probability를 모르는 상황에서 value function 값을 구하는 것을 목적으로 한다.
-과정
1)agent는 각 state마다 episode를 실행한다
2)각 episode별로 Return값을 저장을 한다.
3)지정된 횟수 만크 에피소드를 실행을 하면 Return을 평균을 한다.
=>즉 V(s) = average(G1, G2, G3 ...) 값이 된다.
-각 state에 새로운 return값이 주어지면 V(s)가 업데이트 되는데 이 때 기존의 평균을 구하는 방식(한번에 더해서 나누는 방식)이 아닌 incremental mean을 사용하게 된다.
-incremenral mean을 이용하여 V(s)를 업데이트하는 식을 유도하였다. 기존의V(s)값과 새로운 Gt값 그리고 인수의 개수만 주어지면 새로운 V(s)를 구할 수 있게된다.
-episode형식으로 학습을 진행하는 MC에서 agent는 특정 state를 중복해서 지나가는 경우가 있다. 이렇게 중복해서 state를 지나갈 때의 reward값을 어떻게 계산할 건지에 따라 First visit과 Every Visit으로 나눌 수 있다.
=>First Visit: 맨 처음 지나갈 때의 reward만을 고려
=>Every Visit: 모든 state의 reward를 고려
2)Control
-DP에서는action value function을 최대로 하는 action으로 policy를 업데이트를 하는 Greedy policy방식으로 control을 진행 하였다. 하지 Model이 free한 상황에서 학습이 충분히 이루어지지 않은 경우 greedy policy사용할 때 optimal한 값을 도출하기 어려워 질 수 있다. 예를 들면 agent가 action을 취해서 goal state로 진행하는 에피소드를 실행했다면 이 때받은 return으로 인해 해당 action이 optimal 하지 않더라고 그 방향으로 학습을 하게 된다.
-그래서 ε-greedy policy란 방식으로 MC control을 진행
=>ε이란 state에서 action을 랜덤하게 취할(exploration) 확률을 의미한다.
=>각 state별로 actio value function을 구하고 argmax함수로 action value function이 높은 action을 정하면 ε-greedy policy를 이용하여 policy를 업데이트 하게된다.
2. Temporal Difference
1)Prediction
-MC의 Prediction의 과정과 동일하다.
-'incremental mean'으로 유도된 식을 보면 V(s)가 특정 값으로 수렴하기 위해서는 빨강색의 식이 V(St)에 수렴을 해야한다.
따라서 빨간 글씨의 식이 TD target, 거기서 V(S)값을 뺀값을 TD error라고 정의한다.
2)Control
-우선 새롭게 등장하는 policy의 종류를 알아보도록 하자
=>Target policy: 학습의 대상이 되는 policy
=>Behavior policy: 실제로 Behavior을 하는 policy
-이 두개의 policy가 같은 경우 on policy, 다른 경우를 off policy라고 한다.
-SARSA(on policy)
=>아래의 식은 SARSA에서 action Value를 업데이트 하는 식이다. incremental mean을 이용하여 유도되었으며 현재의 state가 아닌 그 다음 state인 S'에서 A'를 취한 것까지가 고려가 되어 현재 state S에서의 action value function이 업데이트 된다.
=> 현재의 state S에서 action A를 취해 reward R을 저장하고 그 다음 state S'에서 A'를 취한 후 S의 action value가 update 된다 해서 과정의 initial을 따서 SARSA라는 명칭이 부여되었다.
=>action을 취할 때는 S와 S' 모두 ε-greedy policy따른다.
- Q Learning
=>Q learning에서도 S와 S'에서 ε-greedy policy를 취하지만 SARSA와 다른 점은 target policy가 greedy policy를 따른다는 점이다. 따라서 action value를 구하는 식에서도 Q(S',A')에 max를 씌운 것을 알 수 있다.
=>이렇게 ε-greedy policy와 greedy policy를 모두 사용하여 control을 하는 Q learning은 exploration을 하는 동시에 optimal한 다는 장점이 있다.
'3.5기(200104~) > 강화학습' 카테고리의 다른 글
강화학습 20.04.16 드론에이전트 & 학습환경 수정 (0) | 2020.04.17 |
---|---|
강화학습팀 20.04.11 DDPG (0) | 2020.04.11 |
강화학습 4주차 Actor-Critic 개념과 Agent 코드 (0) | 2020.03.28 |
3주차 강화학습 전반적인 개념정리 및 Project 드론 환경 분석 (0) | 2020.03.21 |
20.03.13 강화학습 1팀 스터티 / DQN agent 소개 (0) | 2020.03.16 |