在神经网络工具箱中,traingdm 函数采用了有动量的梯度下降法,提高了学习速度并增加了算法的可靠性。动量法降低了网络对于误差曲面局部细节的敏感性。梯度下降法在修正权值时,只是按照 k 时刻的负梯度方向修正,并没有考虑到以前积累的经验,即以前时刻的梯度方向,从而常常使学习过程发生振荡,收敛缓慢。为此,有人提出了如下的改进算法:其中,D(k)表示 k 时刻的负梯度,D(k-1)表示 k-1 时刻的负梯度, 为学习率, 是动量因子,范围是0,1。当 =0 时,权值修正只与当前负梯度有关系,当 =1 时,权值修正就完全取决于上一次循环的负梯度了。这种方法所加入的动量项实质上相当于阻尼项,它减少了学习过程的振荡趋势,从而改善了收敛性。动量因子可以通过 net.trainParam.mc 设定,若不设定,缺省值为 0.9。