DIGITCW
电波
卫士
Radio Wave Guard
BP 神经网络基本原理
袁冰清,程 功,郑柳刚
(国家无线电监测中心上海监测站,上海 201419)
摘要 :本文主要介绍误差反向传播算法的理论推导,理解如何利用 BP 算法、梯度下降法找到神经网络参数的最优解。
关键词 :机器学习 ;神经网络 ;误差逆传播
doi :10.3969/J.ISSN.1672-7274.2018.08.017
中图分类号 :TP39
文章编码 :1672-7274(2018)08-0028-02
文献标示码 :A
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 theoretical derivation of error back propagation,and understands 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 Propagation
1 引言
机器学习中,神经网络算法可以说是当下使用最广泛的算法。
神经网络的结构模仿生物神经网络,生物神经网络中的每个神经
元与其他神经元相连,当它“兴奋”时,向下一级相连的神经元
发送化学物质,改变这些神经元的电位 ;如果某神经元的电位超
过一个阈值,则被激活,否则不被激活。其中误差逆传播(error
BackPropagation)算法是神经网络中最有代表性的算法,也是迄
今为止使用最多、最成功的算法。
误差逆传播算法,简称 BP 网络算法,而一般说到 BP 网络
算法时,默认指用 BP 算法训练的多层前馈神经网络。BP 神经网
络模型的拓扑结构包括输入层(input)、隐含层(hide layer)和
输出层(Output layer)。本文就以最简单的 BP 神经网络,只包
含一层隐含层为例来推导理解 BP 原理。
2 BP 内涵
我们知道在神经网络信号的正向传(forward-propagation)中,
神经元接收到来自其他神经元的输入信号,这些信号乘以权重累
加到神经元接收的总输入值上,随后与当前神经元的阈值进行比
较,然后通过激活函数处理,产生神经元的输出。理想的激活函
数是阶跃函数 :
,“0”对应神经元抑制,“1”对
应神经元兴奋。然而阶跃函数的缺点是不连续,不可导,所用常
,sigmoid 函数及其导数
用 sigmoid 函数 :
如图1 所示。使用 sigmoid 函数作为激活函数时 BP 网络输入与输
出关系 :
输入 :
输出 :
因此 BP 的核心思想就是 :通过调整各神经元之间的权值,
将误差由隐含层向输入层逐层反传,也就是先实现信号的正向传
播到误差的反向传播过程。所以 BP 算法的核心步骤如下 :
(1)求得在特定输入下实际输出与理想输出的平方误差函数
(误差函数或者叫代价函数)。(2)利用误差函数对神经网络中的
阈值以及连接权值进行求导,求导原则就是导数的“链式求导”
法则。(3)根据梯度下降算法,对极小值进行逼近,当满足条件
时,跳出循环。
3 有监督的 BP 模型训练
3.1 BP 训练思想
有监督的 BP 模型训练表示我们有一个训练集,它包括了 :
input X 和它被期望拥有的输出 output Y。所以对于当前的一个
BP 模型,我们能够获得它针对于训练集的误差。正向传播 :输
入样本—输入层—各隐层—输出层 ;若输出层的实际输出与期望
的输出不符,则误差反传 :误差表示—修正各层神经元的权值 ;
直到网络输出的误差减少到可以接受的程度,或者进行到预先设
定的学习次数为止。
3.2 具体理论推导
以最简单的 BP 神经网络为例来推导原理,如图 2 所示 :假
设网络结构输入层有 n 个神经元,隐含层有 p 个神经元,输出层
有 q 个神经元。
图2 BP网络结构图
定义变量如下 :
输入向量 :x=(x1,x2,…,xn)
隐含层输入向量 :hi=(hi1,hi2,…,hip)
隐含层输出向量 :ho=(ho1,ho2,…,hop)
输出层输入向量 :yi=(yi1,yi2,…,yiq)
输出层输出向量 :yo=(yo1,yo2,…,yoq)
图1 sigmoid函数及其导数
作者简介 : 袁冰清,女,工程师,2012 年毕业于上海大学物理系,同年进入国家无线电监测中心上海监测站工作,主要从事短波无线电监测工作。
程 功,男,助理工程师,2017 年毕业于东华大学信息科学与技术学院,同年进入国家无线电监测中心上海监测站工作,主要从事短波无线电监测工作。
郑柳刚,男,高级工程师。2004 年毕业于上海海事大学,同年进入国家无线电监测中心上海监测站工作,主要从事无线电监测工作。
28 DIGITCW2018.08
Radio Wave Guard
电波卫士
DCW
期望输出向量 :d=(d1,d2,…,dq)
输入层与中间层的连接权值 :wih
隐含层与输出层的连续权值 :who
隐含层各神经元的阈值 :bh
输出层各神经元的阈值 :bo
样本数据个数 :k=1,2…m
激活函数 :f(.)
误差函数 :
第一步,网络初始化 - 给各连接值分别赋值,在区间(-1,1)
内的随机数,设定误差函数 e,给定计算精度值 ε 和最大学习次
数 M。
第二步,随机选取第 K 个输入样本及对应期望输出 :
第三步,计算隐含层各个神经元的输入和输出 :
第四步,利用网络期望输出和实际输出,计算误差函数对输
出层的各神经元的偏导数
,根据复合函数求导法则 :
的输出来修正连接权值 who(k):
第七步,利用隐含层各神经元的 δh(k)和输入层各神经元
的输入修正连接权值。
特别说明,最终公式中的 μ、η 代表学习率,为了调整步长,
防止数值过大造成不收敛,无限逼近最优解。
第八步,计算全局误差 :
第九步,判断网络误差是否满足要求,当误差达到预设精度
或者学习次数大于设定的最大次数,则结束算法。否则,选取下
一个学习样本及对应的期望输出,返回到第三步,进入下一轮学
习。
3.3 BP 算法的最优解
实际上 BP 算法的最终目的是找到最优解,即是累积误差最
小的解。通过算法的优化,可以找到最优解,在机器学习中最常
用的优化算法就是梯度下降法。但是在实际过程中,会出现多个
局部最优解(对应梯度为零的地方),如图3 展示的可视化图形中,
有一个局部最优解,一个全局最优解。通常情况下找不到全局最
优解,能找到局部最优解也不错,也足够优秀地完成任务。
令
令
图3 全局最小与局部极小
4 结束语
通过上述文章对 BP 算法的理论推导,我们对神经网络的参
数及优化有了一定的了解,希望能给利用神经网络或者深度学习
算法解决无线电监测工作中的问题的同事提供一点思路与想法。
■
参考文献
[1] 周志华 . 机器学习 [M]. 北京 :清华大学出版社,2016.
[2] alg-fl ody.https ://blog.csdn.net/daigualu/article/details/73746337.
[3] wentingtu.http ://www.cnblogs.com/wentingtu/archive/2012/06/05/2536425.
html.
即
第六步,利用输出层各神经元的 δo(k)和隐含层各神经元
[4] 赵申剑,黎彧君,符天凡,李凯(译). 深度学习(《Deep learning》中文译
本)[M]. 北京 :人民邮电出版社,2017.
(上接第 4 页)行检验,因此不会因极个别时元的个别卫星的载
波相位观测值噪声稍大而拒绝正确的整周模糊度组。当然,这一
类方法也有其缺点,即当整周模糊度搜索失败时,难以确定导致
失败的原因。例如,由于伪距和载波相位测量的统计特性是先验
给定的,如果伪距测量噪声比正常噪声大得多,整周模糊度搜索
则有可能失败。而且,由于在解算过程中所有的伪距和载波相位
观测值是混合在一起而共同求解的,因此难于确定导致搜索失败
的具体原因,但是,模糊度协方差法,仍可认为是最佳的 OTF
方法,至少对短距离的应用是如此的。■
参考文献
[1] 刘基余 .GPS 卫星导航定位原理与方法(第二版). 北京 :科学出版社,
2008.6.
[2] Lachapelle,G.,GPS Theory and Applications,University of Calgary,Fall
2000,PP.310.
[3] 刘基余,陈小明,李德仁等 .GPS Kinematic Carrier Phase Measurements for
Aerial Photogrammetry,ISPRS Journal of Photogrammetry and Remote
Sensing,Vol.51,No.5,1996,P.230~242.
数字通信世界
2018.08
29