• natural gradient笔记


    自然梯度和梯度的区别

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

    [ ilde{ abla} h=G^{-1} abla h ]

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

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

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

    [egin{align*} L(w+dw) &= L(w)+epsilon abla L(w)^T alpha\ s.t.quad vert alphavert^2&= sum g_{ij}alpha_ialpha_j=1 end{align*} ]

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

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

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

    Fisher矩阵和自然梯度

    Fisher矩阵的定义如下

    [egin{align*} F &= E_{P_{x,y}}[ ablalog p(x,y| heta) abla{log p(x,y| heta)}^T]\ &= -E_{P_{x,y}}[H_{log p(x,y| heta)}] end{align*} ]

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

    [ ilde abla h = F^{-1} abla h ]

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

    [egin{align*} F& = E_{Q_x}[E_{P_{yvert x}}[ ablalog p(y|x, heta) abla{log p(y|x, heta)}^T]]\ &= -E_{Q_x}[E_{P_{yvert x}}[H_{log p(y|x, heta)}]] end{align*} ]

    Fisher矩阵和KL散度

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

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

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

    [-frac{1}{vert Svert}sum log p(yvert x, heta) ]

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

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

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

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

    [KL(P( heta)Vert P( heta+delta))approx frac{1}{2}delta^T Fdelta ]

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

    根据下式定理

    [frac{-A^{-1} abla h}{Vert abla hVert_{A^{-1}}}=lim_{epsilon o0} frac 1 epsilon argmin_{d:Vert dVert_{A}leq epsilon} h( heta+d) ]

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

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

    Fisher矩阵和Hessian矩阵

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

    [F=frac {1}{ vert Svert} sum E_{Pyvert x}[H_{L(y, f(x, heta))}] ]

    而Hessian矩阵表达式为

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

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

    参考资料

  • 相关阅读:
    MVC基础
    JQuery基本知识、选择器、事件、DOM操作、动画
    LinQ各种方式查询、组合查询、IQueryable集合类型
    LinQ 创建连接、简单增删改查
    webform-AJAX
    JavaScricp(总回顾)
    响应式布局(收藏)
    webform:分页组合查询
    webform:图片水印、验证码制作
    【转】开发人员一定要加入收藏夹的网站
  • 原文地址:https://www.cnblogs.com/DemonHunter/p/13288010.html
Copyright © 2020-2023  润新知