Skip to content

Latest commit

 

History

History
65 lines (33 loc) · 5.22 KB

visual-explanation-backpropagation-algorithm-neural-networks.md

File metadata and controls

65 lines (33 loc) · 5.22 KB

神经网络反向传播算法的可视化解释

原文:www.kdnuggets.com/2016/06/visual-explanation-backpropagation-algorithm-neural-networks.html

假设我们真的喜欢登山,并为了增加一点额外的挑战,我们这次蒙上眼睛,以便看不到我们的位置,也不知道何时完成了我们的“目标”,即到达山顶。

由于我们看不到前方的路径,我们让直觉引导我们:假设山顶是山的“最高”点,我们认为最陡峭的路径最有效地将我们引向山顶。

我们通过迭代地“感知”周围并朝着最陡峭的上升方向迈出一步来解决这个挑战——我们称之为“梯度上升”。但如果我们到达一个无法进一步上升的点怎么办?即,每个方向都向下?此时,我们可能已经到达了山顶,但也可能只是到达了一个较小的高原……我们并不知道。从本质上讲,这只是梯度上升优化的一个类比(基本上是通过梯度下降最小化成本函数的对立面)。然而,这并非特指反向传播,而只是最小化一个凸成本函数(如果只有一个全局最小值)或非凸成本函数(具有局部最小值,如“高原”让我们以为达到了山顶)的其中一种方法。借助一点视觉辅助,我们可以将一个只有一个参数的非凸成本函数(蓝色球为我们当前位置)形象化如下:

非凸成本

现在,反向传播就是在多个“层级”上反向传播成本。例如,如果我们有一个多层感知器,我们可以将前向传播(将输入信号通过网络,并通过相应的权重计算输出)形象化如下:

前向传播

在反向传播中,我们“简单地”反向传播误差(我们通过比较计算出的输出和已知的正确目标输出来计算的“成本”,然后用来更新模型参数):

反向传播

这可能是在预备微积分之后很久的事了,但它本质上都是基于我们用于嵌套函数的简单链式法则

链式法则

链式法则

与其“手动”完成这些工作,不如使用计算工具(称为“自动微分”),而反向传播基本上是这种自动微分的“反向”模式。为什么是反向而不是前向?因为计算上更便宜!如果我们使用前向方式,我们将逐层相乘大矩阵,直到将一个大矩阵与输出层中的一个向量相乘。然而,如果我们从反向开始,也就是从将一个矩阵与一个向量相乘开始,我们得到另一个向量,以此类推。所以,我认为反向传播的美在于我们进行的是更高效的矩阵-向量乘法,而不是矩阵-矩阵乘法。

简介:Sebastian Raschka 是一名数据科学家和机器学习爱好者,对 Python 和开源有着极大的热情。《Python 机器学习》的作者。密歇根州立大学。

原文。经许可转载。

相关内容:

  • 深度学习何时比 SVM 或随机森林效果更好?

  • 分类发展作为一种学习机器

  • 为什么从头实现机器学习算法?


我们的三大课程推荐

1. 谷歌网络安全证书 - 快速入门网络安全职业生涯。

2. 谷歌数据分析专业证书 - 提升你的数据分析技能

3. 谷歌 IT 支持专业证书 - 支持你的组织进行 IT 工作


了解更多相关内容