> 本文证明强化学习入门问题:K摇臂赌博机的梯度赌博机算法中,偏好函数更新公式:$H_{t+1}(A_t) = H_t(A_t) + \alpha (R_t - \overline{R_t})(1-\pi_t(A_t))$的合理性。书上可能有些不太好理解,我用较为浅显的语言将每步证明的“why & how”描述出来。 > 引用自:强化学习(第2版); [加拿大] Richard S. Sutton, [美国] Andrew G. Barto; 俞凯 译 ### 前言 在**强化学习入门问题:K摇臂赌博机**的梯度赌博机算法中,提出了偏好函数。偏好函数本身的值并不重要,重要的是一个动作相比于另一个动作的偏好,因此,选择动作的概率分布使用softmax分布: $$Pr_{A_t = a} = \frac{e^{H_t(a)}}{\sum_{b=1}^{k} e^{H_t(b)}} = \pi_t(a)$$ $\pi_t(a)$表示动作a在t时刻被选择的概率,所有偏好函数的初始值都相同(可为0)。 则,偏好函数更新遵守如下规则: |$H_{t+1}(A_t) = H_t(A_t) + \alpha (R_t - \overline{R_t})(1-\pi_t(A_t))$|对于被选择的动作$A_t$| (1) | |---|---|---| |$H_{t+1}(a) = H_t(a) - \alpha (R_t - \overline(R_t) \pi_t(a))$|对于所有$a \not= A_t$| (2) | 其中,a是一个大于0的数,表示步长。$\overline{R_t}$是时刻t内所有收益的平均值,称为基准项。 **个人思考:为什么更新偏好函数时要考虑概率呢?** 答:对于(1)式,若本身概率较大,则$H_{t+1}$不会加太多,若本身概率$\pi_t=1$,则$H_{t+1}$不用更新。 上述思考有一定道理,**但是这个更新公式的合理性可以在数学上证明**。下面开始证明。 **** ### 证明 在精确梯度上升算法中,有: $$H_{t+1}(a)=H_t(a) + \alpha \frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)}$$ 这里,用总体的期望收益定义为性能的衡量指标: $$ \mathbb{E}[R_t] = \sum_x \pi_t (x) q_* (x)$$ 真实的$q_* (x)$(每个动作的真实收益)是未知的,因此无法实现精确的梯度上升。但是可以使用随机梯度上升求近似。 即,开始推导$\frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)}$的近似: $$\frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)} = \frac{\partial}{\partial H_t(a)}\left[ \sum_x \pi_t (x) q_* (x) \right]$$ 因为$q_* (x)$客观存在,与$H_t (a)$值无关,所以: $$\frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)} = \sum_x q_* (x) \frac{\partial \pi_t (x)}{\partial H_t(a)}$$ 因为$\sum_x \frac{\partial \pi_t (x)}{\partial H_t(a)}=0$(其证明在后文:[动作导数总和为0的证明](#1)),因此可以加入“基准项”$B_t$: $$\frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)} = \sum_x (q_* (x) - B_t ) \frac{\partial \pi_t (x)}{\partial H_t(a)}$$ 然后,乘以$\pi_t(x) / \pi_t(x)$,有: $$\frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)} = \sum_x \pi_t(x) (q_* (x) - B_t ) \frac{\partial \pi_t (x)}{\partial H_t(a)} / \pi_t(x)$$ 可以看出,上式实际上是对$\pi_t(x)$分布中的$(q_* (x) - B_t ) \frac{\partial \pi_t (x)}{\partial H_t(a)} / \pi_t(x)$进行期望求值,即: $$\frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)} = \mathbb{E} \left[ (q_* (x) - B_t ) \frac{\partial \pi_t (x)}{\partial H_t(a)} / \pi_t(x) \right]$$ 其中,变量为动作$x$,这里记为选择的动作$A_t$;并且,将$B_t$取值为$\overline{R_t}$;又有,选择$A_t$动作的回报的期望为$\mathbb{E}[R_t | A_t]$,即$q_* (x)=\mathbb{E}[R_t | A_t]$。因此,有: $$\frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)} = \mathbb{E} \left[ (R_t - \overline{R_t} ) \frac{\partial \pi_t ( A_t)}{\partial H_t(a)} / \pi_t( A_t) \right]$$ 又有,$\frac{\partial \pi_t (x)}{\partial H_t(a)}=\pi_t(x) (\mathbb{I}_{a=A_t} - \pi_t(a))$,$\mathbb{I}_{a=A_t}$表示,如果$a=x$就取1,否则取0。其证明在后文:[偏好函数导数的推导证明](#2)。 则带入$\frac{\partial \pi_t (x)}{\partial H_t(a)}=\pi_t(x) (\mathbb{I}_{a=A_t} - \pi_t(a))$,有: $$\frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)} = \mathbb{E} \left[ (R_t - \overline{R_t} ) (\mathbb{I}_{a=A_t} - \pi_t(a)) \right]$$ 将上式带入$H_{t+1}(a)=H_t(a) + \alpha \frac{\partial \mathbb{E}[R_t]}{\partial H_t (a)}$,即有 $$H_{t+1}(a)=H_t(a) + \alpha (R_t - \overline{R_t} ) (\mathbb{I}_{a=A_t} - \pi_t(a))$$ 即此式子收敛于精确梯度上升。 Q.E.D ### 动作导数总和为0的证明 证明:$\sum_x \frac{\partial \pi_t (x)}{\partial H_t(a)}=0$: 因为$\sum_x \pi_t (x)=1$,即概率和为1,所以对每一项的$H_t(a)$求导,等式右边为0: $$\sum_x \frac{\partial \pi_t (x)}{\partial H_t(a)}=0$$ Q.E.D ### 偏好函数导数的推导证明 证明:$\frac{\partial \pi_t (x)}{\partial H_t(a)}=\pi_t(x) (\mathbb{I}_{a=A_t} - \pi_t(a))$,$\mathbb{I}_{a=A_t}$表示,如果$a=x$就取1,否则取0。 其实,就是一道很简单的$(\frac{f(x)}{g(x)})^{'}$等应用。 简化一下$\frac{\partial \pi_t (x)}{\partial H_t(a)}$,将$H_t(x)$替换为$x$,并在证明中使用下式即可: $$\pi_t (x) = \frac{e^{x}}{\sum_{i=1}^{k} e^i}$$ 证明下式即可: $$\frac{\partial \pi_t (x)}{\partial x} = \left\{ \begin{aligned} \pi_t(x)(1-\pi_t(a)) & & x=a \\ -\pi_t(x) \pi_t(a) & & x\not= a \\ \end{aligned} \right.$$ 高中数学内容,应用公式$(\frac{f(x)}{g(x)})^{'} = \frac{f^{'}(x)g(x) - g^{'}(x)f(x)}{g(x)^{2}}$分类讨论,可轻松证明。