-
[강화학습] PPO 알고리즘 (1) (미완)CS/ML&DL 2022. 10. 19. 15:52
TRPO 목적함수
목적함수 : Local Point(L)값에 쎄타(Action)이 들어오고 이 update된 Local Point를 가장 최적의 값으로 만드는(Maximize)하는 Policy를 찾는 것
== (세타로 만든 정책과 KL 거리가 델타보다 작은 정책을 만들어주는 세타들 중에서 목적함수를 최대로 만들어주는 세타를 찾아라)
그러나 Action과 Update된 Action을 파라미터로 갖는 KL Distance값에 의해 제약을 받는다. 그리고 이 거리값은 ?보다 작다는 제약식을 갖는다.
의도 : TRPO는 Trusted Rigion을 갖는 알고리즘이다. 여기서 말하는 Trusted Rigion은 Local Point가 Global minima로 빠지지 않게 방지해주는 그런 영역이라 볼 수 있겠다.
목적식에 세타를 이용해 업데이트하면 정책의 성능이 올라갈 것이라는 기대감이 있을 것이다. 그러나 업데이트 전과 후의 정책이 너무나도 방향이 달라져버리면 오히려 성능 향상이 어려울 수 있다. Local Minima로 빠져버리는 것이다.
목적함수를 크게 만들어주는 방향으로 세타를 업데이트 하되, 업데이트 전 정책과 업데이트 후의 정책이 너무 달라지지 않기를 의도하면서 KL 거리만큼의 제약식이 붙는 것이다.
PPO 목적함수
상위 TRPO의 목적식에서 제약식과 같은 역할을 동일하게 수행하되, 연산량을 줄이는 방향으로 CLIPING이란 방식을 사용한다.
CLIPING은 특정 영역을 벗어나는 부분은 constant 값으로 잘라주겠다는 의미 (추후 내용 update)
VF는 ?
S는 ?
Lt : 특정 time step에서 Local Point를 의미
(time step은 이산적 데이터의 경우 툭툭 끊어지는 포인트들을 time step이라 말함 )
==============
TODO :
Advantage Actor - critic 알고리즘은 무언지 [ ]
=============================================
참조 출처 :
RL.start() 오카방
KL 다이버전스 설명 : https://hyunw.kim/blog/2017/10/27/KL_divergence.html
https://engineering-ladder.tistory.com/69 : TRPO와 PPO 수식전개 출처
'CS > ML&DL' 카테고리의 다른 글
[강화학습] flexSim과 강화학습 그동안의 뻘짓 기록 (0) 2022.10.11 [pandas] Multiindex의drop 관련 이슈 unhashable type : 'Series' (0) 2022.07.07 [Predict_Future_Sales] 관련 (0) 2022.06.30 [kaggle] Bike_sharing_demand (0) 2022.06.29 [트랜스포머] Vanilla Transformer 관련 (0) 2022.06.13