NLP学习01--BP神经网络

一.神经元模型

如下图是深度学习(deep learning)中神经元的模型,神经元是进行计算的基本单元。
在这里插入图片描述
其中x1、x2 和x3为输入,+1为偏置
神经元进行计算的数学公式可表示为:
在这里插入图片描述上式中,F、w、b分别为激活函数,权重,偏置;
其中,激活函数F有多重,常用激活函数有sigmoid,Relu和tanh等
在这里插入图片描述

二.BP神经网络

2.1 BP神经网络原理

BP神经网络的工作原理图如下所示:
在这里插入图片描述
最左侧为输入,输入的右侧为神经元组成的各层,分别为输入层、隐含层、输出层。
其中输入层的误差可用数学公式表达为:
在这里插入图片描述隐含层的误差可用数学公式表达为:
在这里插入图片描述输出层的误差可用数学公式表达为:
在这里插入图片描述

2.2 BP神经网络应用示例

如下图是一个BP神经网络的模型,其中l1和l2为输入,这两者和偏置子b1构成输入层,w1到w12为权重,h1、h2、h3和偏置子b2构成隐含层,o1和o2构成输出层。

在这里插入图片描述

1)对权重和偏置赋初值

在起始阶段,首先使用随机函数对权重w和偏置b任意赋值,本例中对w1到w12和b1、b2分别赋以下初值。

w      0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65
b      0.35,0.65

2)根据输入求出输出

隐含层中h1的输入为:
在这里插入图片描述在这里插入图片描述h1的输出为:
在这里插入图片描述同理可得h2和h3的输出分别为:
在这里插入图片描述在这里插入图片描述o1的输入为:
在这里插入图片描述在这里插入图片描述o1的输出为:
在这里插入图片描述同理可计算出o2的输出为:
在这里插入图片描述分别计算o1和o2的误差及总误差:
在这里插入图片描述总误差的值为:
在这里插入图片描述

3)进行反向计算

在完成以上计算之后,根据求出的结果的误差,进行反向计算,采用偏导的方式,求各权重对总误差的影响,并根据影响的大小更新权重w和偏置b
以隐含层偏置子w7和输入层偏置子w1两个偏置子为例,列举反向计算的方法
在这里插入图片描述

求w7对总误差的影响值:

由于无法直接计算w7对总误差的偏导数(没有体现w7和总误差关系的数学公式),所以利用BP神经网络,将w7对总误差的计算分为三部分的乘积,分别为o1的输出对总误差的偏导,o1的输入对o1的输出的偏导,w7对o1的输入的偏导
在这里插入图片描述根据o1的输出和总误差的数学方程,求出其偏导值为:
在这里插入图片描述根据o1的输入和o1的输出的数学方程,求出其偏导值为:
在这里插入图片描述根据w7和o1的输入的数学方程,求出其偏导值为:
在这里插入图片描述
在这里插入图片描述由以上的运算,可得出w7对总误差的偏导
在这里插入图片描述

求w1对总误差的影响值:

由于w1是输入层的偏置子,所以其计算要比隐含层偏置子w7更麻烦一些。
如下所示,将w1对总误差的偏导进行分解,然后依次求出各部分的值
在这里插入图片描述h1的输出对o1的误差的偏导的求解方法,同理可得h1的输出对o2的误差的偏导:
在这里插入图片描述
在这里插入图片描述经过运算求出w1对总误差的偏导:
在这里插入图片描述更新w1的值,新的w1的值为原来的w1减去w1对总误差的偏导乘以η(η是一个可变参数,其取值在0到1之间,η的值越大收敛速度越快,但得出的效果会变差)
在这里插入图片描述根据以上方法将w1到w12依次求出:
在这里插入图片描述

4)多次迭代

重复以上过程,多次迭代,以下为10次、100次、1000次迭代后的o1和o2的输出,迭代次数越多,效果越好
在这里插入图片描述在迭代过程中,权值w也在不断地变化
首次迭代前给w1到w12的赋值:
在这里插入图片描述1000次迭代过后,w1到w12的值:
在这里插入图片描述

发布了169 篇原创文章 · 获赞 150 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/eagleuniversityeye/article/details/91127963