V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
anita233
V2EX  ›  程序员

机器学习分享——反向传播算法推导

  •  
  •   anita233 · 2019-01-25 17:22:46 +08:00 · 1418 次点击
    这是一个创建于 2133 天前的主题,其中的信息可能已经有所发展或是发生改变。

    反向传播(英语:Backpropagation,缩写为 BP )是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

    很多同学在学习深度神经网络的时候,对反向传播的相关细节表示难以理解,国外有一篇技术博客,用例子进行了非常清晰的推导。我们对此进行了汉化,并提供了相关的代码。有兴趣的同学快来看看吧。

    相关代码请见 http://www.momodel.cn:8899/#/explore/5b84e0098fe30b727acaa360?type=app

    原文地址 https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/

    假设,你有这样一个网络层

    在这里插入图片描述 现在对他们赋上初值,如下图:

    在这里插入图片描述

    前向传播过程

    1. 输入层---->隐含层:

    输入层-隐含层

    2. 隐藏层---->输出层:

    隐藏层-输出层

    反向传播过程

    接下来,就可以进行反向传播的计算了

    1. 计算总误差

    计算总误差

    2. 隐含层---->输出层的权值更新:

    权职更新 下面的图可以更直观的看清楚误差是怎样反向传播的

    我们分别计算每个式子的值: 三个算式 最后三者相乘

    三者相乘 看看上面的公式,我们发现: 公式 表达式

    3.隐含层---->隐含层的权值更新:

    在这里插入图片描述 同理,计算出 在这里插入图片描述 两者相加,得到总值

    在这里插入图片描述 在这里插入图片描述

    最后,三者相乘 在这里插入图片描述 在这里插入图片描述

    这样误差反向传播法就完成了,最后我们再把更新的权值重新计算,不停地迭代.

    完整代码( PC 端查看): http://www.momodel.cn:8899/#/explore/5b84e0098fe30b727acaa360?type=app

    ———————————————————————————————— Mo (网址:momodel.cn )是一个支持 Python 的人工智能建模平台,能帮助你快速开发训练并部署 AI 应用。期待你的加入。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3454 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:42 · PVG 08:42 · LAX 16:42 · JFK 19:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.