Digital Communication World

BP神经网络基本原理

袁冰清,程 功,郑柳刚(国家无线电监测中心上­海监测站,上海 201419)

- 袁冰清,程 功,郑柳刚

摘要:本文主要介绍误差反向­传播算法的理论推导,理解如何利用BP算法、梯度下降法找到神经网­络参数的最优解。关键词:机器学习;神经网络;误差逆传播d o I:10.3969/J.ISSN.1672-7274.2018.08.017

中图分类号:TP39 文献标示码:A 文章编码:1672-7274(2018)08-0049-03

Basic Principle of BP Neural Networks

Yuan Bingqing, Cheng Gong, Zheng Liugang

(The State Radio Monitoring Centre Shanghai Station, Shanghai, 201419)

Abstract: This paper mainly introduces the theoretica­l derivation of error back propagatio­n, and understand­s how to get the optimal solution of the neural networks parameters by the BP algorithm and gradient descent method.

Keywords: Machine Learning; Neural Networks; Error Back Propagatio­n

1 引言

机器学习中,神经网络算法可以说是­当下使用最广泛的算法。神经网络的结构模仿生­物神经网络,生物神经网络中的每个­神经元与其他神经元相­连,当它“兴奋”时,向下一级相连的神经元­发送化学物质,改变这些神经元的电位;如果某神经元的电位超­过一个阈值,则被激活,否则不被激活。其

中误差逆传播(error Backpropag­ation)算法是神经网络中最有­代表性的算法,也是迄今为止使用最多、最成功的算法。

误差逆传播算法,简称BP网络算法,而一般说到BP网络算­法时,默认指用BP算法训练­的多层前馈神经网络。BP神经网络模型的拓­扑结构包括输入层(input)、隐含层(hide layer)和输出层(output layer)。本文就以最简单的bp­神经网络,只包含一层隐含层为例­来推导理解BP原理。

2 BP内涵

我们知道在神经网络信­号的正向传(forwardpro­pagation)中,神经元接收到来自其他­神经元的输入信号,这些信号乘以权重累加­到神经元接收的总输入­值上,随后与当前神经元的阈­值进行比较,然后通过激活函数处理,产生神经元的输出。理想

的激活函数是阶跃函数: ,“0”对应神经元抑制,“1”对应神经元兴奋。然而阶跃函数的缺点是­不连续,不可导,所用常用sigmoi­d函数:sigmoid(x)=1/(1+e-x ),sigmoid函数及­其导数如图1所示。使用sigmoid函­数作为激活函数时bp­网络输入与输出关系:输入:net=x1w1+x2w2+䦤+xnwn输出:y=f(net)=1/(1+e-net )

因此BP的核心思想就­是:通过调整各神经元之间­的权值,将误差由隐含层向输入­层逐层反传,也就是先实现信号的正­向传播到误差的反向传­播过

程。所以BP算法的核心步­骤如下:

(1)求得在特定输入下实际­输出与理想输出的平方­误差函数(误差函数或者叫代价函­数)。(2)利

用误差函数对神经网络­中的阈值以及连接权值­进行

求导,求导原则就是导数的“链式求导”法则。(3)

根据梯度下降算法,对极小值进行逼近,当满足条件时,跳出循环。

3 有监督的BP模型训练

3.1 BP训练思想

有监督的BP模型训练­表示我们有一个训练集,它包括了:input X和它被期望拥有的输­出output Y。所以对于当前的一个B­P模型,我们能够获得它针对于­训练集的误差。正向传播:输入样本——输入层——各隐层——输出层;若输出层的实际输出与­期望的输出不符,则误差反传:误差表示——修正各层神经元的权值;直到网络输出的误差减­少到可以接受的程度,或者进行到预先设定的­学习次数为止。

3.2 具体理论推导

以最简单的BP神经网­络为例来推导原理,如图2所示:假设网络结构输入层有­n个神经元,隐含层有p个神经元,输出层有q个神经元。 定义变量如下:输入向量:x=(x1,x2,ă,xn)隐含层输入向量:hi=(hi1,hi2,ă,hip)隐含层输出向量:ho=(ho1,ho2,ă,hop)输出层输入向量:yi=(yi1,yi2,ă,yiq)输出层输出向量:yo=(yo1,yo2,ă,yoq)期望输出向量:d=(d1,d2,ă,dq)输入层与中间层的连接­权值:wih隐含层与输出层­的连续权值:who隐含层各神经元­的阈值:bh输出层各神经元的­阈值:bo样本数据个数:k=1,2ăm激活函数:f(.)

误差函数:e= [do (k)-yoo(k)]2

第一步,网络初始化-给各连接值分别赋值,在区间(-1,1)内的随机数,设定误差函数e,给定计算精度值ε和最­大学习次数m。

第二步,随机选取第K个输入样­本及对应期望

输出: x(k)=(x1(k),x2(k),ă,xn(k)) d(k)=(d1(k),d2(k),ă,dq(k))

第三步,计算隐含层各个神经元­的输入和输出: hih(k)=∑ wihxi (k)-bh, h=1,2,ă,p hoh(k)=f(hih(k)), h=1,2,ă,p yio(k)=∑ whohoh(k)-bo,o=1,2,ă,q yoo(k)=f(yio(k)), o=1,2,ă,q

特别说明,最终公式中的μ、η代表学习率,为了调整步长,防止数值过大造成不收­敛,无限逼近最优解。

第八步,计算全局误差:

第九步,判断网络误差是否满足­要求,当误差达到预设精度或­者学习次数大于设定的­最大次数,则结束算法。否则,选取下一个学习样本及­对应的期望输出,返回到第三步,进入下一轮学习。

3.3 BP算法的最优解

实际上BP算法的最终­目的是找到最优解,即是

累积误差最小的解。通过算法的优化,可以找到最优解,在机器学习中最常用的­优化算法就是梯度下降­法。但是在实际过程中,会出现多个局部最优解

(对应梯度为零的地方),如图3展示的可视化图­形

中,有一个局部最优解,一个全局最优解。通常情况下找不到全局­最优解,能找到局部最优解也不­错,也足够优秀地完成任务。

4 结束语

通过上述文章对BP算­法的理论推导,我们对神经网络的参数­及优化有了一定的了解,希望能给利用神经网络­或者深度学习算法解决­无线电监测工作中的问­题的同事提供一点思路­与想法。■

参考文献

[1] 周志华.机器学习[M].北京:清华大学出版社,2016.

[2] alg-flody.https://blog.csdn.net/daigualu/article/details/73746337.

[3] wentingtu. http://www.cnblogs.com/wentingtu/archive/2012/06/05/2536425.html [4] 赵申剑,黎彧君,符天凡,李凯(译).深度学习(《Deep learning》

中文译本)[M].北京:人民邮电出版社,2017.

 ??  ?? 图1 sigmoid函数及­其导数
图1 sigmoid函数及­其导数
 ??  ?? 图2 BP网络结构图
图2 BP网络结构图
 ??  ??
 ??  ??
 ??  ?? 图3全局最小与局部极­小
图3全局最小与局部极­小
 ??  ??
 ??  ??

Newspapers in Chinese (Simplified)

Newspapers from China