您的位置:首页 > 理论基础 > 计算机网络

神经网络优化中的病态问题

2016-06-08 18:08 549 查看
与神经网络能够非常好地学习训练数据(如过拟合)相反的是网络根本无法学习训练数据,这通常是由于网络的病态问题(ill-conditioning)导致的。在BP网络的训练过程中ill-conditioning是很常见的。

定义

神经网络模型学习的目标为最小化模型输出和正确值之间的误差E(W)={ek}.E的一阶导为:∇E=2JTe,其中J为雅可比矩阵。



E的二阶导为∇2E=H,H为赫森矩阵。

这里我们关注H的条件数,因为这个量反映了误差E的曲面特征,如局部最小值、鞍点等。H的条件数为:λmaxλmin,条件数越大,病态问题越严重。

表现

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



对于这样的网络,训练中存在的问题是对于不同的权重参数,需要的学习率可能不同,对于平坦的误差曲面需要较大的学习率来加速收敛,而这个较大的学习率可能在错误曲面的峡谷区发散(解释及图示见博文的学习率部分),此时单一学习率的方法不能很好地训练模型。

2.鞍点。H中的值不确定,可能即是正的也是负的,此时条件数不存在。

3.H是奇异的,即一些优化方法是没有定义的。

优化方法



1.条件数较大的ill-conditioning.

RPROP, Quickprop, conjugate gradients和quasi-Newton 方法都能以自适应的方式应对ill-conditioned 误差曲面,由于这些方法都以负梯度方向为搜索方向,所以同样可以用于well-conditioned网络。

2.未定义的ill-conditioning

Newton, Gauss-Newton和 Levenberg-Marquardt methods能通过一次迭代找到二次误差曲面的最小值,但是对于H为奇异矩阵的情景, 这些解法可能是没有定义的。神经网络的目的在于模型预测的准确性,而不是为了计算权重,Levenberg-Marquardt 方法可以在优化权重值没有定义的ill-conditioning情况下,产生准确的预测。

3.鞍点

对于包含多个非线性隐含层的神经网络,误差曲面不再是二次的。Hessian矩阵和条件数在训练过程中将不断变化,误差曲面也将包含很多鞍点,对于鞍点对应的Hessian矩阵的值是不确定的,可能同时具有正负两个特征值,所以条件数就不存在,对于这种情况二阶的优化方法的不再适用,在这些地方的一阶方法的学习效果可能比较好。

precondition

网络的病态问题通常与训练数据、网络结构以及网络的初始化权重有关。常见的问题是输入训练数据过大、网络层结构大小不一、初始权重过大或过小。所以在网络训练之前需要进行precondition。针对这些问题的precondition技术详见这里以及这里

数学上,precondition是将病态问题转化为更容易优化求解的问题,通常通过乘以一个preconditioner 矩阵来完成转化。如下图所示,转化前需要4次迭代收敛到f=1,转化后仅需一次迭代。



附录

1.上面的介绍是对神经网络通用的,其实对于不同的网络类型其优化函数的性质不同,论文[1]针对BP网络以最小二乘为目标函数进行了优化。

2.定常迭代算法(如求解线性方程)与 非定常迭代算法(如CG).详见这里

参考

1.Saarinen S, Bramley R, Cybenko G. Ill-conditioning in neural network training problems[J]. SIAM Journal on Scientific Computing, 1993, 14(3): 693-714.

2.Van Der Smagt P, Hirzinger G. Solving the ill-conditioning in neural network learning[M]//Neural networks: tricks of the trade. Springer Berlin Heidelberg, 1998: 193-206.

3.ftp://ftp.sas.com/pub/neural/illcond/illcond.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息