Neural network 神经网络:反向传播阶段的逐步分解?

Neural network 神经网络:反向传播阶段的逐步分解?,neural-network,backpropagation,Neural Network,Backpropagation,我必须设计一个具有功能的神经网络的动画视觉表示(即,具有允许您调整值等的UI)。它的主要目标是帮助人们可视化如何以及何时在慢动作实时动画中执行不同的数学运算。我在UI中设置了视觉效果,允许您调整值和更改神经元的布局,以及前馈阶段的视觉效果,但由于我实际上根本不擅长神经网络,我很难找到可视化反向传播阶段的最佳方法-主要是因为我在这一阶段很难确定操作的确切顺序 可视化从向前发射神经元开始,然后在发射神经元链到达输出后,动画显示实际值和预测值之间的差异,从这一点开始,我想可视化网络向后发射,同时演示正

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

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

因此,我的问题是:

  • 在反向传播阶段实际调整了哪些权重?是在整个神经网络中调整所有权重,还是只调整在向前传球时发射的权重
  • 在该阶段,每个隐藏层中的所有权重是否调整了相同的量,或者是否调整了由当前权重偏移的值,或者其他值?对我来说,没有曲线或类似的东西来抵消它们,它们都会以相同的数量进行调整,这真的没有意义
我在网上找到了很多关于前馈阶段的好信息,但是当涉及到反向传播阶段时,我很难找到任何关于这个阶段实际发生的事情的好的可视化/解释

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

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

在该阶段,每个隐藏层中的所有权重是否调整了相同的量,或者是否调整了由当前权重偏移的值,或者其他值?对我来说,没有曲线或类似的东西来抵消它们,它们都会以相同的数量进行调整,这真的没有意义

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

总之,反向传播只是一种调整权重的方法,以便输出值更接近预期结果。它还可以帮助你研究梯度下降法,或者(我通过逐步分解神经网络学会了如何构建神经网络)

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

  • 根据实际输出和预期输出之间的差异计算误差

  • 通过求误差矩阵/向量的点积和训练输入的Sigmoid导数来计算调整矩阵/向量

  • 调整将应用于配重

  • 步骤1-3反复多次,直到实际输出接近预期输出

  • 在一个更复杂的神经网络中,你可以使用随机梯度下降或梯度下降来寻找权重的最佳调整

    在渐变下降时编辑:

    梯度下降法,也称为网络导数,是一种在反向传播中寻找良好调整值以改变权重的方法

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

    梯度下降公式(编程):

    梯度下降解释:

    梯度下降法是一种方法,它涉及到寻找对权重的最佳调整。这是必要的,以便能够找到最佳权重值。在反向传播迭代过程中,实际输出距离预期输出越远,权重的变化越大。你可以把它想象成一个倒转的小山,在每次迭代中,球从小山上滚下来,到达底部时速度会先快后慢

    这要归功于千里眼


    随机梯度下降是一种更先进的方法,当最佳权重值比标准梯度下降示例的用例更难找到时使用。这可能不是最好的解释,因此为了更清楚地解释,为了更清楚地解释随机梯度下降,

    感谢您的快速响应:)此外,我试图打开您提供的链接,但它似乎已断开。你的解释非常棒,而且非常简单易懂,所以在我感觉自己好像被大多数关于神经网络的主题中根深蒂固的行话淹没了之后,你的回答非常令人耳目一新,谢谢你。当你说梯度下降或随机梯度下降通常用于控制权重的调整量时,你有没有一个w=权重的梯度下降公式的例子?@AlexBianchini I修正了lin