反向传播BP学习算法Gradient Descent的推导过程

 更新时间:2022年05月10日 14:06:27   作者:Cyril_KI  
这篇文章主要为大家介绍了反向传播BP学习算法-Gradient Descent的推导过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

BP算法是适用于多层神经网络的一种算法,它是建立在梯度下降法的基础上的。本文着重推导怎样利用梯度下降法来minimise Loss Function。

给出多层神经网络的示意图:

1.定义Loss Function

每一个输出都对应一个损失函数L,将所有L加起来就是total loss。

那么每一个L该如何定义呢?这里还是采用了交叉熵,如下所示:

最终Total Loss的表达式如下:

2.Gradient Descent

L对应了一个参数,即Network parameters θ(w1,w2…b1,b2…),那么Gradient Descent就是求出参数 θ∗来minimise Loss Function,即:

梯度下降的具体步骤为:

图源:李宏毅机器学习讲稿

3.求偏微分

从上图可以看出,这里难点主要是求偏微分,由于L是所有损失之和,因此我们只需要对其中一个损失求偏微分,最后再求和即可。

先抽取一个简单的神经元来解释:

因为我们并不知道后面到底有多少层,也不知道情况到底有多复杂,我们不妨先取一种最简单的情况,如下所示:

4.反向传播

l对两个z的偏导我们假设是已知的,并且在这里是作为输入,三角形结构可以理解为一个乘法运算电路,其放大系数为 σ′(z)。但是在实际情况中,l对两个z的偏导是未知的。假设神经网络最终的结构就是如上图所示,那么我们的问题已经解决了:

其中:

但是假如该神经元不是最后一层,我们又该如何呢?比如又多了一层,如下所示:

原理跟上面类似,如下所示:

那假设我们再加一层呢?再加两层呢?再加三层呢?。。。,情况还是一样的,还是先求l对最后一层z的导数,乘以权重相加后最后再乘上 σ′(z′′,z′′′,...)即可。

最后给一个实例:

它的反向传播图长这样:

我们不难发现,这种计算方式很清楚明了地体现了“反向传播”四个字。好了,目标达成!!

5.总结

以上就是反向传播BP学习算法-Gradient Descent的推导过程的详细内容,更多关于BP反向传播Gradient Descent推导的资料请关注脚本之家其它相关文章!

相关文章

  • 简单谈谈Git中的回滚操作

    简单谈谈Git中的回滚操作

    大家在日常开发中,经常会遇到需要将代码切回到之前的某个版本的情况,有可能是需要将代码回滚,也有可能需要查看之前的某个实现。遇到这样的情况,该怎么做呢?下面通过这篇文章来学习下Git中的回滚操作,有需要的可以参考借鉴。
    2016-09-09
  • 30个提高Web程序执行效率的好经验分享

    30个提高Web程序执行效率的好经验分享

    30个提高Web程序执行效率的好经验分享,需要的朋友可以参考下。
    2011-10-10
  • 基于 Serverless +企业微信打造 nCoV 疫情监控小助手

    基于 Serverless +企业微信打造 nCoV 疫情监控小助手

    这篇文章主要介绍了基于 Serverless +企业微信打造 nCoV 疫情监控小助手,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 详细讲解计算机网络——应用层

    详细讲解计算机网络——应用层

    这不同类型的网络应用有不同的通信规则,因此应用层协议是多种多样的,比如DNS、FTP、Telnet、SMTP、HTTP、RIP、NFS等协议都是用于解决其各自的一类问题
    2021-08-08
  • 老生常谈Session和Cookie之间区别与联系(必看篇)

    老生常谈Session和Cookie之间区别与联系(必看篇)

    下面小编就为大家分享一篇老生常谈Session和Cookie之间区别与联系,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • 编写高质量代码的30条黄金守则(首选隐式类型转换)

    编写高质量代码的30条黄金守则(首选隐式类型转换)

    这篇文章主要介绍了编写高质量代码的30条黄金守则(首选隐式类型转换),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • IDEA升级后Git拉取和推送的标签消失的解决方法

    IDEA升级后Git拉取和推送的标签消失的解决方法

    本文主要介绍了IDEA升级后Git拉取和推送的标签消失的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • VS2019如何查看类图的方法实现

    VS2019如何查看类图的方法实现

    这篇文章主要介绍了VS2019如何查看类图的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Git ssh 配置及使用方法

    Git ssh 配置及使用方法

    这篇文章主要介绍了Git ssh 配置及使用方法,需要的朋友可以参考下
    2017-10-10
  • yum的基本用法和实例(推荐)

    yum的基本用法和实例(推荐)

    这篇文章主要介绍了Linux(centos8)下的yum的基本用法和实例,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论