오늘은 C51 모델과 C51의 핵심아이디어에 대해 배워볼 예정이다.


실제 Distribution 를 discrete distribution 로 만드는 과정이다.
개의 fixed support 을 사용한다.
즉 에서만 확률값을 가진다고 이해하면 된다.
fixed support 의 범위는 로 제한한다.




Target 와 behavior 의 KL-발산을 구한다.
이때 Behavior Network는 를 Target Network는 을 사용하는 것을 확인할 수 있다.
실제로 optimize과정은 에 대해서만 이루어지며 은 상수로 처리한다.
실제 KL-발산 연산이 이루어질 때는 는 return 를 의미한다.
Return은 discrete하게 처리하기 때문에 으로 표현할 수 있다.
또한 마지막 행의 첫째 항은 에 대한 식이기 때문에 상수 취급하여 실제 loss는 2번째 항이다.
형태의 cross-entropy loss이다.
DQN은 Q-value function을 출력하지만, C51은 action-value distribution을 출력한다.
C51에서는 practical하게 적용하기 위해 Distribution을 discrete하게 변환하였다.
DQN은 학습을 위해 Target Network와 Behavior Network의 MSE를 사용하지만, C51은 KL-발산의 cross-entropy loss를 사용한다.

DQN의 pseudo code에 대한 추가적인 내용은 아래 글에서 확인 가능하다.
📃자료: https://velog.io/@tina1975/Deep-Reinforcement-Learning-18강-DQN-2

Sample data를 이용하여 return 를 구한다.
Q-value를 maximize하는 action을 next action으로 정한다.
Sample data를 활용하여 Target return 를 구한다.
를 의미한다.
Cross-entropy loss를 구한 것을 확인할 수 있다.
- C51은 Discrete Distribution을 학습한다.
- Parameterization 과정을 통해 discrete한 return을 생성한다.
- Target value를 구하는 과정에서 support가 변하는 문제가 발생한다.
- Projection 과정을 통해 support가 변하는 문제를 해결한다.
- 실제 loss function은 cross-entropy 형태를 띄고 있다.