bp网络的学习过程,深度学习算法BP神经网络详细公式推导

对网络的讨论关于深度学习算法BP神经网络详细公式推导和bp网络的学习过程这样的热门话题,大家是怎么看呢,下面让小编为各位详细讲解一下吧!


所谓的神经网络是目前使用最广泛的定义。“神经网络是由适应性强的简单单元组成的广泛并行、互连的网络,其组织可以模拟生物神经系统与现实世界反应的相互作用”。


BP反向传播神经网络是根据误差反向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。


神经元模型


神经网络最基本的单元是神经元模型。在生物神经网络的原始机制中,每个神经元通常具有多个树突、一个轴突和一个细胞体,其中长而有功能的树突只有一个。它们用于将神经冲动传递到其他神经元,轴突用于将神经冲动传递到其他神经元。当来自树突或细胞体的神经冲动刺激神经元时,神经元会将兴奋传递给其他神经元。神经元的生物结构如下图所示。


今天仍在使用的“MP神经元模型”就是这种结构的抽象,也称为“阈值逻辑单元”,其中树突是输入,每个神经元接收其他神经元传输的n个信号。它们通过加权连接(也称为连接权重)传递到细胞体。细胞体分为两部分,前者计算总输入值,后者首先计算总输入值与神经元阈值之间的差值,然后处理激活函数以生成轴突的输出。到其他神经元。MP神经元模型如下图所示。


与线性分类非常相似,神经元模型最理想的激活函数也是阶跃函数。也就是说,它将神经元的输入值与其阈值之间的差值映射为输出值1或0。如果差值大于0,则输出1对应于激励;如果差值小于0,则输出0对应于抑制。但由于阶跃函数不连续且不平滑,M-P神经元模型采用sigmoid函数对其进行近似。sigmoid函数将大范围内变化的输入值压缩为0,1的输出。由于它是一个值的范围,因此也称为挤压函数。


神经网络是通过连接特定层次结构中的多个神经元来创建的。例如,如果我们成对连接10个神经元,则需要学习100个参数。如果我们将每个神经元视为一个函数,那么整个神经网络就是通过与这些函数的交互来构建的。它们相互重叠。


多前馈神经网络由三部分组成输入层、隐藏层和输出层。可能有隐藏层,也可能没有,但一定有输入层和输出层。没有隐藏层的神经网络是线性的,因此它们只能处理线性可分离的题。没有隐藏层且输出层只有一个单元的神经网络相当于线性逻辑模型。


感知器和多层网络


感知器是由两层神经元组成的简单模型,但只有输出层是M-P神经元。即只有输出层神经元进行激活函数处理,而输入层只接受并转发外部信号。进入输出层,没有任何激活函数。这样一来,感知器的概念就和之前的线性回归基本一样了。两者都通过对属性进行加权、与其他常量求和,然后使用sigmoid函数压缩输出值来解决分类题。0-1之间。不同的是,感知器的输出层需要多个神经元来实现多分类题。同时,两个模型使用的参数估计方法也有很大不同。


给定一个训练集,我们可以学习感知器的所有n+1个参数。阈值可以被认为是固定输入值-1的虚拟节点的权重n+1。也就是说,假设我们有一个输入层神经元,其输入xn+1=-1及其权重固定。为n+1,因此将权重和阈值整合到权重学习中。简单感知器的结构如下图所示。


感知器权重的学习规则如下对于训练样本,输出值是在样本进入感知器训练时生成的。如果输出值与样本的实际标签不匹配,则对感知器进行调整。如果加权激活函数是阶跃函数,则调整方法类似于逻辑回归。


感知器通过一一输入样本来更新权重。首先,设置初始权重并一一输入样本数据。如果输出值与实际标记相同,则继续输入下一个样本。更新权重后,我们再一一检查,直到每个样本数据的输出值与实际标签相同。很容易看出。正如决策树模型总能分离出所有训练数据一样,感知器模型总能正确预测训练数据的所有样本,而感知器模型很容易造成过拟合题。


