深度学习第二次培训(BP神经网络)

发布于:2022-12-31 ⋅ 阅读:(374) ⋅ 点赞:(0)

感知机

感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别。

感知机接收多个输入信号, 输出一个信号。 这里所说的“信号”可以想象成电流或河 流那样具备“流动性”的东西。 像电流流过导线, 向前方输送电子一样, 感知机的信 号也会形成流, 向前方输送信息。

感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。

以上图来说感知机分为三层,图中从左至右依次分为输入层,隐含层和输出层,其中,x1,x2是输入信号,y是输出信号,w1,w2是权重,o是“神经元”,或者叫做节点

BP神经网络

BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是应用最广泛的神经网络模型之一。 BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。

BP神经网络的核心思想:学习过程由信号的正向传播和误差的反向传播两个过程组成。
正向传播:
将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。
反向计算:

允许来自代价函数的信息通过网络向后流动,以便计算梯度。反向计算是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数(代价函数)

BP神经网络计算流程:

 

计算过程中如果隐含层中的神经元节点设置过少,结果可能造成神经网络的训练过程收敛 变慢或者不收敛。如果隐层中节点过多,模型的预测精度会提高,但收敛速度慢,普遍性会减弱。故需要对隐层节点的设置进行规定,遵循以下式子

 BP神经网络的推导:

首先进行赋值

正向传播

输入层到隐含层:

计算h1的输入加权和:

neth1 =  w1* i1 + w2 * i2 + b1 * 1

          = 0.15*0.05+0.2*0.1+0.35*1=0.3775

输出:

outh1 = 1/1+e^-0.3775 = 0.593269992

同理,计算出h2的输出 o2 

outh2 = 0.596884378

隐含层到输出层:

如图所示,所得结果与实际值0.01和0.99还相差很远,所以需要反向计算,更新权值,重新计算输出 

 反向计算

计算总误差:

所用式子如下

分别计算o1和o2的误差,总误差为两者之和:

Eo1 = 1/2(0.01-0.75136507)^2 = 0.274811083

同理 Eo2 = 0.023560026

 故

 隐含层到输出层的更新:

以w5为例,如果想要知道w5对整体的误差产生了多少影响,可以用整体误差啊对w5求偏导得到:

 

 

 

最后得 =0.149780716

同理更新权值

 

接着重新计算,得到数字0.015912196和0.984065734。与原输入(0.01,0.99)接近,说明效果很好。若不理想,只需重新迭代直到接近理想值即可

 

本文含有隐藏内容,请 开通VIP 后查看