BP神经网络梯度下降法与共轭梯度法
固定学习率的神经网络的梯度下降法和共轭梯度法(FRCG)步骤
- 随机给出权值矩阵,,及神经元偏置向量,的初始值; 则第个样本输入计算对应的隐含层的输出:
(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原创上传,未经允许不得转载