BP(BackPropagation)神经网络算法详解

本文深入解析BP神经网络的原理及应用,从BP神经网络的历史背景出发,详细阐述其工作原理,包括信号前向传播、误差反向传播及权值更新等关键步骤。并通过示例代码展示了BP神经网络的训练过程。

一、BP神经网络背景

BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络。

在人工神经网络的发展历史上,感知机(Multilayer Perceptron,MLP)网络曾对人工神经网络的发展发挥了极大的作用,但是,随着研究工作的深入,人们发现它还存在不足,例如无法处理非线性问题,从而限制了它的应用。增强网络的分类和识别能力、解决非线性问题的唯一途径是采用多层前馈网络,即在输入层和输出层之间加上隐含层。构成多层前馈感知器网络。
在这里插入图片描述
常见的神经网络所使用的是层级结构,每层神经元与下一神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络通常称为”多层前馈神经网络“(multi-layer feedforward neural networks)。其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出;换言之,输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元。神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值;换言之,神经网络“学”到的东西,蕴涵在连接权与阈值中.

示例神经网络输入层包含4个神经元,隐层包含6个神经元,输出层包含4个盛神经元

从结构上讲,BP网络具有输入层、隐藏层和输出层;从本质上讲,BP算法就是以网络误差平方为目标函数、采用梯度下降法来计算目标函数的最小值。

BP神经网络的训练过程包含3个阶段,首先是信号的前向传播阶段,然后是误差的反向传播阶段,最后是权值和阈值的更新阶段,如此反复迭代,在大于最大迭代次数或者小于目标误差时停止迭代,所得到的就是训练好的BP神经网络模型

知识补充–感知机

感知机(Perception)是神经网络和 SVM(支持向量机)的基础,是一种二分类的线性分类模型。为了形象地说明一下感知机的工作机理,可以用神经网络中的感知机模型来描述一下,下图是维基百科中描述感知机的模型图。

在这里插入图片描述
图中, n维向量[a1,a2,…,an]的转置作为感知机的输入,[w1,w2,…,wn]的转置为输入分量连接到感知机的权重(weifht),b 为偏置(bias),f(.)为激活函数,t 为感知机的输出。t 的数学表示为:
在这里插入图片描述
另外,这里的 f(.) 用的是符号函数:可以看出,符号函数是非连续的,不光滑的,这只是激活函数的一种
在这里插入图片描述

二、BP神经网络原理

给定训练集:D={ (x1,y1),(x2,y2),…,(xm,ym)},xi∈Rd,yi∈RlD=\{(x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m)\},x_i\in\mathbb{R}^d,y_i\in\mathbb{R}^lD={ (x1,y1),(x2,y2),,(xm,ym)},xiRd,yiRl。即输入示例由d个属性描述,输出l维实值向量。在神经网络中,输入神经元与输出神经元的个数便由这两个值确定,即有d个输入神经元,l个输出神经元,而隐层的层数和所包含的神经元个数由实际问题确定,这里假设只有一层,包含q个隐层神经元。
在这里插入图片描述
接下来介绍两个概念,权值和阈值,上文曾说,神经网络训练出的东西,蕴藏在这两个值中,因此这两个概念极为重要。BP神经网络中不同层之间相互连接,信号在不同层之间的传递需要通过带权重的连接进行传递。阈值存在于隐层神经元和输出神经元之中,在本示例神经网络中,隐层神经元接收来自输入层的信号,隐层的每个神经元接收到的总输入值与神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。输出层的神经元也是以同样方式产生神经元的输出。

为便于区分,输入层第i个神经元与隐层第h个神经元之间的连接权vihv_{ih}vih,隐层第h个神经元与输出层第j个神经元之间的连接权为ωhj\omega_{hj}ωhj。隐层第h个神经元的阈值使用γh\gamma_hγh表示,输出层的第j个神经元的阈值使用θj\theta_jθ

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jeremy-Sky

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值