⼀、BP神经⽹络的概念
BP神经⽹络是⼀种多层的前馈神经⽹络,其主要的特点是:信号是前向传播的,⽽误差是反向传播的。具体来说,对于如下的只含⼀个隐层的神经⽹络模型:
BP神经⽹络的过程主要分为两个阶段,第⼀阶段是信号的前向传播,从输⼊层经过隐含层,最后到达输出层;第⼆阶段是误差的反向传播,从输出层到隐含层,最后到输⼊层,依次调节隐含层到输出层的权重和偏置,输⼊层到隐含层的权重和偏置。 3层BP神经⽹络
⼆、BP神经⽹络流程
官学清
神经⽹络的基本组成单元是神经元。神经元的通⽤模型如图所⽰,其中常⽤的激活函数有阈值函数、sigmoid函数和双曲正切函数。神经元模型
神经元的输出为:
神经元输出
神经⽹络是将多个神经元按⼀定规则联结在⼀起⽽形成的⽹络,如图 所⽰。
神经⽹络⽰意图
从图 可以看出,⼀个神经⽹络包括输⼊层、隐含层(中间层)和输出层。输⼊层神经元个数与输⼊数据的维数相同,输出层神经元个数与需要拟合的数据个数相同,隐含层神经元个数与层数就需要设计者⾃⼰根据⼀些规则和⽬标来设定。在深度学习出现之前,隐含层的层数通常为⼀层,即通常使⽤的神经⽹络是3层⽹络。
三、BP⽹络输⼊与输出关系
赖兹
BP⽹络采⽤的传递函数是⾮线性变换函数——Sigmoid函数(⼜称S函数)。其特点是函数本⾝及其导数都是连续的,因⽽在处理上⼗分⽅便。为什么要选择这个函数,等下在介绍BP⽹络的学习算法的时候会进⾏进⼀步的介绍。S函数有单极性S型函数和双极性S型函数两种,单极性S型函数定义如下: f(x)=1/1+e−x
其函数曲线如图所⽰:
人机对弈单极性S曲线
双极性S型函数:f(x)=1−e−x/1+e−x
双极性S曲线使⽤S型激活函数时,输⼊:
输⼊
motionjpeg输出:
输出常艳近况
输出的导数:
导数
使⽤S型激活函数时,BP⽹络的输出及其导数图形:
图形
根据S激活函数的图形:
net在 -5~0 的时候导数的值为正,且导数的值逐渐增⼤,说明此时f(x)在逐渐变⼤ 且 变⼤的速度越来越快
说明此时f(x)在逐渐变⼤ 且 变⼤的速度越来越快
说明此时f(x)在逐渐变⼤ 但是 变⼤的速度越来越慢net在 0~5 的时候导数的值为正,且导数的值逐渐
减⼩,说明此时f(x)在逐渐变⼤ 但是 变⼤的速度越来越慢对神经⽹络进⾏训练,我们应该尽量将net的值尽量控制在收敛⽐较快的范围内。
四、揭秘有监督的BP神经⽹络学习过程:
流程图黄军导航
初始化和样本随机选取
计算隐含层相关数据
误差计算1