Soft Actor-Critic
대규모 연속 공간에서는 Soft policy iteration에 대한 실용적인 근사를 유도해야 한다. 이를 위해 Q-function과 policy에 함수 근사자를 사용한다.그래서 매개변수화한 state value function $V_\phi (s_t)$ , soft Q-function $Q_\theta (s_t ,a_t )$, tractable policy $\pi_\phi (a_t | s_t )$를 고려하자. 그러면 네트워크의 매개변수는 $\phi, \theta, \psi$이다.
state value function은 soft value를 근사한다. 원칙적으로 state value를 별도의 함수 근사자를 포함 할 필요가 없다. 이는 Q-function과 policy와 관련되어있다.
Soft Value function은 다음의 squared residual error를 최소화하도록 훈련된다.
$$J_V (\psi) = \mathbb{E}{s_t \sim \mathcal{D}} \left[ \frac{1}{2} \left( V_\psi (s_t) - \mathbb{E}_{a_t \sim \pi_\phi} \left[ Q_\theta (s_t, a_t ) - \text{log} \pi_{\phi} (a_t | s_t ) \right] \right)^2 \right] $$
여기서 $\mathcal{D}$는 이전에 표본화한 state와 action의 분포 혹은 replay buffer이다.
$$\hat{\nabla}_\psi J_V (\psi) =\nabla _\psi V_\psi (s_t) \left( V_\psi(s_t) -Q_\theta (s_t,a_t) + \text{log} \pi_{\phi} (a_t| s_t) \right)$$
여기서 action은 replay buffer 가 아닌 현재 policy로부터 표본을 뽑는다.
Soft Q-function 매개변수는 Bellman residual을 최소화하는 방향으로 훈련시킬 수 있다.
$$J_Q (\theta) = \mathbb{E}_{(s_t,a_t) \sim \mathcal{D}} \left[ \frac{1}{2} \left( Q_\theta (s_t, a_t) - \hat{Q} (s_t,a_t) \right)^2 \right] $$
$$\hat{Q}(s_t,a_t) = r(s_t,a_t) + \gamma \mathcal{E}_{s_{t+1} \sim p} \left[V_{\bar{\psi}} (s_{t+1}) \right]$$
이는 stochastic graident로 최적화될 수 있다.
$$\hat{\nabla} _\theta J_Q (\theta) = \nabla _\theta Q_\theta (a_t ,s_t) \left[ Q_\theta (s_t,a_t) - r(s_t ,a_t) -\gamma V_{\hat{\psi}} (s_{t+1}) \right]$$
위 갱신은 target value network $V_\bar{\psi}$를 사용하며, $\bar{\psi}$는 학습의 안정화를 위해서 value network weight의 지수 이동 평균이다.
마지막으로 Policy parameter는 기대한 KL-divergence를 직접적으로 최소화하도록 학습된다.
$$J_\pi (\phi) = \mathbb{E} _{s_t \sim \mathcal{D}} \left[ D_{\text{KL}} \left( \pi_\phi (\cdot | s_t ) || \frac{\text{exp}(Q_\theta (s_,t \cdot ))}{Z_\theta (s_t) } \right) \right]$$
본 연구에서, target density는 Q-function이며, 신경망으로 표현된다. 이는 미분가능하며, 재매개변수화하기가 용이하여 낮은 분산 추정기를 얻을 수 있다. 신경망 변환을 이용하여 policy를 재 매개변수화하면 다음과 같다. $\epsilon_t$는 입력 잡음 벡터이고 구형 가우시안과 같은 고정된 분포로부터 표본을 뽑는다.
$$a_t = f_\phi (\epsilon_t ; s_t )$$
$$J_\pi (\phi) = \mathbb{E} _{s_t \sim \mathcal{D} , \epsilon_t \sim \mathcal{N}} \left[ \text{log} \pi _\phi \left( f_\phi (\epsilon_t ; s_t) | s_t \right) - Q_\theta (s_t, f_\phi (\epsilon_t ;s_t ) ) \right] $$
$\pi_\phi$는 암묵적으로 $f_\phi$에 대해 정의된다. 일부 함수는 $\phi$와 독립적이므로 생략할 수 있다.
$$\hat{\nabla}_\phi J_\pi (\phi) = \nabla_\phi \text{log} \pi_\phi (a_t | s_t) + \left(\nabla_{a_t} \text{log} \pi _\phi (a_t | s_t) - \nabla_{a_t} Q(s_t, a_t) \right) \nabla_\phi f_\phi (\epsilon_t ; s_t )$$
비편향된 경사 추정기는 DDPG 스타일의 policy gradient에서 tractable stochastic policy로 확장된다.
$a_t \sim \pi_\phi (a_t|s_t)$ 의 과정
policy $\pi_\phi$는 다음과 같은 흐름으로 action $a_t$를 고른다.
학습한 신경망으로부터 현재 상태 $s_t$일 때의 gaussian distribution으로 모사한 action distribution의 평균 $\mu$과 분산$\sigma^2$을 뽑는다.
$$\mu , \sigma \leftarrow f(s_t,\phi)$$
2. action distribution 으로부터 action을 뽑는다.
$$a_t \leftarrow \mathcal{N}(\mu ,\sigma)$$
Off-line learning 과정
Soft value function $J_V$의 경사 이동
여기서 $\pi_\phi (a_t | s_t)$ 부분은 현재의 policy로부터 action을 추출하여 넣는다.
$$\hat{\nabla}_\psi J_V (\psi) =\nabla _\psi V_\psi (s_t) \left( V_\psi(s_t) -Q_\theta (s_t,a_t) + \text{log} \pi_{\phi} (a_t| s_t) \right)$$
Soft Q-function 매개변수의 경사 이동
target value network $V_{\bar{\psi}}$는 지수 이동 평균 값인 $\bar{\psi}$를 사용하여 DQN과 같이 학습의 안정성을 높인다.
$$\hat{\nabla} _\theta J_Q (\theta) = \nabla _\theta Q_\theta (a_t ,s_t) \left[ Q_\theta (s_t,a_t) - r(s_t ,a_t) -\gamma V_{\hat{\psi}} (s_{t+1}) \right]$$