algorithm - Delta法则神经网络教学。必要的算法解释

标签 algorithm neural-network

我正在做一项研究,一个关于神经网络的项目。只为我自己。早些时候,我设法理解了一种反向传播教学算法,当然是它的基础知识,而不是全部。但是很多资源都提到了delta规则,这有点特殊。我已经设法理解这里的权重是一个一个修改的。但是有很多问题。你能向我解释一下它是如何工作的吗,但比维基百科上的更平易近人。只是算法,但对步骤和“它是如何工作的”有清晰的解释。


顺便说一句,有导数用于教学。不明白为什么。 是的,除非有帮助,否则不需要特殊的源代码。

最佳答案

总体思路是将神经网络视为权重 w_ij 的函数,而不是输入:目标是最小化实际输出之间的误差以及训练数据中的目标输出。对于每个(输入/输出)训练对,增量规则确定您需要调整 w_ij 的方向以减少该训练对的错误。通过对每个训练对采取较短的步骤,您可以找到最适合整个训练语料库的方向。

想象一下,您正处于一个巨大的多山滑雪胜地的中间,这个滑雪胜地太复杂了,无法一下子理解——但如果您的工作是到达底部,您需要做的就是从您所在的地方下坡站着。这称为梯度下降方法:从您所在的位置找到最陡的斜坡,然后朝那个方向迈出一步。足够的步骤将在底部看到您;对于神经网络,“底部”是最适合您的训练数据的神经网络。

这就是您需要导数的原因:导数是斜率,事实证明它很容易计算——这就是您的增量法则。导数用于教学,因为这是他们首先获得规则的方式。

对于delta规则的一步步推导,恐怕我无法改进wikipedia article你指的是。

关于algorithm - Delta法则神经网络教学。必要的算法解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9102296/

相关文章:

python - 按除数查找开关

algorithm - 给定一组整数 L 和一个整数 K,选择 L 的最小子集 S,使得 SUM(S) >= K

arrays - 如何在二维数组中找到总和最大的元素?

python - 如何在 Keras 中将 (None, 10) 维张量 reshape 为 (None, None, 10)?

artificial-intelligence - 实时神经网络

machine-learning - 他们如何计算 Caffe 中这个卷积网络示例的输出量?

neural-network - 使用 DataLoaders 在 PyTorch 中验证数据集

algorithm - zest 布局算法将节点彼此靠得太近

java - Java数据结构的空间复杂度

machine-learning - Sigmoid 输出 - 它可以解释为概率吗?