在理解蒙特卡洛方法和时序差分学习一文中已经对时序差分学习进行了直观上的解释,本文中将具体的描述时序差分学习的数学推导过程及在强化学习中的应用。
一、时序差分学习的数学推导
根据折扣回报(Discounted Return)的定义,有:
根据动作价值函数(Action-value function)的定义,有:
即,对所有的策略 $\pi$ 都有如下的等式:
直接求 $R_t + \gamma \cdot Q_{\pi}(S_{t+1}, A_{t+1})$ 的期望很困难,可以对期望做蒙特卡洛(Monte Carlo)近似,即:
- 使用真实的奖励值 $r_t$ 来近似 $R_t$。
- 使用真实的Q值 $Q_{\pi}(s_{t+1}, a_{t+1})$ 来近似 $Q_{\pi}(S_{t+1}, A_{t+1})$ 。
所以:
结论:
- 常将 $r_t + \gamma \cdot Q_{\pi}(s_{t+1}, a_{t+1})$ 的值记作 $y_t$ 。
- 因为 $y_t$ 中包含了真实的奖励值 $r_t$ ,所以认为 $y_t$ 比 $Q_{\pi}(s_t, a_t)$ 更准确。
- 将 $y_t$ 命名为 TD target,而将 $y_t - Q_{\pi}(s_t, a_t)$ 的值命名为 TD error。
- TD error 的绝对值越小,就表明模型预测误差越小,预测的结果越准确。所以,在确定好 TD error 的计算方式后,可以通过 梯度下降 方法来更新模型的参数,降低 TD error 。
- 时序差分学习的目的是让模型预测出的 $Q_{\pi}(s_t, a_t)$ 值不断的接近TD target 。
二、Sarsa算法
Sarsa是State–action–reward–state–action这几个单词的缩写。
时序差分学习的一个应用就是Sarsa算法,Sarsa算法的目的就是使用神经网络 $Q(s,a)$ 去逼近 动作价值函数(action-value function)$Q_{\pi}(s,a)$ 。
Sarsa算法的TD target为 $y_t = r_t + \gamma \cdot Q(s_{t+1}, a_{t+1})$ 。
三、Q-Learning算法的数学推导
在时序差分学习的数学推导中得到了,对所有的策略 $\pi$ 都有如下的等式:
对最优策略 ${\pi}_*$ 也成立,所以:
可以简写为 ,都可以表示最优动作价值函数。
因为最优动作价值函数总是采用最优的动作:
所以:
即:
直接求 $R_t + \gamma \cdot \underset{a}{\operatorname{max}} Q_* (S_{t+1}, a)$ 的期望很困难,可以对期望做蒙特卡洛(Monte Carlo)近似,即:
- 使用真实的奖励值 $r_t$ 来近似 $R_t$。
- 使用真实的Q值 来近似 。
所以:
四、Q-Learning算法
时序差分学习的另一个应用就是Q-Learning算法,Q-Learning算法的目的就是使用神经网络 $Q(s,a)$ 去逼近 最优动作价值函数(optimal action-value function) 。
Q-Learning算法的TD target为 。
参考:TD Learning