카테고리 없음

PPO - proximal policy optimization

insight1361 2025. 2. 1. 22:28

https://www.youtube.com/watch?v=cIyXYYdZIsk&ab_channel=%ED%98%81%ED%8E%9C%ED%95%98%EC%9E%84%7CAI%26%EB%94%A5%EB%9F%AC%EB%8B%9D%EA%B0%95%EC%9D%98

정책 그레디언트 근사는 다음과 같이 나타낼 수 있다.

이 식에서 원래 예전 알고리즘에 경우에는 old policy에 대해서 재활용을 하지 않고 trajectory를 rollout하고 업데이트 시키고 다른 trajectory를 roll out하고 업데이트하는 식으로 학습을 진행했지만 PPO에서는 old policy를 사용해서 sample efficiency를 높이고자 하였다. old policy를 이용하게 된다면 위의 정책 그레디언트 식은 다음과 같이 변형될 수 있다.

 

위의 식은 다음과 같이 변형될 수 있다.

결론적으로 importance sampling을 사용하게 된다면 정책은 다음과 같은 방향으로 gradient descent가 진행이 된다.

 

이때 정책 안정성을 위해서 현재 정책과 old policy에 차이가 너무 나지 않도록 해줘야 하는데 TRPO라는 알고리즘에서는 이를 KL-divergence를 사용해서 문제를 해결하였지만 PPO는 cliping방식을 도입해 더 쉽게 유도하였다.

 

이를 A가 양수나 음수일때 그래프로 표현하게 되면 다음과 같이 표현이 된다.

 

또한 여기서 사용된 A는 Generalized Average estimation을 사용하게 된다. 그 식은 다음과 같다.

 

여기서 델타는 t-step TD 에러인것이고 이를 discount factor를 곱한 합으로 나타낼 수 있다. 이론상으로는 무한대까지 더하는것인데 실제 구현에서는 T-step TD error를 더하는 것까지 계산하게 된다.

 

총 알고리즘은 다음과 같다.