natural gradient笔记

自然梯度和梯度的区别

自然梯度是在梯度前左乘某正定矩阵\(G\),即

\[\tilde{\nabla} h=G^{-1}\nabla h \]

自然梯度和梯度的区别在于使用的距离度量空间不同,梯度使用的是欧几里得空间,而自然梯度使用的是黎曼空间,即

\[\begin{align*} \vert dw\vert^2 = \sum\, g_{ij}(w)dw_idw_j \end{align*} \]

根据梯度的定义,即在给定\(\epsilon\)范围内下降速度最快的方向即为梯度,将\(\epsilon\)范围定义在黎曼空间即可推导出自然梯度,即

\[\begin{align*} L(w+dw) &= L(w)+\epsilon \nabla L(w)^T \alpha\\ s.t.\quad \vert \alpha\vert^2&= \sum g_{ij}\alpha_i\alpha_j=1 \end{align*} \]

应用拉格朗日对偶可以得到

\[\alpha = G^{-1}\nabla L(w) \]

上式中,\(\alpha\)是要找的在黎曼空间下降最快的方向,\(G\)表示的是\(g_{ij}\)组成的矩阵。

Fisher矩阵和自然梯度

Fisher矩阵的定义如下

\[\begin{align*} F &= E_{P_{x,y}}[\nabla\log p(x,y|\theta)\nabla{\log p(x,y|\theta)}^T]\\ &= -E_{P_{x,y}}[H_{\log p(x,y|\theta)}] \end{align*} \]

自然梯度中的\(G\)使用Fisher矩阵的逆,即

\[\tilde \nabla h = F^{-1} \nabla h \]

上式中\(p(x,y\vert \theta)\)表示的是数据特征\(x\)和标签\(y\)的联合分布,而通常的监督学习\(x\)是给定的,学习的算法是要得到\(p(y\vert x,\theta)\)的分布。对上式中的联合分布进行拆分,得到

\[\begin{align*} F& = E_{Q_x}[E_{P_{y\vert x}}[\nabla\log p(y|x,\theta)\nabla{\log p(y|x,\theta)}^T]]\\ &= -E_{Q_x}[E_{P_{y\vert x}}[H_{\log p(y|x,\theta)}]] \end{align*} \]

Fisher矩阵和KL散度

对于一个监督学习算法,我们要得到\(q(y\vert x)\)的估计\(p(y\vert x,\theta)\),我们希望两个分布的距离尽可能的小,即

\[\begin{align*} KL(Q_{x,y}\Vert P_{x,y}(\theta))&=\int q(x,y)\log \frac{q(y\vert x)q(x)}{p(y\vert x, \theta)q(x)}\\ &=\int q(x) \int q(y\vert x)\log \frac{q(y\vert x)}{p(y\vert x, \theta)}\\ &=E_{Q_x}[KL(Q_{y\vert x}\Vert P_{y\vert x}(\theta))] \end{align*} \]

在实际的训练过程中,我们通常是无法得到输入\(q(x,y)\)分布的,通常使用的是\(\hat{Q}_{x,y}\),即经验分布,因此上述的目标可以简化为最小化下式

\[-\frac{1}{\vert S\vert}\sum \log p(y\vert x,\theta) \]

上式也可以看作最小化负对数似然。

假如损失函数\(L(y,z)=-\log r(y\vert z)\),Fisher矩阵可以写为

\[F= \frac{1}{|S|}\sum E_{P_{y\vert x}}[H_{L(y, f(x,\theta))}] \]

通过对于KL散度的泰勒展开,我们可以得到Fisher矩阵为下式的近似

\[KL(P(\theta)\Vert P(\theta+\delta))\approx \frac{1}{2}\delta^T F\delta \]

因此Fisher矩阵是对两个分布local的近似(一定要注意是在local情况下)

根据下式定理

\[\frac{-A^{-1}\nabla h}{\Vert\nabla h\Vert_{A^{-1}}}=\lim_{\epsilon\to0} \frac 1 \epsilon \arg\min_{d:\Vert d\Vert_{A}\leq \epsilon} h(\theta+d) \]

即在半正定矩阵\(A\)定义的范数下,\(-A^{-1}\nabla h\)是下降最快方向。自然梯度方向是在分布空间上局部下降最快的方向。

自然梯度和二阶优化的关系

Fisher矩阵和Hessian矩阵

如果目标函数\(L=-\log r(y\vert z)\),Fisher矩阵可以写为

\[F=\frac {1}{ \vert S\vert} \sum E_{Py\vert x}[H_{L(y, f(x,\theta))}] \]

而Hessian矩阵表达式为

\[H=\frac{1}{|S|}\sum E_{\hat{Q}_{x,y}}[H_{L(y,f(x,\theta))}] \]

可以看到只是两者是在不同分布下的期望,Fisher矩阵是在预测器给定\(x\)关于\(y\)的条件分布,是跟参数\(\theta\)有关的。而Hessian矩阵则是在经验分布之下的。

参考资料

posted @ 2020-07-12 12:43  Neo_DH  阅读(349)  评论(0编辑  收藏  举报