26 Mar 2018
|
ml
rl
Actor-critic
DQN
Deep SARSA -> DQN
deep sarsa에서 DQN으로 넘어갈 때 추가된 것들을 정리…
- Experience replay
- target-network
Experience replay memory

s,a,r,s'
를 저장해놓고, 학습 시 임의로 셔플링해서 쓰는 방식
- 이걸 쓰지 않으면 한 시나리오에 대해서 많은 학습 데이터가 들어오는데, 문제가 생김
- ex> 마리오 게임 2탄을 깨는 것을 학습하다가 1탄 깨는 것을 까먹음…
- iid한 data를 얻기위해…
- Deep sarsa는 on-policy니까 못쓰겠지…?
target-network
- DQN 수식
-
Q(St,At)←Q(St,At)+α(Rt+1+γ⋅maxa′Q(St+1,a′)−Q(St,At))
- Q(S,A)가 network로부터 나옴
- 정답이 계속 변하면 부트스트랩 문제가 더 심해짐
- target-network를 똑같이 만들어서 일정기간 유지시키자!
Actor-critic
- θt+1=θt+α⋅[∇θlogπθ(a|s)⋅qπ(s,a)]
- PG review
- 위에서 qπ(s,a)]를 시나리오에서 받는 보상으로…
- θt+1=θt+α⋅[∇θlogπθ(a|s)⋅Gt]
- qπ(s,a)]도 네트워크로 근사시키면 됨! <– critic network
- 기존의 action 내보내는 네트워크 <– actor
- 그래서 actor-critic
Baseline ( Advantage Actor-critic A2C)
- θt+1=θt+α⋅[∇θlogπθ(a|s)⋅Qw(s,a)]
- 큐함수가 그대로 쓰이면 분산이 큼
- 베이스라인(Vv) 사용
- A(St,At)=Qw(St,At)−Vv(St)
- 이러면 Qw와 Vv 둘 다 근사함수를 만들어야함…
- δv=Rt+1+γVv(St+1)−Vv(St)
- θt+1=θt+α⋅[∇θlogπθ(a|s)⋅δv]

- 단점
- critic update시 sarsa 방식을 사용
14 Mar 2018
|
ml
rl
sarsa
q-learning
monte-carlo
temporal difference
강화학습 기초 3: Grid world & Q-learning
- RL은 환경의 모델을 몰라도 상호작용을 통해 학습이 가능
-
DP는 환경의 모델을 알아야함
- 예측: policy가 주어졌을 때, Value func.를 계산하는 것(evaluation)
- 제어: Value func.를 토대로 agent의 optimal policy를 찾는 것(Improvement)
- Sarsa (시간차 제어)
- Q-learning (off-policy)
강화학습과 정책 평가 1: Monte-carlo prediction(MC)
ST: terminal state, Gi: i번째 episode의 return
- DP에서는 모든 state에 대해서 동시에 update를 함
- review (B.E.E.)
- Sampling을 통해서 vπ를 구해보자!
-
vπ(s)=E[Rt+1+γRt+2+γ2Rt+3...|St=s]=E[Gt|St=s]
- 끝까지 episode를 진행시켜서 Gt를 얻어냄
- 그 Gt들을 평균내서 쓰겠다
-
vπ(s)=1N(s)N(s)Σi=1Gi(s)
- sample update(n개의 sample이 있을 때, n+1번째 sample이 들어옴)
-
Vn+1=1nΣniGi=1n(Gn+Σn−1iGi)=1n(Gn+(n−1)∗1n−1Σn−1iGi)=1n(Gn+(n−1)Vn)=Vn+1n(Gn−Vn)
- 일반 업데이트 식
- V(s)←V(s)+α(G(s)−V(s))
- G(s)에 다가가도록 step-size(α)만큼 update
- 장점
- 각 state에 independent하다
- DP에서는 인접 state에 대해서 구했는데…
- V(s)←V(s)+α(G(s)−V(s))로 끝남
- 전체 state가 아닌 특정 state에 대해서만 구해도 된다.
- 단점
- 모든 state를 가보지 못했는데, guarantee할 수 있나?
- 주어진 정책대로 간다면 갈 확률이 거의 없으니 괜찮음…
- episode가 끝나야지 update를 할 수 있네????
- episode가 끝나지 않는 문제에는 적용 못함 ㅠ
- temporal diff로 가자!
강화학습과 정책 평가 2: Temporal difference(TD)

- Monte-carlo의 수식을 다시 살펴보자
- V(St)←V(St)+α(Gt−V(St))
- Gt는 episode가 끝나야 알 수 있다.
- Gt=Rt+1+γvπ(s′)
- episode의 중간 상태에서(s) 액션(a)를 취하면 다음 상태(s’)과 보상 Rt+1을 알 수 있다.
- 현재의 보상 Rt+1에 예측한 value func. V(s′)을 Gt대신 쓰는 것이 Temporal difference!!
비교
- MC : high variance, zero bias
- TD : low variance, some bias
- 하지만 MC보다 효율적이고, 더 빨리 수렴한다.
- 초기값에 sensitive(bootstrap)

사실 위의 TD는 TD(0)며, TD(n)의 경우 n스텝을 더 본 이후 Gt를 예측한다.
강화학습 알고리즘 1: Sarsa
- GPI(Generalized Policy Iteration)
- policy iteration인데, evaluation / improvement를 한번씩 번갈아가며 진행
- 이렇게 해도 수렴이 된다네…
- Sarsa
policy evaluation
: Temporal difference
policy improvement
- Greedy policy
- Q(St,At)←Q(St,At)+α(Rt+1+γQ(St+1,At+1)−Q(St,At))

- (St,At,Rt+1,St+1,At+1)가 학습에 필요!
- ϵ-greedy
- 위 식에서 action들은 greedy policy를 따른다면, Q-func의 초기값에 지배됨!
- 그래서 어느정도는 탐험이 필요함
-
π(s)={a∗=argmaxa∈AQ(s,a),1−ϵa≠a∗ϵ
- 정리
- ϵ-greedy 방식으로 sample (St,At,Rt+1,St+1,At+1) 를 얻어냄
- 이 샘플로 Q(St,At)←Q(St,At)+α(Rt+1+γQ(St+1,At+1)−Q(St,At))를 계산하고 update
강화학습 알고리즘 2: Q-learning
- Sarsa의 한계

- 다음 state의 action이 탐험에 의해서 잘못된 선택을 할 경우, 좋은 action이 penalty를 받는다.
- Q(s′,a′)가 작기 때문에…
- on-policy temporal difference control
- Q-learning
- off-policy TD control
- 행동하는 정책
- 학습하는 정책
- 을 따로 가져가자!
- Q(St,At)←Q(St,At)+α(Rt+1+γmaxa′Q(St+1,a′)−Q(St,At))
- 다음 state의 action을 greedy로
- 학습할 것은 ϵ-greedy지만,
- 그 안에서 가져오는 것은 greedy로 가정
- (St,At,Rt+1,St+1) 가 필요