[CS294 - 112 정리] Lecture5 - Policy Gradients Introduction
in Reinforcement learning / Reinforcement learning on Cs294
Table of Contents
Today’s Lecture
- The policy gradient algorithm
- What does the policy gradient do?
- Basic variance reduction: causality
- Basic variance reduction: baselines
- Policy gradient examples
- Goals:
- Understand policy gradient reinforcement learning
- Understand practical considerations for policy gradients
Review
- The goal of reinforcement learning
- \(\theta^*\)를 찾는 것은 두 가지 경우.
- Infinite horizon
- Finite horizon
- Evaluating the objective
- 목적(objective function)을 최대화하는 것: trajectory의 총 보상의 합에 대한 기댓 값을 최대화.
- 실제 값을 구하기 힘들기 때문에, 몬테카를로 기법(=무수히 많은 샘플을 통해 평균값을 구하는 방법)을 이용하여 근사.
- 목적(objective function)을 최대화하는 것: trajectory의 총 보상의 합에 대한 기댓 값을 최대화.
Policy gradient
- Direct policy differentiation
- Policy gradient로 직접 policy의 weight를 갱신.
- 따라서, objective function을 바로 미분하여 gradient descent 방법을 이용하여 최적점(최소지점)을 찾는다.
- Log 특성을 사용하여, 미분 및 덧셈 원리 이용하여 단순화 및 tractable하게 변형.
- p(s)는 \(\theta\)에 대한 값이 아니므로 미분하면 0.
- Evaluating the policy gradient
- REINFORCE 알고리즘:
- \(1\). policy에 따라 sample 저장 (generate samples)
- \(2\). objective function을 미분하여 위의 절차(direct policy differentiation)에 따라 policy gradient 계산(fit a model to estimate return)
\(3\). gradient descent 방법을 통해 weight 갱신(improve the policy)
- 그러나, REINFORCE 알고리즘은 잘 동작하지 않는다
- Variance로 때문, variance reduction을 통해 향상 가능.
- REINFORCE 알고리즘:
- \(Log \pi_\theta\) 는 무엇을 의미?
- (Imitation learning에서 배웠던) Maximum likelihood 와 상당히 유사
- 좋은 샘플을 확률 증가, 좋지 않은 샘플은 확률 감소
What did we just do?
(지금까지 진행사항)
- Gradient 계산
- N개의 샘플링(몬테카를로 근사)을 통해 Trajectory 동안의 \(log \pi_\theta\), reward들의 합의 곱으로 표현.
- 좋은 것을 더 자주하도록, 나쁜 것을 덜 하도록(maximum likelihood에 유사하기 때문에 \(log \pi_\theta\)가 의미하는 바를 이해할 수 있다) 유도.
- 간단하게 “trial and error”의 개념을 공식화 한다!
- Partial observability
- Markov property를 실제로는 사용되지 못한다!
- 수정없이 POMDPs에서 policy gradient를 사용할 수 있다
- state를 observation으로만 변경.
What is wrong with the policy gradient?
Policy gradient의 문제는 high variance.
- 같은 sample을 이용하여도, 학습을 진행하여 추정되는 값의 차이가 크다 - (좋은 직선이 아닌)gradient로 인해 모든 공간에 대해 꿈틀거리게 된다.
- 많은 이유가 있지만, 하나의 예제만을 설명:
- 파랑색은 정책에 의한 분포도, 초록색은 세 개의 샘플들(두 개는 작은 positive, 한 개는 큰 negative 값을 가짐)
- Policy gradient를 통해 policy가 변형.
- 변경된 점선의 분포도는 다음과 같다.
- 이상적인 분포도(좋은 것에 대해서는 보상을 주고, 좋지 않은 경우는 피하도록 한다.
- reward function에 상수를 추가하여 더한다면, solution은 이상적이지 않음.
Review
- RL 목적함수 평가
- sample 생성
- Policy gradient 평가
- Log-gradient trick
- sample 생성
- Policy gradient 이해
- trial-and-error의 공식화
- Partial observability
- 이 조건에서도 잘 동작
- Policy gradient의 문제
- Variance
Reducing variance
- 첫번째 trick.
- Causality: t < t’ 일때, time t’에서의 policy는 time t에서 reward에 영향을 주지 못한다.
실제로는 stationary policy가 아니지만(optimal policy는 time varying policy), 제한적이고 간단하게 하기위해 사용하기도 한다.
Baselines
- 두번째 trick.
- Baseline을 사용할 수 있을까? yes, 왜냐하면 unbiased. 아래는 증명.
- Baseline을 빼는 것은 expectation에서 unbiased.
- 평균 reward는 최고의 baseline은 아니지만, 꽤 괜찮다.
Analyzing variance
- Best baseline
- 최소(0)이 되는 Variance를 증명(analyzing)할 수 있을까?
- g = \(∇ \theta log \pi_\theta(\tau)\),
Review
- Policy gradient의 문제: high variance
- 해결책1: Causality 이용
- 미래는 과거에 영향을 끼치지 못함
- 해결책2 : Baselines
- Unbiased!
- Variance 분석
- Optimal baseline을 유도
On-policy
Policy gradient: on-policy
- Neural networks는 각 gradient step에서 약간의 변화만 생김
- On-policy learning(policy가 변경되면, 새롭게 샘플 생성을 해야함) 은 극단적으로 비효율적일 수 있다.
- Expectation은 policy에서 sample들을 요구
- REINFORCE 알고리즘
- 1번(sampling)을 건너 뛸 수 없음.
Off-policy learning & importance sampling
- 다른 policy의 sample을 가져옴.
- Importance sampling:
- 확률 분포의 기대값을 추정하는 기본적인 방법
- Importance sampling으로 policy gradient 유도(off-policy policy gradient유도)
- 새로운 파라미터의 값을 추정할 수 있을까?
- \(\theta’\)에 대해서만 미분, convenient identity를 사용하여 재정의
- \(\theta = \theta’\) 일때, 아래와 같이 표현가능,
- 그렇지 않으면, 틀린 분포로 샘플링.
- 새로운 파라미터의 값을 추정할 수 있을까?
- Off-policy policy gradient:
- \(\theta\)와 \(\theta’\)가 다를 경우는 다음과 같다
- 세 개의 term의 곱으로 표현
- \(\theta\)와 \(\theta’\)가 다를 경우는 다음과 같다
Policy gradient with automatic differentiation
- \(∇\theta log \pi_\theta(a \mid s)\)은 명시적으로 계산하기 위해서는 꽤 비효율적.
- 어떻게 automatic 미분으로 policy gradient를 계산할 수 있을까?
- 여기 gradient가 policy gradient를 만족하는 graph가 필요
- Weighted maximum likelihood와 같은 “pseudo-loss” 를 구현
- Cross entropy(discrete)
- Squared error(Gaussian)
Policy gradient in practice
- Gradient는 high variance를 가짐
- 지도학습과 같지는 않음!
- Gradient는 실제로 noisy할 것!
- 더 큰 batch 사용을 고려(일반적으로 64많이 사용, but PG는 64000을 사용해야할거임).
- Learning rate를 보정(tweaking)하는 것은 매우 어렵
- ADAM은 괜찮음
- 이후에 고려
Review
- Policy gradient는 on-policy.
- Off-policy 변형체로 유도 가능.
- Importance sampling 사용
- T만큼 지수승
- state 부분은 무시 할 수 있다(approximation)
- 자동적 미분으로 구현 가능
- Backpropagate가 무엇인지 알아야 한다.
- 실전에서 고려
- batch size, learning rates, optimizers