神经网络优化:病态矩阵与条件数

一、病态矩阵

求解方程组时如果对数据进行较小的扰动,则得出的结果具有很大波动,这样的矩阵称为病态矩阵。

病态矩阵是一种特殊矩阵。指条件数很大的非奇异矩阵。病态矩阵的逆和以其为系数矩阵的方程组的界对微小扰动十分敏感,对数值求解会带来很大困难。

例如:

现在有线性方程组: Ax = b, 解方程

                                                     神经网络优化:病态矩阵与条件数

很容易得到解为: x1 = -100, x2 = -200. 如果在样本采集时存在一个微小的误差,比如,将 A 矩阵的系数 400 改变成 401: 

                                                   神经网络优化:病态矩阵与条件数 

则得到一个截然不同的解: x1 = 40000, x2 = 79800.

当解集 x 对 A 和 b 的系数高度敏感,那么这样的方程组就是病态的 (ill-conditioned).

 

二、条件数

判定矩阵是否病态以及衡量矩阵的病态程度通常是看矩阵A的条件数神经网络优化:病态矩阵与条件数的大小

            神经网络优化:病态矩阵与条件数

 K(A) 称为 A 的条件数,它很大时,称 A 为病态,否则称良态; K(A) 愈大, A 的病态程度就愈严重。

三、神经网络中的具有病态条件的Hessian矩阵

神经网络优化:病态矩阵与条件数为海森矩阵。

这里我们关注神经网络优化:病态矩阵与条件数的条件数,因为这个量反映了误差神经网络优化:病态矩阵与条件数的曲面特征,如局部最小值、鞍点等。神经网络优化:病态矩阵与条件数的条件数为:

                  神经网络优化:病态矩阵与条件数

条件数越大,病态问题越严重。

如果网络的神经网络优化:病态矩阵与条件数的条件数很大,则网络是病态的(ill-conditioning),可能呈现如下形式。

神经网络优化:病态矩阵与条件数

当海森条件数很差时,梯度下降法也会表现的很差。这是因为一个方向上倒数增加的很快,而另一个方向上增加的很慢。梯度下降不知道倒数的这种变化,所以它不知道应该优先探索倒数长期为负的方向,病态条件也导致很难选择合适的步长。步长必须足够小,以免冲过最小而向具有较强正曲率的方向上升。这通常意味着步长太小,以至于在其他较小曲率的方向上进展不明显。

参考:

《深度学习》 Ian Goodfellow.