Summary:
1. DQN: Q값 추정을 neural network로
2. Policy Gradient: Q값 추정 안하고 Policy 자체를 학습
3. A2C: Actor와 Critic을 분리하여 critic이 value값 추정
4. DDPG: Actor는 Critic에 완전히 의존. Critic이 action의 가치 추정
5. TD3: DDPG upgrade
6. SAC: Entropy가 높은 policy 우선
7. PPO: Trusted region 기반 policy update
PPO의 motivation
learning rate에 따라 결과가 많이 좌우됨
(sudden drop이 발생하는 원인)
해결책: trusted region내에서 움직이면 sudden drop을 피할 수 있음
trusted region을 기반으로 policy를 update하자가 main idea임
Trusted Region Policy Optimization (TRPO)
ㅠ에서 ㅠ'로 갈 때 return값이 증가하는 것이 목표임
Advantage = Q-A임
Advantage가 음수이면 상대적으로 안좋은 policy라고 할 수 있음
ㅠ와 ㅠ'의 차이는 노란색 표시한 값 만큼이고 이것은 Advantage를 누적한 값임
위의 그림을 가지고 증명해보면 아래와 같음
ㅠ(V=4)에서 ㅠ'(v=2.75)로 갈수록 안좋아 진것을 알 수 있는데,
그것의 기준은 ㅠ의 Advantage값을 곱해줌으로써
좋아졌는지, 안 좋아졌는지 결정할 수 있음
즉, return 값이 좋아지면서도 기존 policy와 새로운 policy의 차이를 줄이는 방향으로 training을 함
(K-L divergence를 사용함)
특정 state에 agent가 있을 확률에 대해 그때의 action을 취할 확률과 Advantage를 곱한 값으로
agent가 state에 얼마나 방문하는지(visitation frequency) 에 대한 관점으로 변환하여 표현한것임
그러므로 시그마의 아래값이 t(시간관점)에서 s(state관점)으로 변함
위의 값은 (old policy에서의 visitation frequency) 를 뜻함
다시 위의 그림과 연결해보면 위의 식에서 노란색 밑줄친 부분이 양수가 되게 하는 것이 training 방향임
ㅠ'를 계산하기 위해 빨간색 부분처럼 변환 시켜 줘서 기존 policy에서의 visitation frequency를 활용함
[Total variance 관점]
아래의 빨간 값을 알고있으므로, 그에 대한 new policy의 값의 bound를 알 수 있고
그것보다 큰 값을 취할 수 있도록 new policy를 정하는 것이 목표라고 할 수 있음
D_TV: total variance divergence
a의미: ㅠ와 ㅠ'의 분포차
New policy와 old policy가 다르면 다를 수록 D_TV의 값이 커짐
위의 식에서 부등호를 기준으로 우변을 최대화 해줌으로써 new policy의 boundary를 정할 수 있음
우변이 최대화 되기 위해서는 음수뒤의 값이 작아야 되고, alpha가 작아야지 목적에 달성하는 것임
[KL divergence 관점] - TV보다 KL을 주로 사용함
목적: 부등호 기준 우변을 최대화 하는 것
즉, 아래와 같이 표현할 수 있음(constraint optimization)
평균 추정을 활용하여(대충 approximation을 함) 아래와 같이 간소화 시키고,
또한 importance sampling을 활용하여 위의식을 더 간소화 시킴
** importance sampling:
o, n두개의 분포가 있을 때, n의 sampling을 할 수 없는 경우,
두 분포의 ratio를 알 때, o의 분포에서 importance ratio를 곱해줘서 n의 sampling을 대체함
PPO with a clipped objective
** r=(ㅠ_new(a|s))/(ㅠ_old(a|s))임
L(ㅠold(ㅠnew))의 gradient(미분값)가 증가하므로
즉, 확률을 높이기 위해 증가시키는 방향을 취하면 됨
하지만 위의 그림에서, 일정구간에서는 증가시키고,
그 이후에는 상수값을 취하는 모습으로
너무 증가시키지 않겠다라는 것을 알수있음
(즉, ㅠ_new와 ㅠ_old의 차이를 너무 크게 하지 않겠다는 뜻임)
(= policy를 너무 변화시키지 않겠다)
(= trusted region내에서 움직이겠다.)
L의 gradient가 감소하는 방향에서도 마찬가지임
(= 너무 감소시키지 않겠다라는 뜻을 나타낸 이미지임)
[코드설명]
def pi: policy관련 network
def v: value 관련 network
policy관련 network (pi)에서 action을 택하고 trainstion(s',r,done)을 생성함
[Advantage계산방법] : Advantage = Q-V
ratio코드는 아래의 수식에 따라 구하는 것임
Epsilon의 값에따라, PPO clipped의 목적처럼 계속 상승하지는 않음
(surr2 코드 참고)
'IT > 강화학습' 카테고리의 다른 글
Twin Delayed DDPG (TD3), Soft Actor-Critic (SAC) (2) | 2022.12.06 |
---|---|
Multi-Armed Bandit (MAB) (0) | 2022.12.04 |
Actor Critic methods - DDPG (0) | 2022.11.29 |
Policy Gradient Methods (0) | 2022.11.15 |
Deep Q Network (0) | 2022.11.01 |