学习李宏毅2021 Machine Learning。课程链接:链接
内容:
Hessian Matrix
Critical Point: local minima/ maxima or saddle point
L是关于 θ \theta θ的函数,在 θ ′ \theta^{\prime} θ′附近某点 θ \theta θ,L可以展开为
第二项中的 g g g是梯度,用来更新函数L的参数 θ \theta θ。
θ
:
=
θ
−
η
∗
g
\theta := \theta - \eta * g
θ:=θ−η∗g
如果 g 为0,L的参数
θ
\theta
θ 就无法更新。
也就是说,在当前点 θ ′ \theta^{\prime} θ′处,L无法继续下降,损失函数L卡在了一个critical point(可能是局部最小,也可能是局部最大,也可能是saddle point鞍点)
如何解决? 此时分析泰勒展开的第三项H
H称为Hessain矩阵
在具有 θ 1 , θ 2 , . . . θ n \theta_1, \theta_2,... \theta_n θ1,θ2,...θn 一共n个特征的Loss函数中,在某个点处的Hessian的第 ij 项写为:
H i , j = ∂ 2 L ∂ θ i ∂ θ j H_{i,j} = \frac{\partial^2 L}{\partial \theta_i \partial \theta_j} Hi,j=∂θi∂θj∂2L
i,j 取值为 0,1,2,…,n
Hessian矩阵有什么用?
分析它是否是一个正定矩阵,可以帮助我们判断是否可以继续更新 θ \theta θ,下降损失函数L。
如果H不是正定的,那么存在H的某个特征向量 v,使得下图第二项为负。这时, L ( θ ) L(\theta) L(θ) 比当前 L ( θ ′ ) L(\theta^{\prime}) L(θ′)更小,让损失函数朝着v的方向更新即可。
H的几种情况:
总结一下:
当Loss下不去的时候,Loss不一定是卡在local minima,也可能是卡在saddle point,可以根据Hessian矩阵判断是否可以继续更新model。