深度学习入门之BP神经网络(二)上
时间: 2021-03-19作者:安服优

前言
上一篇文章”深度学习入门之BP神经网络(一)“中,我们说到了深度学习的发展历史,以及单个神经元是如何工作,顺便也带出了这两个公式:


AI 人工智能


本章中,我们将带大家实际推导一个简单的BP神经网络。
PS:本篇文章略长,请一定要耐心耐心读完,由于文章过长,所以分为上下两篇,上篇主要是前向传播,下篇是误差的逆向传播。

一个3层BP神经网络
先对照一个简单的3层BP神经网络的结构介绍几个基本的概念:
1)BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络【来自百度百科】。按照误差逆向传播算法训练的多层前馈神经网络指的是BP神经网络将输入信号值作为层放入设定好的网络结构中,经隐含层前向传播给输出层,然后根据输出层信号值与想要得到的值之间的误差逆向传播,不断根据误差值不断修正每一个权重值,直到误差值和实际要求的值的差距达到要求为止。


AI 人工智能


2)输入层:待训练的样本数据,在上图中是IN 1和IN 2;
3)隐含层:设定的网络结构,在上图中是HID 1,HID 2,HID 3;
4)输出层:输出的结果值,在上图中是OUT 1;
5)关于N层神经网络,N具体指总的层数还是单独隐含层数要根据原作者的设计确定,并不统一。本篇文章中3层指的是包含输入层、隐含层、输出层的总层数;
  那么我们就从头开始推导BP神经网络的计算迭代过程,在下面的例子中,我们输入了两个参数(输入层神经元IN 1:0.8和IN 2:0.6),而我们希望通过整个网络之后,得到的值是输出层的神经元的值(OUT 1:0.2)。

前向传播
在上一篇文章中,我们说过单个神经元接收上一个神经元的信号值乘以每个信号值的权重(这里解释一下权重,也就是每个信号值X乘以的那个系数W(W即weight))。


AI 人工智能


那么对于隐含层中的HID 1来说,他的输入X来源于IN 1和IN 2,那他的Yin,Yout:
AI 人工智能


其中,Yin=X1W11+X2W12也可以写成矩阵的乘法的形式


AI 人工智能


其中的下角标, i表示第几个隐含层神经元,j表示跟他有关系的第j个上一层神经元(这里是输入层)。
在Yout=f(Yin)中,f(x)函数的设计一般会根据需要变更不同的函数,我们目前假设使用的函数是f(x)=x也就相当于:


AI 人工智能


同理,我们可以把HID 2 , HID 3的值都计算出来,


AI 人工智能


AI 人工智能


这里,我们的每一个隐含层神经元的输出值就确认了,而隐含层神经元的输出值是输出层神经元接收到的信号值,那么我们可以得出OUT1的输出值:


AI 人工智能


AI 人工智能


对比,我们目标要得到的输出值0.2,相当于多了0.051,那么我们的要根据这个误差对于一路计算来的权重作以更新,具体更新的方法,就是梯度下降。
有关于梯度下降的逆向传播方法及原理,我们将在下一篇继续讲解。
先别走开,我们把之前的隐含层和输出层的权重整合到一个矩阵中,保存下来:


AI 人工智能


本期关于深度学习的分享就到这里了,我们下期再见!