【机器学习基础】Hessian矩阵

本系列为《模式识别与机器学习》的读书笔记。

一,Hessian 矩阵

反向传播也可以⽤来计算误差函数的⼆阶导数,形式为
∂ 2 E ∂ w j i ∂ w k l \frac{\partial^{2}{E}}{\partial{w_{ji}}\partial{w_{kl}}} wjiwkl2E

注意,有时将所有的权值和偏置参数看成⼀个向量(记作 w \boldsymbol{w} w )的元素 w i w_i wi 更⽅便,此时⼆阶导数组成了Hessian矩阵 H \boldsymbol{H} H 的元素 H i j H_{ij} Hij ,其中 i , j ∈ { 1 , … , W } i, j \in \{1,\dots, W\} i,j{ 1,,W} ,且 W W W 是权值和偏置的总数。Hessian矩阵在神经⽹络计算的重要的作⽤,包括:

1)⼀些⽤来训练神经⽹络的⾮线性最优化算法是基于误差曲⾯的⼆阶性质的, 这些性质由Hessian矩阵控制(Bishop and Nabney, 2008);
2)对于训练数据的微⼩改变,Hessian矩阵构成了快速重新训练前馈⽹络的算法的基础 (Bishop, 1991);
3)Hessian矩阵的逆矩阵⽤来鉴别神经⽹络中最不重要的权值,这是⽹络“剪枝”算法的⼀部分 (LeCun et al., 1990);
4)Hessian矩阵是贝叶斯神经⽹络的拉普拉斯近似的核⼼。它的逆矩阵⽤来确定训练过的神经⽹络的预测分布,它的特征值确定了超参数的值,它的⾏列式⽤来计算模型证据。

二,对角近似

对于模式 n n nHessian矩阵的对角线元素可以写成

∂ 2 E n ∂ w j i 2 = ∂ 2 E n ∂ a j 2 z i 2 (5.56) \frac{\partial^{2}{E_n}}{\partial{w_{ji}^{2}}}=\frac{\partial^{2}{E_n}}{\partial{a_{j}^{2}}}z_{i}^{2}\tag{5.56} wji22En=aj22Enzi2(5.56)

从而,反向传播⽅程的形式为
∂ 2 E n ∂ a j 2 = h ′ ( a j ) 2 ∑ k ∑ k ′ w k j w k ′ j ∂ 2 E n ∂ a k ∂ a k ′ + h ′ ′ ( a j ) ∑ k w k j ∂ E n ∂ a k (5.57) \frac{\partial^{2}{E_n}}{\partial{a_{j}^{2}}}=h^{\prime}(a_j)^2\sum_{k}\sum_{k^{\prime}}w_{kj}w_{k^{\prime}j}\frac{\partial^{2}{E_n}}{\partial{a_k}\partial{a_{k^{\prime}}}}+h^{\prime\prime}(a_j)\sum_{k}w_{kj}\frac{\partial{E_n}}{\partial{a_k}}\tag{5.57} aj22En=h(aj)2kkwkjwkjakak2En+h(aj)kwkjakEn(5.57)
如果忽略⼆阶导数中⾮对角线元素, 那么有(Becker and LeCun, 1989; LeCun et al., 1990)
∂ 2 E n ∂ a j 2 = h ′ ( a j ) 2 ∑ k w k j 2 ∂ 2 E n ∂ a k 2 + h ′ ′ ( a j ) ∑ k w k j ∂ E n ∂ a k (5.58) \frac{\partial^{2}{E_n}}{\partial{a_{j}^{2}}}=h^{\prime}(a_j)^2\sum_{k}w_{kj}^{2}\frac{\partial^{2}{E_n}}{\partial{a_k^{2}}}+h^{\prime\prime}(a_j)\sum_{k}w_{kj}\frac{\partial{E_n}}{\partial{a_k}}\tag{5.58} aj22En=h(aj)2kwkj2ak22En+h(aj)kwkjakEn(5.58)

三,外积近似

当神经⽹络应⽤于回归问题时,通常使⽤下⾯形式的平⽅和误差函数
E = 1 2 ∑ n = 1 N ( y n − t n ) 2 (5.59) E=\frac{1}{2}\sum_{n=1}^{N}(y_n-t_n)^2\tag{5.59} E=21n=1N(yntn)2(5.59)
考虑单⼀输出的情形(推⼴到多个输出是很直接的),可以把Hessian矩阵写成下⾯的形式
H = ∇ ∇ E = ∑ n = 1 N ∇ y n ( ∇ y n ) T + ∑ n = 1 N ( y n − t n ) ∇ ∇ y n (5.60) \boldsymbol{H}=\nabla\nabla{E}=\sum_{n=1}^{N}\nabla{y_n}(\nabla{y_n})^{T}+\sum_{n=1}^{N}(y_n-t_n)\nabla\nabla{y_n}\tag{5.60} H=E=n=1Ny

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值