[RL] Lecture 5: Model-Free Control
카테고리: RL
태그: RL
1. Introduction
이번 강의에서는 Model-Free control에 대해서 배운다.
MDP에 대한 정보를 모르는 상황(환경을 알지 못하는 상황)에서 던져진 Agent를 이용하여 어떻게 최적의 value function, Poilcy를 찾을 것인가?
1.1 Uses of Model-Free Control
몇 가지 예시 문제들은 MDPs 모델화 될 수 있다.
- Elevator, Robocup Soccer
- Helicopter, Robot Walking 등등
대부분의 이러한 문제들은
- MDP 모델을 모르지만, experience를 sampling 할 수 있다.
- MDP 모델을 알아도, sampling 외에 사용하기에 너무 크다
⇒ Model-free control은 이러한 문제들을 풀 수 있다.
1.2 On and Off-Policy Learning
- On-policy learning
- “Learn on the job”
- Learn about policy \(π\) from experience sampled from \(π\)
- optimize하고 싶은 policy(target policy) = behavior policy일 때 (experience를 하는 policy와 optimize 하는 policy가 같을 때)
- Off-policy learning
- “Look over someone’s shoulder”
- Learn about policy \(π\) from experience sampled from \(µ\)
- 다른 사람이 만드는 experience를 통해 policy optimize
2. On-Policy Monte-Carlo Control
2.1 Monte-Carlo Control
Policy Iteration의 원리
- policy evaluation과 policy improvement를 반복해서 수행하면서 점차 개선된 policy를 찾아내는 과정 ⇒ Control 문제를 푼다
- Policy evaluation : Policy 평가
- ex) Iterative policy evaluation
- Policy improvement : 평가된 Policy를 통해 개선된 Policy 생성
- ex) Greedy policy improvement
Model-Free 에서도 Model-based에서 사용한(Iterative, greedy)방식을 사용하면 되는 거 아닐까?
MDP를 모를 때 문제점 및 해결방안
-
Iterative policy evaluation을 적용할 수 없다.
-
Iterative policy evaluation은 Bellman Expectation Equation을 기반으로 Value를 계산해나가는 과정
-
하지만 Bellman Expectation Equation에는 MDP를 알아야만 알 수 있는 요소들이 존재하기 때문에 MDP를 알 수 없는 Model-Free 환경에서는 이 식을 그대로 적용할 수 없다.
- State s에서 Action a를 했을 때 받는 reward는 Agent가 경험해봐야 알 수 있음
- state transition도 Agent가 경험해봐야 알 수 있음, 경험을 하더라도 구체적인 확률 분포를 정의하지 못한다.
- Iterative policy evaluation ⇒ Monte-Carlo Policy evaluation으로 진행한다.
-
-
V를 기반으로는 Greedy Policy improvement을 할 수가 없다.
-
Greedy policy는 state-value function을 기반으로 가장 value가 높은 next-state에 도달하게 하는 action을 선택하는 방법으로 만들어진다.
-
그런데 model-free 환경에서는 state transition도 실제 경험을 해봐야 알 수 있고, 구체적인 확률 분포로 정의하지 못한다.
-
따라서 어떤 action을 했을 때 이동하는 state \(s'\) 에서의 value function값이 높은 곳을 선택하는 greedy policy를 정의할 수 없다.
-
- MDP Model을 알아야 state마다의 value function : V에 대한 greedy improvement를 할 수 있다.
- Policy Evaluation 단계에서 action에 대한 Q(s,a)를 학습했다고 하면, Q에 대한 greedy improvement는 가능하다.
Greedy policy improvement : 모든 State 들을 충분히 봐야 된다. 하지만 Greedy 하게 하면 exploration이 충분히 되지 않는다. (새로운 문제점)
Greedy policy improvement (문제점)
맨 처음 왼쪽 문을 열고 reward 0을 받음, 그 다음 오른쪽 문을 열고 reward 1을 받음
⇒ 다음 문을 선택할 때 Greedy 하게 생각하면 오른쪽을 열어야한다.
계속 그렇게 오른쪽 문만 여는 행동을 선택하는 것이 정말 최적의 행동을 선택을 한 것일까?
-
Exploration이 고려되어야하는 이유
model-based와 달리 model-free환경에서는 실제로 Agent가 action을 선택하고 state사이를 이동하면서 환경에 대한 정보를 배우게 된다.
그런데 학습의 초기 단계에서부터 greedy action만을 선택한다면 Agent가 다양한 state를 방문하지 못하고 이미 방문한 state만 계속 방문하게 될 수 있다.
\(ε\)-Greedy Exploration (해결책)
- \(1-ε\)의 확률로 greedy한 action 선택 (Exploitation)
- \(ε\)의 확률로 랜덤한 action 선택 (Exploration)
장점
- policy가 개선됨을 보장할 수 있다.
-
모든 action을 explor 한다는 것을 보장할 수 있다
Policy 개선에 대한 증명
한 episode가 끝나면 한 episode만큼의 경험을 가지고 policy를 개선할 수 있다.
Q로 시작을 시작했을때 optimally 하게 수렴을 하는가?
⇒ 이렇게 할 때 잘 수렴하기 위한 성질이 존재한다.
2.2 GLIE Property
- 모든 state-action pair들이 무한히 많이 explored 되어야 한다.
- \(ε\)-greedy이기 때문에 무한히 많은 state를 충분히 explore 가능
- 결국에 policy는 greedy policy로 수렴해야 한다. (exploitation)
- GLIE Monte-Carlo control은 optimal action-value function으로 수렴한다.
3. On-Policy Temporal-Difference Learning
Temporal-difference(TD) learning 은 Monte-Carlo(MC)에 비해 장점들이 있다.
- 낮은 분산
- Online (episode가 안끝나도 학습 가능)
- Incomplete sequences에도 적용가능
⇒ Control loop에서 MC대신에 TD를 넣을수 있지 않을까?
- Q(S,A)에 TD를 적용하고
- \(ε\)-greedy policy improvement를 사용하고
- 매 time-step마다 update를 한다.
3.1 SARSA
SARSA: state S에서 action A를 수행하여 reward R을 받고 next state S’에 도달한 뒤, 다시 action A’를 수행하는 과정
TD이기 때문에 episode가 안끝나도 바로 사용이 가능하다.
One-step action을 하고, reward를 받고 Q(S,A)자리를 update한다.
전 슬라이드는 Every episode 였는데 Every time-step으로 바뀌었다.
- Policy evaluation단계에서는 MC 대신 Sarsa로 Q를 evaluation
- Policy improvement단계에서는 \(ε\)-greedy policy improvement
3.2 SARSA Algorithm
- 초기에는 랜덤한 값들로 Q table을 초기화한다.
- Q에 대한 \(ϵ\)-greedy방법을 이용하여 state S에서의 action A를 고른다.
- action A를 Agent가 시행하고, 그 결과로 받게되는 reward R과 도달한 next-state S’에 대한 정보를 받는다.
- Q에 대한 \(ϵ\)-greedy방법을 이용하여 이동한 state \(S'\)에서의 action \(A'\)를 선택한다.
- next state-action pair에 대한 Q-value를 이용하여 current Q-value를 TD방법으로 업데이트한다.
- current state, action에 \(S'\), \(A'\)를 대입한다.
Sarsa 는 optimal action-value function에 수렴한다.
- GLIE 해야한다.
- 모든 State-action pair를 방문한다.
- 결국은 greey policy로 수렴한다.
- Robbins-Monro sequence
- \(α\)를 무한히 더하면 \(∞\) (α가 Q를 무한한 곳까지 데려갈 수 있도록 해야한다.)
- \(α^2\)의 합이 \(∞\)보다 작다. (Q value를 수정하는 것이 점점 작아져서 수렴하게 한다.)
⇒ 실질적으로 두 조건을 고려해야 하는 것은 아님 실제로는 잘 수렴하더라
3.3 n-step SARSA(𝝺)
- n만큼의 실제 reward와, t+n번째 step에서의 추정 value function의 합으로 표현한다.
- episode가 끝나야 적용이 가능한 Foward-view Sarsa(𝝺)
- TD(λ)에서 사용한 것처럼 SARSA도 eligibility traces를 적용할 수 있다.
- 단, SARSA는 Q-function에 대해 TD를 적용하므로 각각의 state-action pair에 대해 대응되는 하나의 eligibility trace를 가진다.
eligibility trace
- init : \(E_0(s,a)\)=0
- time-step \(t\)에서 어떤 state \(s\)에서 어떤 action \(a\)를 수행하면, 1을 더해주고 방문하지 않았을 때는 \(t\)−1에서의 값에다가 \(γ∈(0,1)\)를 곱해줘서 값을 감소시킨다.
원래는 한 state에서 action을 한 뒤 그 칸만 update해주었지만, Sarsa(𝝺)는 과거의 지나갔던 칸도 Eligibility traces 값이 존재하기 때문에 모든 state를 update계산량이 많아지지만 정보전파가 빠르다.
- one-step SARSA를 하면 도착하는 순간 reward를 받고, 이전 state만 update
- Sarsa(𝝺)는 오기까지 거쳤던 모든 경로들에 대해 Eligibility traces 값만큼 reward update
- 최근의 경로일 수록 많이 update된다.
4. Off-Policy Learning
4.1 Off-policy learning
off-policy 란?
target policy \(π\)를 따랐을 때의 Value를 계산하거나, policy를 개선하고 싶을 때 target과 다른 behavior policy \(µ\)를 따랐을 때의 경험적 정보를 활용하는 방법
- target policy \(π(a∣s)\) : compute \(v_π(s)\) or \(q_π(s,a)\)
- action을 sampling 하는 policy
- behavior policy \(μ(a∣s)\) : {\({S_1,A_1,R_2,⋯,S_T}\) } ~ \(μ\)
- 개선하고 싶은 policy
- off-policy의 장점
- 사람이나 다른 Agents를 관찰하면서 배울 수 있다.
- old policies 인 \(π_1\) , \(π_2\) … \(π_t\) 가 생성한 경험도 재사용 할 수 있다.
- exploratory policy를 따르면서 optimal policy를 학습할 수 있다.
- 하나의 policy를 따르면서 여러 policy를 학습할 수 있다.
4.2 Importance Sampling for off-policy
- Importance Sampling :
두 확률분포의 비율
만 곱해주면 어떤 확률 분포를 기반으로 구한 값에 대한 기댓값을 다른 확률 분포를 기반으로 구했을 때에 대한 기댓값으로 표현할 수 있다.
P를 따를 때의 f(X)의 기댓값 = Σ P(X) * f(X)
→ 분모,분자에 Q(X) 곱한다.
→ Q를 밖으로 빼낸다.
→ Q를 따를 때의 기대값 = {P(X) / Q(X)} * f(X)
⇒ P 확률 분포 기반의 기댓값을 Q 확률 분포 기반의 기대값으로 표현했다.
-
\(G_t\)를 얻을 때까지 수행한 각각의 action이 ‘선택될 확률의 비’를 계속 곱해준다.
-
그러나 MC는 전체 episode가 끝난 다음에 \(G_t\)를 받아 계산하기 때문에, 끝날 때까지 수행한 action의 수가 커지면 커질수록 \(G_t\)의 앞에 곱해지는 ratio가 너무 많아지기 때문에 실제로 이 방법을 써서 계산할 수 없다. (ratio들의 곱에 대한 variance가 너무 크다)
⇒ 1-step 후에 update가 가능한 TD는 어떨까?
TD의 경우에는 앞에 곱해지는 수가 훨씬 적기 때문에 Importance sampling을 이용하여 off-policy method로 학습할 수 있다.
4.3 Q-Learning
- Importance sampling을 안쓰고 action value Q(s,a)을 off-policy로 학습하고 싶다.
- Agent가 실행할 실제 next-action은 behavior policy를 따라 선택된다. \(A_{t+1}∼μ(⋅∣S_t)\)
- 그러나 Q-function을 update할 때는 target policy를 따라 선택된 action \(A'\)에 대하여 계산한다. \(A'∼π(⋅∣S_t)\)
- TD는 reward + 추측값의 차이를 이용하여 현재값을 update하는데, 추측값에서는 behavior policy를 따르지 않아도 상관없기 때문
- \(A_{t+1}\)이 아니라 \(A'\)을 가져와서 \(Q\)(\(S_t\), \(A_t\))를 Update ⇒ Off-policy
- Action은 behavior policy μ에서 선택을 하고, target policy π에서의 Q값을 update 한다.
4.4 Off-Policy Control with Q-Learning
-
behavior policy와 target policy 둘다 점차 improvement가 되지만, behavior policy는 여전히 exploration을 고려할 수 있도록 policy를 설정하고 싶다.
-
Target policy \(π\) : Greedy
- behavior policy \(μ\) : \(ε\)-Greedy
target policy를 이용하여 선택된 action \(A'\)를 greedy policy에 대한 수식으로 바꾸어서 표현할 수 있다. ⇒ Q-Learning에서의 TD target이 된다
Q-Learning Update 식 :
- max가 추가됐다.
- Sarsa max라고도 불린다.
댓글남기기