反向传播

现在,我们准备好训练神经网络了。为此,我们将使用一种方法,叫做反向传播。简而言之,反向传播将包括:

进行前向反馈运算。

将模型的输出与期望的输出进行比较。

计算误差。

向后运行前向反馈运算(反向传播),将误差分散到每个权重上。

更新权重,并获得更好的模型。

继续此流程,直到获得很好的模型。

听起来比较复杂,实际上要简单些。

我们看到,上边的蓝点被错误的分到红色区域,这时,我们问红色点,需要我们为你干什么,蓝色点会说希望直线离我更近些。

我们的做法就像从误差之巅下来,高度将是误差函数E(W),我们计算误差函数的梯度,就像在问点希望模型做什么,当我们朝着梯度的相反方向下山,我们就减少了误差,从山上下来,这样就得到了新的误差E(W'),以及一个误差更小的新模型W',意味着我们得到了离点更近的新直线。我们继续这一流程,以最小化该误差。这就是单个感知器的反向传播过程。

多层感知器更复杂,不过基本也是这个流程:

我们再看看多层级感知器中的前向反馈,传入点的坐标是(x1,x2)标签是 y=1,它对应的是隐藏层的线性模型,然后通过层级间的的结合,这个点的最终结果通过整个非线性模型的输出层得到,该点是蓝色的概率等于该点在最终模型中的位置。

反向传播

和之前一样,查看一下这个模型得到的误差,这个模型不太好,因为它预测这个点是红色,但实际这个点是蓝色,我们问该点:“为了分类正确,你希望该模型怎么做?”, 这个点说“我希望这个蓝色区域离我近点”,然蓝色区域靠近点是什么意思?我们看看隐藏层中的两个线性模型,哪个模型效果更好?

似乎上面这个模型的分类的结果更糟,而下面的模型分类正确,因此我们希望来自下面这个模型的影响增大,来自上边的模型影响缩小,我们要做的是减少上边模型的权重,并增大来自下面这个模型的权重,那么,我们得到的模型看起来,更像下面的模型,而不是上面的模型,我们可以更加深入地解释,我们可以从各个线性模型触发,问这个点,“为了更好地对你进行分类,这些模型该怎么做?”,该点说“上面这个模型对我的分类不正确,我想这条线离我近些,第二个模型对我分类正确,所以我想这条线离我远点”,模型据此更新权重,假设它将增加下面模型的权重而减少上面的模型权重,在更新了所有的权重后,隐藏层中所有模型的预测更加准确,输出层中的模型的预测也更为准确,注意这里我们省略了偏差,在现实中你更新权重也会更新偏差。

更新权重后:

反向传播数学

后面的几个视频将深入讲解数学知识。如果不想听也没有关系,现有的很多代码库和深度学习框架比如 Keras,能够很好并且很简单地完成这个任务。如果你想立即开始训练网络,请转到下个部分。但是如果你喜欢计算各种导数,那么我们深入了解下吧!

链式法则

我们需要复习下链式法则,以便计算导数。

计算 sigmoid 函数的导数

回想一下,sigmoid 函数有一个完美的导数,我们可以在下面的计算中看到。这将使我们的反向传播步骤更加简洁。

为者常成,行者常至

python 反传播_Python:反向传播 (六十八)相关推荐

  1. Python实现深度学习系列之【正向传播和反向传播】

    前言 在了解深度学习框架之前,我们需要自己去理解甚至去实现一个网络学习和调参的过程,进而理解深度学习的机理: 为此,博主这里提供了一个自己编写的一个例子,带领大家理解一下网络学习的正向传播和反向传播的 ...

  2. (二十四) 手推BP神经网络的前向传播和反向传播

    手推BP神经网络的前向传播和反向传播 一.基本术语 1.监督学习与非监督学习 Supervised Learning有监督式学习: 输入的数据被称为训练数据,一个模型需要通过一个训练过程,在这个过程中 ...

  3. 花书+吴恩达深度学习(十三)卷积神经网络 CNN 之运算过程(前向传播、反向传播)

    目录 0. 前言 1. 单层卷积网络 2. 各参数维度 3. CNN 前向传播反向传播 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十)卷积神经网络 ...

  4. 深度神经网络(DNN)正向传播与反向传播推导(通俗易懂)

    一.前言 我在之前的博客里面介绍过浅层的神经网络,现在就从浅层神经网络出发,介绍深度神经网络(DNN)的正向传播和反向传播.希望网友们看本博客之前需要对神经网络有个简单的了解,或者可以看博客初探神经网 ...

  5. 前向传播、反向传播与感知器

    前向传播.反向传播与感知器 设计思路 前向传播 前向传播是计算输出值 y ^ = W T x + b \hat y=W^Tx+b y^​=WTx+b与损失函数 L o s s ( y ^ , y ) ...

  6. 机器学习概念 — 监督学习、无监督学习、半监督学习、强化学习、欠拟合、过拟合、后向传播、损失和优化函数、计算图、正向传播、反向传播

    1. 监督学习和无监督学习 监督学习 ( Supervised Learning ) 和无监督学习 ( Unsupervised Learning ) 是在机器学习中经常被提及的两个重要的学习方法. ...

  7. 3.3 前向传播与反向传播-机器学习笔记-斯坦福吴恩达教授

    前向传播与反向传播 前向传播过程(Forward Propagation) 神经网络每层都包含有若干神经元,层间的神经元通过权值矩阵 ΘlΘ^lΘl 连接.一次信息传递过程可以如下描述: 第 j 层神 ...

  8. (pytorch-深度学习系列)正向传播与反向传播-学习笔记

    正向传播与反向传播 1. 正向传播 正向传播是指对神经网络沿着从输入层到输出层的顺序,依次计算并存储模型的中间变量(包括输出). 假设输入是一个特征为x∈Rd\boldsymbol{x} \in \m ...

  9. 003-神经网络基础-最优化,前向传播,反向传播

    最优化: 包括前向传播和反向传播 前向传播: 由w和x到损失函数loss的过程叫做前向传播 反向传播: 根据梯度下降的概念,找到最优的w的过程叫做反向传播. 做一件什么事情呢? 根据前向传播的w得到的 ...

  10. 深度学习基础笔记——前向传播与反向传播

    相关申明及相关参考: 体系学习地址 主要学习笔记地址 由于是文章阅读整合,依据个人情况标注排版, 不确定算不算转载,主要学习围绕AI浩的五万字总结,深度学习基础 如有侵权,请联系删除. 1前向传播与反 ...

