BP神经网络梯度下降法与共轭梯度法

固定学习率的神经网络的梯度下降法和共轭梯度法(FRCG)步骤

  1. 随机给出权值矩阵,,及神经元偏置向量的初始值; 则第个样本输入计算对应的隐含层的输出:

                                                            (1-1)

式中:代表隐含层节点个数序号,本项目中取代表输入层节点个数序号,本项目中取表示权值矩阵中位于列的权值,亦即从第个输入单元到第个隐含层输出的权值;表示隐含层第个单元的输出,隐含层的传递函数为S型正切函数,本项目中取代表第个样本的第个输入值;

计算对应的输出层的输出:                                                              (1-2)

式中:,代表输出层个数序号,本项目中,输出层的传递函数为线性函数,即为常数,本项目中取为1;

计算第()个样本输出层的误差:                     (1-3)

本项目中,故,输出层的整体误差为:

                                                                                  (1-4)

式中为期望输出,即样本输出。

为求出的负梯度-,分别求出,则是由以上所有偏导数组成的向量,为方便理解下式中取本项目中的数值,

           (1-5) 权值矫正                        (1-6) 式中为第次迭代的所有中元素构成的向量,为学习率(Step length),为第次迭代的搜索方向向量

梯度下降法中为负梯度方向即

共轭梯度法中增加了与上一时刻的方向的关系:

                 (1-7)

,其中

二 自动学习率的神经网络的梯度下降法和共轭梯度法(FRCG)步骤

学习率的选择对学习误差的收敛速度有着直接影响,上述方法中采用人为设定的常数作为学习率,如果设定过小会造成收敛速度较慢,如果设定过大还容易出现训练误差震荡的情况。采用启发式的方法每次迭代时更改学习率,将学习率当成自变量,求,此时为常数向量。

将误差用泰勒级数近似展开,在处得到:

            (2-1)

取2阶近似,并求,即

                            (2-2)

            (2-3)

可得学习率                            

                                    本文由Zoro.Z原创上传,未经允许不得转载

See Also