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

一、病态矩阵

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

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

例如:

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

                                                     

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

                                                    

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

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

 

二、条件数

判定矩阵是否病态以及衡量矩阵的病态程度通常是看矩阵A的条件数K(A)的大小

            K(A)=\frac{\left \| A^{-1} \right \|}{\left \| A \right \|}

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

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

H=\bigtriangledown ^{2}E为海森矩阵。

这里我们关注H的条件数,因为这个量反映了误差E的曲面特征,如局部最小值、鞍点等。H的条件数为:

                  \left | \frac{\lambda _{max}}{\lambda _{min}}\right |

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

如果网络的H的条件数很大,则网络是病态的(ill-conditioning),可能呈现如下形式。

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

参考:

《深度学习》 Ian Goodfellow.

 

 

 

  • 11
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值