행동가치 함수에 대한 소프트 벨만 방정식은 다음과 같다.
식 (1)은 현재 정책
정책 개선을 위한 식은 다음과 같다.
식 (1)로
정책 이터레이션을 수행하려면 환경 모델이 필요하다. 하지만 모델프리(model-free) 강화학습에서는 환경 모델을 이용하여 행동가지 함수를 계산하는 것이 아니라, 에이전트가 환경에 행동을 가해서 생성한 데이터를 기반으로 하여 추정한다.
이제 소프트 행동가치 함수와 정책을 추정하기 위해서 신경망을 이용하기로 하자. 행동가치 함수를 추정하기 위한 신경망을 Q 신경망 또는 크리틱(critic) 신경망이라 하고 파라미터를
이와 같이 신경망을 이용하여 엔트로피 최대화 문제의 해를 찾는 알고리즘을 SAC(Soft Actor Critic) 알고리즘이라고 한다. SAC알고리즘에서는 소프트 행동가치가 수렴할 때까지 기다리지 않고 정책 평가와 정책 개선을 번갈아 가며 한 번씩 업데이트하는 방법을 사용한다.
Q 신경망의 손실함수는 소프트 행동가치 함수를 정확히 추정할 수 있는 파라미터
그런데 여기서 소프트 행동가치의 참값
여기서
여기서 바깥쪽에 있는 기댓값은 리플레이 버퍼

손실함수
손실함수의 그래디언트는 다음과 같이 계산한다.
액터 신경망의 손실함수도 정책을 정확히 추정할 수 있는 파라미터
마찬가지로 여기서 바깥쪽에 있는 기댓값은 리플레이 버퍼
손실함수
그런데 여기서 한가지 문제가 있다. 바로 안쪽에 있는 기댓값의 미분을 샘플링 평균으로 계산할 수 없는 것이다. 다음 수식을 보면 이유가 명확해진다.
이에 대한 해결책으로서 재파라미터화 트릭(reparameterization trick)이라는 방법을 사용한다. 이 방법에 의하면 정책을 다음과 같은 함수로 만든다.
여기서
그러면 손실함수 식 (8)은 다음과 같이 쓸 수 있다.

미분의 연쇄법칙을 사용하면 손실함수
만약 재파라미터화 트릭으로 한 개의 샘플만을 추출하여 이용한다면 식 (14)는 다음과 같이 된다.
이제 손실함수
'AI 딥러닝 > RL' 카테고리의 다른 글
Tensorflow2로 만든 SAC 코드: Pendulum-v0 (0) | 2021.06.01 |
---|---|
Soft Actor Critic (SAC) 알고리즘 - 2 (0) | 2021.05.30 |
소프트 정책 이터레이션 (0) | 2021.05.28 |
소프트 벨만 방정식 (Soft Bellman Equation) (0) | 2021.05.27 |
최대 엔트로피 목적함수 (0) | 2021.05.26 |
댓글