最新文章

  1. PyTorch 笔记(03)— Tensor 数据类型分类(默认数据类型、CPU tensor、GPU tensor、CPU 和 GPU 之间的转换、数据类型之间转换)
  2. 「自己开发直播」rtmp-nginx-module实现直播状态、观看人数控制
  3. 网上预约挂号系统代码_速看!全国民族运动会部分竞赛项目观众网上预约系统正式上线了...
  4. Bumblebee微服务网关之并发限制
  5. spring shell_Spring Shell项目发布
  6. mat 和asmatrix的区别_R语言的稀疏矩阵太大可能就不能用as.matrix了
  7. Struts2之OGNL表达式语言
  8. 4. Layout overview
  9. Selenium2学习笔记一
  10. Win10 DirectShow
  11. OCR文本检测模型—CTPN
  12. u盘启动linux出现grub,开机出现grub rescue报错如何解决 通用pe工具箱u盘启动盘制作工具教你...
  13. Axure8.0使用教程
  14. 阿里云OSS图片缩放处理
  15. 中国大数据论坛第八期教育成都沙龙成功
  16. 私募股权和VC有什么区别
  17. AI芯片产业生态及竞争格局:英伟达、谷歌、BAT实力拆解对比
  18. Android Studio 类微信界面的制作
  19. 微信小程序怎么设置全局背景颜色?
  20. WIN7 | 网络正常,但网页打不开 | 远程计算机或设备不接受连接

热门文章

  1. jQuery实现清空table表格除首行外的所有数据
  2. Mac Pro 使用 ll、la、l等ls的别名命令
  3. LocalBroadcastManager分析
  4. 使用docker实现半自动化代码自动部署与回滚
  5. Apache Drill
  6. 4.CND技术详解---集群服务与负载均衡技术
  7. php的四种常见运行方式
  8. php中array_merge()与$arr1+$arr2两个数组直接相加的区别
  9. MariaDB用户管理
  10. 应用安全_WTS-WAF绕过