BP神经网络(Back-Propagation Neural Network), 是由Rumelhart和McCelland等科学家提出, 利用输入信号前向传播、误差反馈信号反向传播和梯度下降的原理, 并通过链式求导法则, 获取权值更新变化大小的依据, 使权值可以按照一定的大小进行更新, 达到减小误差、得到理想输出的一种算法. 常用于预测、回归问题的判别, 是目前应用最为广泛的神经网络之一[1].
但传统BP神经网络, 比如: 学习率为固定值, 学习率设置偏大, 容易导致学习震荡甚至发散, 而无法收敛; 学习率设置偏小, 容易导致学习速率慢, 收敛过于缓慢; 对于这种由于学习率人为设定不合理的问题, 不能较好地建立输入输出的非线性映射关系, 而导致BP神经网络难以推广应用[2].
针对BP神经网络学习率的人为设定不合理的问题, 本文提出基于权值变化的自适应学习率模型, 改进了传统神经网络的固定学习率设置不合理的弊端; 并将正态分布结合神经网络的误差函数, 加快收敛速度; 利用梯度上升法, 以保证正态分布的合理应用.
1 神经网络对于三层BP神经网络, 输入X1、X2、X3…Xn, 输出为Y, 隐含层输入权值为
$S = W_{ij}^L \times {X_n} + b_j^L$ | (1) |
激活函数
$f(S_j^L) = X_{ij}^L = \frac{1}{{1 + {{e }^{ - S_j^L}}}}$ | (2) |
$f{(S_j^L)^\prime } = f(S_j^L) \times (1 - f(S_j^L))$ | (3) |
期望输出用d表示, 实际输出为Y; 误差函数err的表达式为[4]:
$err = {\sum {\left\| {d - Y} \right\|} _2}$ | (4) |
式(4)可以看出, 存在理想极小值点err=0, 但实际很难达到该点, 通常是根据误差反向传播与梯度下降法[5], 多次迭代更新权值, 使实际输出Y无限逼近期望输出d, 达到误差err逼近0的目的[6–9].
2 正态分布模型和自适应学习率的BP神经网络 2.1 正态分布模型引入正态分布模型到BP神经网络中, 将误差err作为正态分布函数的自变量, 令正态分布模型的期望u为0, 正态分布函数值取得最大值, 误差err趋近于u, 如图1.
当期望u=0时, 正态分布函数:
$g = \frac{1}{{\delta \times \sqrt {2\pi } }} \times {e ^{ - {{(\frac{{err}}{\delta })}^2}}}$ | (5) |
网络训练目标是取得正态分布函数最大值, 目标达成, 则网络误差为0, 权值更新达到最佳状态.
本文借鉴用于取得局部最小值的梯度下降法(要求误差函数为凹函数)思想, 反向推理, 采用梯度上升法(要求误差函数为凸函数)寻找正态分布的最大值.
以图1和式(5)为例, 解释梯度上升法能取得局部最大值的原理:
$en = err + {g^\prime } \times \alpha $ | (6) |
当
当
当
提出基于权值变化的自适应学习率定义为:
$\beta (t) = \frac{2}{{1 + {{e }^{ - \left| t \right| \times {{10}^n}}}}} - 1$ | (7) |
其中t是BP神经网络的权值变化:
$t = \frac{{\partial err}}{{\partial W_j^L}} = \frac{{\partial err}}{{\partial f(S_j^L)}} \times \frac{{\partial f(S_j^L)}}{{\partial S_j^L}} \times \frac{{\partial S_j^L}}{{\partial W_j^L}}$ | (8) |
图2中n为β的倾斜参数. 由式(7)、式(8)及图2可以得出结论, 当训练接近理想时, 权值的变化t趋于极小的值, 此时学习率β也是一个极小的值, 不利于训练的进行, 于是用
BP神经网路的误差函数
对于现有固定学习率的神经网络, 学习率偏大, 容易产生震荡; 学习率偏小, 收敛速度慢, 网络拟合效果差, 不利于收敛; 本文提出的自适应学习率β, 根据权值变化自适应调整大小, 当权值变化大时, 此时学习率大; 当网络权值变化小, 学习率小(如图2); 在即将达到目标输出时, 误差接近极小值点, 误差曲面的梯度变化小, 即此时权值变化t较小, 从而学习率较小, 更有利于得到网络收敛, 对提高误差的精度, 具有显著的作用.
此外, 在每两个神经元之间, 其连接权值都有对应的学习率; 训练过程中, 每两个神经元的连接权值时刻在变化, 其对应的学习率也变化, 所以训练过程中, 产生数以万计的学习率, 以匹配权值的变化, 适应网络更新[10].
针对现有的几种典型自适应学习率, 与本文的自适应学习率作对比:
1) 自适应全参数学习率Adagrad[11–13]是使学习率参数自适应变化, 把梯度的平方根作为学习率的分母, 训练前期梯度小, 则学习率大, 训练后期, 梯度叠加增大, 学习率小; 由于累加的梯度平方根和越来越大, 学习率会逐渐变小, 最终趋于无限小, 严重影响网络收敛速度.
2) 牛顿法, 用Hessian矩阵替代学习率, 并结合梯度下降法, 虽然可得最优解, 但要存储和计算Hessian矩阵, 增大计算复杂度[14,15].
3) 本文提出基于权值变化的自适应学习率, 利用参数10n调整学习率对权值变化的敏感度, 以至于不存在如Adagrad算法的学习率趋于无限小的弊端; 本文的自适应学习率, 只需把权值更新过程中权值的导数用于学习率中, 计算的复杂度远低于牛顿法[16,17].
2.3 权值更新采用误差反向传播方式更新权值, 使误差e更快的取得极小值.
由式(3)~(式6)、式(8)得误差偏导为:
$\frac{{\partial err}}{{\partial W_j^L}} = f(S_j^L) \times \left( {1 - f(S_j^L)} \right) \times (d - Y) \times {X_n}$ | (9) |
对于基于自适应学习率的网络权值更新, 依梯度下降法得权值更新为:
$Wn_j^L = W_j^L - \beta \times t$ | (10) |
正态分布模型的权值偏导为:
$\frac{{\partial g}}{{\partial W_j^L}} = \frac{{\partial g}}{{\partial err}} \times t$ | (11) |
由式(7)、式(9)、式(11)可得:
$\begin{array}{l}\displaystyle\frac{{\partial g}}{{\partial W_j^L}} = \displaystyle\frac{{ - 1}}{{\delta \times \sqrt {2\pi } }} \times {e^{ - {{\left( \displaystyle\frac{{err}}{\delta }\right)}^2}}} \times \displaystyle\frac{{err}}{{{\delta ^2}}} \times (d - y)\\[13pt]\;\;\;\;\;\;\;\;\;\;\;\;\;\; \times f(S_j^L) \times \left( {1 - f(S_j^L)} \right) \times {X_n}\end{array}$ | (12) |
式(12)可以看出, 网络训练后期, 误差err趋于极小的值, 此时权值变化不明显, 收敛速度慢; 为提高收敛速度, 提出解决方法为:
$err = \operatorname{sgn} (err) \times {e^{\left| {err} \right|}}$ | (13) |
利用式(13)左边的err代替原来的误差err, 其中sgn(err)为符号函数, 定义为:
${\mathop{\rm sgn}} (err) = \left\{\begin{array}{l}1,\;\;\;\;err \ge 0\\ - 1,\;\;err < 0\end{array} \right.$ | (14) |
对于正态分布模型, 依梯度上升法得权值更新:
$Wn_j^L = W_j^L + \alpha \times t$ | (15) |
其中Wn为W更新后的权值.
对于传统模型, 依梯度下降法得权值更新为:
$\begin{array}{l}Wn_j^L = W_j^L - \alpha \times t = W_j^L - \alpha \times \displaystyle\frac{{\partial err}}{{\partial W_j^L}}\\[15pt]\;\;\;\;\;\;\;\; \;= W_j^L - \alpha \times \displaystyle\frac{{\partial err}}{{\partial f(S_j^L)}} \times \displaystyle\frac{{\partial f(S_j^L)}}{{\partial S_j^L}} \times \displaystyle\frac{{\partial S_j^L}}{{\partial W_j^L}}\\[15pt]\;\;\;\;\;\;\;\;\; = W_j^L - \alpha \times (d - y) \times f(S_j^L) \times \left( {1 - f(S_j^L)} \right) \times {x_n}\end{array}$ | (16) |
正态分布模型与自适应学习率结合, 依梯度上升法得权值更新为:
$Wn_j^L = W_j^L + \beta \times \frac{{\partial g}}{{\partial W_j^L}}$ | (17) |
结合式(7)、式(13)、式(14)、式(17)得权值更新为:
$\begin{array}{l}Wn_j^L = W_j^L + \left(\displaystyle\frac{2}{{1 + {{e }^{ - \left| t \right| \times {{10}^n}}}}} - 1\right) \times \displaystyle\frac{1}{{{\delta ^2}}} \times \displaystyle\frac{{ - 1}}{{\delta \times \sqrt {2\pi } }} \\[15pt]\;\;\;\;\;\;\;\;\;\;\;\;\;\times {e ^{ - {{(\frac{{err}}{\delta })}^2}}} \times {\mathop{\rm sgn}} (err) \times {e ^{\left| {err} \right|}}\\[13pt] \;\;\;\;\;\;\;\;\;\;\;\;\;\times f(S_j^L) \times (d - y) \times \left( {1 - f(S_j^L)} \right) \times {X_n}\end{array}$ | (18) |
式(18)为结合梯度上升、正态分布模型、自适应学习率的权值更新方式, 与传统权值更新方式(式(16))相比, 改进后权值变化系数为:
$\begin{array}{l}\left(\displaystyle\frac{2}{{1 + {{e }^{ - \left| t \right| \times {{10}^n}}}}} - 1\right) \times {\mathop{\rm sgn}} (err)\times\displaystyle\frac{1}{{{\delta ^3} \times \sqrt {2\pi } }} \times {e^{\left| {err} \right| - {{(\frac{{err}}{\delta })}^2}}}\end{array}$ | (19) |
令
网络的参数经过归一化后, 训练过程满足:
采用经典XOR问题, 验证改进BP网络; 标准XOR问题与验证XOR问题如表1.
先用标准XOR问题对神经网络训练, 再用接近标准XOR输入对神经网络验证, 比较验证输出与标准输出, 判断优劣.
3.1 带正态分布的固定学习率模型与传统模型对比设定学习率: 0.5, 误差限默认: 0.000 001, 迭代次数默认10 000次, 得基于正态分布模型的BP网络和传统BP网络误差曲线, 如图4.
XOR异或问题的验证输出为表2.
从图4、表2可以看出, 基于正态分布模型改进后的网络, 其误差是传统模型的1/25, 误差明显降低, 且验证结果更接近于标准输出.
分别比较不同学习率和不同训练次数之间的误差, 如表3.
从大量实验可以看出, 基于正态分布模型的BP网络与传统BP网络模型相比, 具有更小的误差或更快的迭代速度. (带*为改进模型实验误差, 带**为传统模型实验误差).
3.2 自适应学率模型与固定学习率模型对比
自适应学习率的倾斜参数n设为3. 以权值变化作为自适应学习率变化依据, 采用梯度下降法更新权值. 得隐含层自适应学习率变化曲线, 图5所示.
可以看出, 学习率是随权值的变化而自适应变化, 每一轮迭代后, 权值变化不同, 导致学习率不同; 训练后期, 权值变化减小, 学习率减小, 自适应学习率相应减小.
对于固定学习率, 采用自适应学习率的算术平均值: 0.4567, 将改进型自适应学习率与固定学习率训练结果作对比, 如图6.
XOR异或问题的验证输出为表4.
可以看出, 自适应学习率模型的误差为固定学习率模型的1/2.2, 并且验证结果更接近标准XOR异或问题.
3.3 自适应学习率的正态分布模型与固定学习率模型对比倾斜系数为3, 可得自适应性学习率的变化与训练次数之间的关系为图7.
固定学习率采用自适应学习率的算术平均值: 0.1459, 与带自适应学习率和正态分布模型的BP神经网络对比, 如图8.
XOR异或问题的验证输出为表5.
从图8、表5可以看出, 改进BP神经网络的误差是传统模型的1/55, 改进的BP神经网络性能明显优于传统模型.
4 结束语本文提出基于权值变化的自适应学习率、结合梯度上升法的正态分布模型, 提升BP神经网络的运算效率; 理论分析了提高收敛速度、降低误差的原理, 通过仿真结果表明, 改进后的BP神经网络在提高收敛速度、降低误差方面具有更好的成效.
[1] |
Li LS, Gan SJ, Yin XD. Feedback recurrent neural network-based embedded vector and its application in topic model. EURASIP Journal on Embedded Systems, 2017(2017): 5. DOI:10.1186/s13639-016-0038-6 |
[2] |
李新叶, 黄腾. 基于多尺度跃层卷积神经网络的精细车型识别. 科学技术与工程, 2017, 17(11): 246-249. DOI:10.3969/j.issn.1671-1815.2017.11.041 |
[3] |
He W, Chen YH, Yin Z. Adaptive neural network control of an uncertain robot with full-state constraints. IEEE Transactions on Cybernetics, 2016, 46(3): 620-629. DOI:10.1109/TCYB.2015.2411285 |
[4] |
Li XW, Cho SJ, Kim ST. Combined use of BP neural network and computational integral imaging reconstruction for optical multiple-image security. Optics Communications, 2014(315): 147-158. DOI:10.1016/j.optcom.2013.11.003 |
[5] |
杨志浩, 李治平. 基于BP神经网络的底水油藏控水压裂选段新方法. 地质与勘探, 2017, 53(4): 818-824. |
[6] |
李奎, 李晓倍, 郑淑梅, 等. 基于BP神经网络的交流接触器剩余电寿命预测. 电工技术学报, 2017, 32(15): 120-127. |
[7] |
Dong RL, Zhao GY. The use of artificial neural network for modeling in vitro rumen methane production using the CNCPS carbohydrate fractions as dietary variables. Livestock Science, 2014(162): 159-167. DOI:10.1016/j.livsci.2013.12.033 |
[8] |
Yu F, Xu XZ. A short-term load forecasting model of natural gas based on optimized genetic algorithm and improved BP neural network. Applied Energy, 2014(134): 102-113. DOI:10.1016/j.apenergy.2014.07.104 |
[9] |
Ahmed R, El Sayed M, Gadsden SA, et al. Automotive internal-combustion-engine fault detection and classification using artificial neural network techniques. IEEE Transactions on Vehicular Technology, 2015, 64(1): 21-33. DOI:10.1109/TVT.2014.2317736 |
[10] |
Jia WK, Zhao DA, Shen T, et al. An optimized classification algorithm by BP neural network based on PLS and HCA. Applied Intelligence, 2015, 43(1): 176-191. DOI:10.1007/s10489-014-0618-x |
[11] |
李雪芝, 周建平, 许燕, 等. 基于L-M算法的BP神经网络预测短电弧加工表面质量模型. 燕山大学学报, 2016, 40(4): 296-300, 318. |
[12] |
赵一鹏, 丁云峰, 姚恺丰. BP神经网络误差修正的电力物资时间序列预测. 计算机系统应用, 2017, 26(10): 196-200. DOI:10.15888/j.cnki.csa.006011 |
[13] |
贾楠, 胡红萍, 白艳萍. 基于BP神经网络的人口预测. 山东理工大学学报(自然科学版), 2011, 25(3): 22-24. |
[14] |
Hernández-Pajares M, Juan JM, Sanz J. Neural network modeling of the ionospheric electron content at global scale using GPS data. Radio Science, 1997, 32(3): 1081-1089. DOI:10.1029/97RS00431 |
[15] |
潘庆先, 董红斌, 韩启龙, 等. 一种基于BP神经网络的属性重要性计算方法. 中国科学技术大学学报, 2017, 47(1): 18-25. |
[16] |
胡燕祝, 李雷远. Kalman滤波-BP神经网络在执行机构自主定位中的应用. 北京邮电大学学报, 2016, 39(6): 110-115. |
[17] |
崔丽辉, 赵安兴, 宁方正. 基于EMD和BP神经网络的雷达体征信号检测算法. 计算机系统应用, 2017, 26(8): 217-222. DOI:10.15888/j.cnki.csa.005920 |