训练神经网络的方法如下所示:
(1) traingd:基本梯度下降法,收敛速度比较慢。
(2) traingda:自适应学习率的梯度下降法
(3) traingdm:带有动量项的梯度下降法, 通常要比traingd 速度快。
(4) traingdx: 带有动量项的自适应学习算法, 速度要比traingdm 快。
(5) trainrp: 弹性BP 算法, 具有收敛速度快和占用内存小的优点。
(6) trainscg: 归一化共轭梯度法
(7) trainbfg: BFGS- 拟牛顿法
(8) traino ss: 一步分割法,为共轭梯度法和拟牛顿法的一种折衷方法。
(9) trainlm: Levenberg-Marquardt算法,对中等规模的网络来说, 是速度最快的一种训练算法, 其缺点是占用内存较大。 (10) trainbr: 贝叶斯规则法,对Levenberg-Marquardt算法进行修改, 以使网络的泛化能力更好,同时降低了确定最优网络结构的难度。
其中常用的包括梯度下降法、牛顿法、拟牛顿法以及共轭梯度法
一、 梯度下降法(Gradient descent)
1、梯度下降方法简介:它是最简单的训练算法。它仅需要用到梯度向量的信息,因此属于一阶算法。 梯度下降方法有一个严重的弊端,该方法需要进行很多次迭代运算。当神经网络模型非常庞大、包含上千个参数时,梯度下降方法是我们推荐的算法。
2、梯度下降的算法推导: