机器学习 您所在的位置:网站首页 病态矩阵的特征值 机器学习

机器学习

2024-04-17 06:34| 来源: 网络整理| 查看: 265

理一理基础优化理论,解释一下深度学习中的一阶梯度下降遇到的病态曲率(pathological curvature)问题。当海森矩阵condition number很大时,一阶梯度下降收敛很慢,无论是对鞍点还是局部极值点而言都不是个好事。

鞍点

时函数不一定抵达局部最优解,还可能是鞍点(见上图),此时还必须根据二阶导数确定。

f′(x)f′'(x)f(x)f′(x)=0f′'(x)>0局部最小值f′(x)=0f′'(x)

其中, W 为可逆矩阵, \Sigma 是对角矩阵,则 A 是可对角化(diagonalizable)的。 W 的列向量 a_{i} 是 A 的特征向量, \Sigma 的主对角线元素为特征向量对应的特征值。亦即:

(1)

于是,

W 中的 n 个特征向量为标准正交基,即满足 W^{T}W=I ,等价于 W^{T}=W^{-1} ,也等价于 W 是Unitary Matrix。

由于对角化定义在方阵上,不适用于一般矩阵。一般矩阵的“对角化”就是大名鼎鼎的奇异值分解了。

奇异值分解

其中, A^{T}A 的特征向量stack为 U , A^{T}A 的特征向量stack为 V ,奇异值矩阵 \Sigma 中对角线元素为 \sigma_{i}=\frac{Avi}{ui} 。

Hessian 矩阵

一阶导数衡量梯度,二阶导数衡量曲率(curvature)。当 f''(x)f''(x)>0 时, f(x) 往下弯曲,一个单变量函数的二阶导数如下图所示。

对于多变量函数 f(x,y,z...) ,它的偏导数就是Hessian矩阵:

并不是一个普通的矩阵,而是一个由函数构成的矩阵。也就是说, Hf 的具体取值只有在给定变量值 (x0,y0,…) 时才能得到。

由于 Hf 是对称的实数矩阵:

所以它一定是可对角化的。对任意实数对称 n×n 的矩阵 H ,有如下结论成立:

证明如下:

由对角化形式 H=QΛQ^{T} 得到 v_{T}Hv=v^{T}QΛQ^{T}v 。定义一个由 v 经过 Q^{T} 转换的向量 y=Q^{T}v ,于是

(2)

将对角矩阵 Λ

定义(1)代入有:

(3)

由于 Q^{-1}=Q^{T},QQ^{T}=I ,所以

(4)

将式(4)代入式(3),有

(5)

将式(2)代入式(5),有

根据定义 v^{T}v=||v||^{2} 并且 ∥v∥=1 ,所以

(6)Condition Number of Hessian

任意可对角化矩阵的Condition Number定义如下:

line search

在使用line search确定学习率的梯度下降中,参数点可看做首先往梯度最陡峭方向的垂线方向移动一个步长,接着往次陡峭方向移动一个步长。比如 2 个参数的损失函数:

将上面的等高线还原为3d的爬山问题,则如下图所示:

3 个参数:

N 个参数:

步长(学习率 ϵ )是通过如下方式估计的。

根据泰勒级数

(7)

这就是梯度下降 x←x−ϵg 与海森矩阵的联系, ϵ 就是学习率。

当 g^{T}Hg≤0 时, ϵ 增加会导致 f(x) 减小。但 ϵ 不能太大,因为 ϵ 越大泰勒级数中的 \approx 越不准。当 g^{T}Hg>0 时,增大 ϵ 不一定导致损失函数增加或减小。此时,对式(7)中的 ϵ 求导,得到最佳学习率为:

(8)

λmax 是 H 的最大特征值。于是海森矩阵决定了最佳学习率的下界。在使用最佳学习率的情况下,将式(8)代入式(7)有

如果海森矩阵的condition number很差(poor,很大)的话,损失函数在最陡峭的方向的梯度相较于其他方向非常小。如果此时恰好离最优值不远,则非常不幸。

梯度下降要么下降的很慢,要么步长太大跑得太远。

如同在一个狭长的峡谷中一样,梯度下降在两边的峭壁上反复碰撞,很少顺着峡谷往谷底走。

如果有种方法能让参数点在峭壁上采取较小步长,慢慢移动到谷底(而不是一下子撞到对面),然后快速顺流而下就好了。一阶梯度下降只考虑一阶梯度,不知道损失函数的曲率是如何变化的,也就是说不知道下一步会不会离开峭壁。解决方法之一是考虑了二阶梯度的牛顿法。

牛顿法

损失函数的泰勒展开近似,以及相应的导数近似为:

令导数为零,找到极值点:

执行一次迭代:

写成梯度下降的形式:

其中,学习率

学习率与曲率成反比,也就是说在曲率大的方向(垂直于峭壁)的学习率小,而在曲率小的方向(平行于峭壁)的学习率大。也就是是说此时的梯度下降在顺流而下的方向的学习率更大,也就更快收敛了。

多动手,多练习,多理解,加油!!!

觉得不错的话,记得帮我 @小象点个赞哟,祝大家都能学有所获!

机器学习问题集锦

在机器学习中,高维数据可以用什么算法?

在机器学习中,高维数据可以用什么算法?



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有