神经网络优化中的病态问题
2016-06-08 18:08
549 查看
与神经网络能够非常好地学习训练数据(如过拟合)相反的是网络根本无法学习训练数据,这通常是由于网络的病态问题(ill-conditioning)导致的。在BP网络的训练过程中ill-conditioning是很常见的。
E的二阶导为∇2E=H,H为赫森矩阵。
这里我们关注H的条件数,因为这个量反映了误差E的曲面特征,如局部最小值、鞍点等。H的条件数为:λmaxλmin,条件数越大,病态问题越严重。
对于这样的网络,训练中存在的问题是对于不同的权重参数,需要的学习率可能不同,对于平坦的误差曲面需要较大的学习率来加速收敛,而这个较大的学习率可能在错误曲面的峡谷区发散(解释及图示见博文的学习率部分),此时单一学习率的方法不能很好地训练模型。
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是将病态问题转化为更容易优化求解的问题,通常通过乘以一个preconditioner 矩阵来完成转化。如下图所示,转化前需要4次迭代收敛到f=1,转化后仅需一次迭代。
2.定常迭代算法(如求解线性方程)与 非定常迭代算法(如CG).详见这里
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
定义
神经网络模型学习的目标为最小化模型输出和正确值之间的误差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