神经网络之BP算法

本文介绍了反向传播算法在神经网络中的应用,包括前馈神经网络、卷积神经网络和循环神经网络。通过详细阐述反向传播的原理、步骤以及其在损失函数优化中的作用,帮助读者理解如何通过梯度下降更新参数。此外,还讨论了BP算法的局限性和改进方法,如动量法和自适应学习率调整。
摘要由CSDN通过智能技术生成

     最近在学习《Deep Learning》这本书,书中在前馈神经网络、全连接神经网络以及卷积神经网络等内容中,都有提到反向传播算法,这一算法可以说是神经网络中求解参数比较核心的部分了。为了更好地理解神经网络工作的原理,认识反向传播在神经网络中的运算机制,综合《Deep Learning》书中的有关部分并且学习了b站讲解神经网络的相关视频及一些有关于BP算法的博客文章之后,笔者将自己的理解写下来,希望能为初学者理解反向传播算法起到一定的帮助。在此,对已为BP算法提供了学习思路的各位前辈表示敬意,特别是帮助我思考和理解BP算法的三位博主。

   关于反向传播算法,我们首先需要清楚它的应用途径;其次,做一些神经网络知识的前期储备;之后,学习BP算法的工作原理;最后,认识到BP算法的局限性,了解改进方法。因此,本文亦从这4个点来讲解,划分为6部分:

1、 反向传播算法应用领域

   在前馈神经网络中,反向传播算法应用于计算损失函数的梯度;在卷积神经网络(CNN)中,反向传播算法应用于全连接层的梯度计算;在循环神经网络(DNN)中,反向传播算法是基于时间计算梯度

2、准备知识--反向传播(BP)算法应用于神经网络

  此处主要介绍前馈神经网络中的BP算法,其思路亦可以应用于其他的神经网络。神经网络是一个由输入层、隐藏层、输出层三部分组成的网络,如图(1):数据从输入层,经过权重值和偏置项的线性变换处理,再通过激活层,得到隐藏层的输出,也即下一层的输入;隐藏层到输出层之间是,经过权重值和偏置项的线性变换,之后通过激活层,得到输出层。

 

   图2表示一个网络层为2的前馈神经网络:一个隐藏层,一个输出层;隐藏单元为5,记输入层到隐藏层的权重值为W,偏置项为b1,激活函数为g1,隐藏层到输出层的权重值为V,偏置项为b2,激活函数为g2,则图2的模型即为:。图2是一个比较简单的神经网络,通常,我们见到的神经网络,是具有多个隐藏层的网络,如图3:这是一个隐藏层个数为N个,每层隐藏单元数为5的神经网络。注意,一般深层神经网络,增加的是隐藏层数,不增加或减少隐藏层的隐藏单元数。

                                      

    从输入层到隐藏层再到输出层,这一向前传递的过程,我们称之为前向传播。前向传播过程,往往是我们设定模型的过程。

3、BP算法原理及其实施步骤

    BP算法的核心思想:使用梯度下降来搜索可能的权向量的假设空间,以找到最佳的拟合样例的权向量。具体而言,即利用损失函数,每次向损失函数负梯度方向移动,直到损失函数取得最小值。

    或者说,反向传播算法,是根据损失函数,求出损失函数关于每一层的权值及偏置项的偏导数,也称为梯度,用该值更新初始的权值和偏置项,一直更新到损失函数取得最小值或是设置的迭代次数完成为止。以此来计算神经网络中的最佳的参数。

    由此,正式介绍BP算法前,我们需要知道前向传播过程,确定网络的设计。为此先设定一个只有一层的神经网络,作为讲解,如图4.

                                                    

   设定:从输入层数据为X,输入层到隐藏层参数为w,b1,隐藏层到输出层参数为v,b2,激活函数用为g1,g2。于是模型设定为:

输入层到隐藏层:

                                                                                                          (3-1)

隐藏层到输出层:

                                                                                                           (3-2)

模型:

                                                                      (3-3)

损失函数:

                                                                                                                             (3-4)

其中:

                               

以上述的模型设定为例,下面介绍BP算法步骤,通过BP算法的步骤,了解反向传播,是如何实现模型的参数更新。

实施步骤:

    1)初始化网络中的权值和偏置项,分别记为

                                                                                                                  (3-5)

    2)激活前向传播,得到各层输出和损失函数的期望值

                                                                                                               (3-6)

   其中,表示参数集合,

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值