一、病态矩阵
求解方程组时如果对数据进行较小的扰动,则得出的结果具有很大波动,这样的矩阵称为病态矩阵。
病态矩阵是一种特殊矩阵。指条件数很大的非奇异矩阵。病态矩阵的逆和以其为系数矩阵的方程组的界对微小扰动十分敏感,对数值求解会带来很大困难。
例如:
现在有线性方程组: 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.