gpt4 book ai didi

machine-learning - 当我需要更新多层感知器中的权重时?

转载 作者:行者123 更新时间:2023-11-30 09:27:36 25 4
gpt4 key购买 nike

我正在研究多层感知器,一种神经网络。当我读到反向传播算法时,我看到一些作者建议在计算特定层的所有错误后立即更新权重,但另一位作者解释说我们需要在获得所有层的所有错误后更新权重。正确的做法是什么?

第一种方法:

function void BackPropagate(){
ComputeErrorsForOutputLayer();
UpdateWeightsOutputLayer();
ComputeErrorsForHiddenLayer();
UpdateWeightsHiddenLayer();
}

第二种方法:

function void BackPropagate(){
ComputeErrorsForOutputLayer();
ComputeErrorsForHiddenLayer();
UpdateWeightsOutputLayer();
UpdateWeightsHiddenLayer();
}

谢谢你所做的一切。

最佳答案

我很确定您误解了这里的概念。两种可能的策略是:

  • 计算一个输入向量所有错误后更新权重
  • 计算所有输入向量所有错误后更新权重

这和你写的完全不同。这两种方法都是样本/批量策略,各有利弊,由于简单,第一种方法在实现中更为常见。

关于你的“方法”,第二种方法是唯一正确的方法,“传播”误差的过程只是计算误差函数导数的计算简化,而(基本)过程学习是最速下降法。如果您仅计算部分维度(输出层)的导数,在方向上执行一步,然后根据新值重新计算误差导数,则您没有执行梯度下降。唯一可以接受第一种方法的情况是,当您的权重更新不会干扰您的误差计算时,那么使用什么顺序并不重要,因为它们是独立的。

关于machine-learning - 当我需要更新多层感知器中的权重时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18428845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com