由于感知器模型只有一层功能神经元,其能力非常有限,只能处理线性可分离的题。对于这些题,感知器的学习过程可靠地收敛,因此它总能找到合适的权重。


BP神经网络算法


从上面可以看出,神经网络的学习主要涉及到权重和阈值。在多层网络中,使用上述简单感知器BP神经网络算法的权重调整规则是不够的。误差反向传播算法正是用于学习多层网络。BP神经网络算法是为前馈神经网络设计的,是迄今为止最成功的神经网络学习算法。



一般来说,任何复杂度的连续函数都可以以任意精度逼近,只要它包含一个具有足够神经元的隐藏层。因此,下面以训练单个隐藏层的前馈神经网络为例介绍如下算法。BP神经网络。


上图显示了单隐层前馈神经网络的拓扑结构。BP神经网络算法还利用梯度下降,向单样本均方误差的负斜率方向调整权重。我们可以看到,BP算法首先将误差反向传播到隐藏层神经元,调整隐藏层到输出层的连接权值以及输出层神经元的阈值,然后根据均方调整输入。隐藏层神经元的错误。该层到隐藏层的连接权重以及隐藏层神经元的阈值。BP算法的基本推导过程与感知器相同,从隐藏层到输出层的权值调整规则的推导过程如下。


BP算法的最终目标是最小化整个训练集D上的累积误差。


学习率控制逆梯度方向下降的步长。步长太大会导致衰减太快,步长太小会导致收敛太快。通常,设置为01,分配权重时,输出层和隐藏层的学习率有时设置不同。BP算法的基本流程如下。


BP算法的更新规则是根据每个样本的预测值与实际类别标签之间的均方误差来调整权重。也就是说,BP算法的每次更新仅针对单个样本。BP算法的最终目标是最小化整个训练集D上的累积误差。


BP神经网络MATLAB实现的基本步骤


1.数据标准化


2.数据分类。主要涉及扰乱数据的顺序并提取常规训练数据、变量数据和测试数据。


3.构建神经网络,包括设置网络层数和设置隐藏层的传递函数。


4.指定训练参数进行训练。这一步非常重要。


5.训练完成后,您可以调用训练结果,输入测试数据,然后进行测试。


6.对数据进行非规范化


7.误差分析、预测或分类结果、绘制图纸等。


应用领域


该题的Matlab代码


P=[022860129200720015920133500733011590094000522013450009001260036190069001828;


020900094701393013870255800900007710088200393014300012601670024500050801328;


004420088001147005630334701150014530042901818003780009202251015160085800670;


026030171500702027110149101330009680191102545008710006001793010020078900909;


036900222200562051570187201614014250150601310005000007800348004510070700880;


003590114901230054600197701248006240083201640010020005901503018370129500700;


017590234701829018110292200655007740227302056009250007801852035010168002668;


007240190901340024090284200450008240106401909015860011601698036440271802494;


026340225801165011540107400657006100262302588011550005000978015110227303220]';


T=[100;100;100;


010;010;010;


001;001;001]';


输入向量的最大值和最小值


阈值=[01;01;01;01;01;01;01;01;01;01;01;01;01;01;01];


net=newffthreshold,[313],'trainlm';


训练数量为1000,训练目标为001,学习率为01。


nettrainParamepochs=1000;


nettrainParamgoal=001;


LPlr=01;


净=训练网,P,T;


测试数据与训练数据不匹配。


P_test=[021010095001298013590260101001007530089000389014510012801590024520051201319;


025930180000711028010150101298010010189102531008750005801803009920080201002;


025990223501201011710110200683006210259702602011670004801002015210228103205]';


Y=simnet,P_test


计算训练误差resP106


t=[100;


010;


001];


误差=Y-t


解析度=标准误差


除非特别注明,本站所有文字均为原创文章,作者:admin

No Comment

留言

电子邮件地址不会被公开。 必填项已用*标注

感谢你的留言。。。