【问题标题】:Neural Networks: A step-by-step breakdown of the Backpropagation phase?神经网络:反向传播阶段的逐步细分?
【发布时间】:2021-05-01 11:31:39
【问题描述】:

我必须设计一个功能性神经网络的动画视觉表示(即,使用允许您调整值等的 UI)。它的主要目标是帮助人们想象不同的数学运算是如何以及何时在慢动作、实时动画中执行的。我将视觉效果与 UI 一起设置,允许您调整值和更改神经元的布局,以及前馈阶段的可视化,但由于我实际上根本不专注于神经网络,所以我很难找出可视化反向传播阶段的最佳方法 - 主要是因为我在这个阶段无法弄清楚操作的确切顺序。

可视化从向前触发神经元开始,然后在触发的神经元链到达输出后,动画显示实际值和预测值之间的差异,从这一点开始,我想可视化网络向后触发,同时演示正在发生的数学运算。但这就是我真的不确定到底应该发生什么的地方。

所以我的问题是:

  • 在反向传播阶段实际调整了哪些权重?是在整个神经网络中调整了所有权重,还是只调整了前向传播期间触发的权重?
  • 在此阶段,每个隐藏层中的所有权重是否都调整了相同的量,或者它们是否调整了一个被当前权重抵消的值,或其他一些值?对我来说,它们都将调整相同的量,而不会被曲线或类似的东西抵消,这对我来说真的没有意义。

我在网上找到了很多关于前馈阶段的重要信息,但是当谈到反向传播阶段时,我很难找到关于这个阶段实际发生的任何好的可视化/解释。

【问题讨论】:

    标签: neural-network backpropagation


    【解决方案1】:

    在反向传播阶段实际调整了哪些权重?是在整个神经网络中调整了所有权重,还是只调整了前向传播期间触发的权重?

    这取决于您如何构建神经网络,通常您首先对网络进行前向传播,然后再进行反向传播,在反向传播阶段,权重会根据误差和 Sigmoid 导数进行调整。您可以选择调整哪些权重以及您拥有的结构类型。对于一个简单的感知器网络(基于我所知道的),每个权重都会被调整。

    在此阶段,每个隐藏层中的所有权重是否都调整了相同的量,或者它们是否调整了一个与其当前权重或其他值相抵消的值?对我来说,它们都将被调整相同的量,而不会被曲线或类似的东西抵消,这对我来说真的没有意义。

    反向传播稍微取决于您使用的结构类型。您通常使用某种算法 - 通常是梯度下降或随机梯度下降来控制调整权重的多少。据我所知,在感知器网络中,每个权重都会根据自己的值进行调整。

    总之,反向传播只是一种调整权重以使输出值更接近所需结果的方法。它还可以帮助您了解梯度下降,或 watch a network being built from scratch(我通过逐步分解神经网络学会了如何构建神经网络)。

    这是我自己的反向传播逐步分解的版本:

    1. 误差是根据实际输出与预期输出之间的差异计算得出的。

    2. 调整矩阵/向量是通过求误差矩阵/向量与训练输入的 Sigmoid 导数的点积来计算的。

    3. 调整应用于权重。

    4. 步骤 1 - 3 重复多次,直到实际输出接近预期输出。

    外文。在更复杂的神经网络中,您可能会使用随机梯度下降或梯度下降来找到权重的最佳调整。

    在梯度下降上编辑:

    梯度下降,也称为网络导数,是一种在反向传播中找到合适的调整值来改变权重的方法。

    梯度下降公式:f(X) = X * (1 - X)

    梯度下降公式(程序化):

    梯度下降解释:

    梯度下降是一种涉及找到对权重的最佳调整的方法。有必要这样才能找到最佳重量值。在反向传播迭代过程中,实际输出距离预期输出越远,权重变化越大。你可以把它想象成一个倒置的山丘,在每次迭代中,滚下山丘的球会越来越快,然后越慢。

    感谢 Clairvoyant。

    随机梯度下降是一种更高级的方法,当最佳权重值比标准梯度下降示例的用例更难找到时使用。这可能不是最好的解释,所以要更清楚的解释,refer to this video. 要清楚地解释随机梯度下降,refer to this video.

    【讨论】:

    • 感谢您的快速响应:) 另外,我试图打开您提供的链接,但它似乎已损坏。你的解释很棒,而且很容易理解,所以在感觉好像我一直沉浸在似乎深深植根于与神经网络有关的大多数主题的行话中之后,你的回答非常令人耳目一新,所以谢谢你为此。当您说通常使用梯度下降或随机梯度下降来控制权重的调整量时,您是否有其中 w = 权重的这些梯度下降公式之一的示例?
    • @AlexBianchini 我修复了回复中的链接。梯度下降也更多是一个概念,并没有任何确切的公式。但是它也被称为网络的导数,所以我可以给出一个公式; f(x) = x * (1 - x) 我还在我的问题中包含了一个更详细的回复作为编辑,顺便说一句,我正在努力获得更多的声誉,所以如果你愿意投票并接受我的回答,我将不胜感激! :D
    • @JamesBarnett 没有反向传播就不能计算梯度吗?与其他方法相比,反向传播在计算成本方面是否更轻?
    • @adosar 我列出的方法只是确定反向传播的几种方法,还有许多其他确定梯度的方法。通常,任何用于查找梯度和调整权重的方法都称为反向传播,因为您仍在网络中进行反向传播并相应地调整权重。
    • @adosar 我相信你是对的,可能有更好的方法来计算梯度,但梯度下降和随机梯度下降可能是最容易识别和理解的方法之一。有些方法比其他方法更快,有些更准确,您可以尝试的一些其他方法示例是模拟退火或亚当方法。
    猜你喜欢
    • 2015-03-03
    • 2012-02-21
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 2013-04-26
    • 2016-09-19
    相关资源
    最近更新 更多