MO

发现意外,创造可能

MO Blog


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

反向传播(英语: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 应用。期待你的加入。

最近的文章

第一期机器学习开发者沙龙邀请函

Mo 人工智能俱乐部正式向坐标杭州的小伙伴们发出诚挚的邀请:自3月16日(本周六)开始,我们将举办两周一次的机器学习开发者沙龙,与各位志同道合的小伙伴就 AI 技术进行学习与探讨,为大家揭开人工智能的神秘面纱。机器学习开发者沙龙时间: 03月16日(周六)14:00-17:00地点: 杭州市上城区定安路126号西湖创意谷会议室费用: 免费主办方: Mo 人工智能俱乐部专题计划内容安排: 活动安排 进行专题视频学习和实践操作。 阶段学习结束后,开展个人心得分享与讨论,如对公式推导和扩...…

继续阅读
更早的文章

机器学习分享——手把手带你写一个GAN

GAN今天让我们从这几方面来探索: GAN能用来做什么 GAN的原理 GAN的代码实现用途GAN自2014年诞生以来, 就一直备受关注, 著名的应用也随即产出, 比如比较著名的GAN的应用有Pix2Pix,CycleGAN等, 大家也将它用于各个地方。 缺失/模糊像素的补充 图片修复 ……我觉得还有一个比较重要的用途, 很多人都会缺少数据集, 那么就通过GAN去生成数据集了, 通过调节部分参数来进行数据集的产生的相似度。原理GAN的基本原理其实非常简单,这里以生成图片为例进行说...…

继续阅读