【问题标题】:How to use the "Bias" in Neuronal Networks如何在神经网络中使用“偏差”
【发布时间】:2016-08-12 00:20:04
【问题描述】:

现在 2 周以来,我正在使用神经元网络。我的激活函数是普通的 sigmoid 函数,但有一件事,我在互联网上读到过,但发现了不同的解释方式。

目前,我将所有输入值与其权重相乘,然后添加偏差(即负阈值)。我从http://neuralnetworksanddeeplearning.com/chap1#sigmoid_neurons获取了所有这些信息 这对我来说一切都很好,但后来我找到了这个页面:http://www.nnwj.de/backpropagation.html

在前向传播部分,根本没有使用偏差,我认为应该使用,所以请告诉我,我只是愚蠢地看到他们在那里做了什么或哪个页面错了?

for(int v = 0; v < outputs[i].X; v++){
    outputs[i].set(v, biases[i].get(v));
        for(int k = 0; k < outputs[i-1].X; k++){
            outputs[i].increase(v, weights[i].get(v,k) * outputs[i-1].get(k));
        }
    outputs[i].set(v, sigmoid( outputs[i].get(v)));

System.out.println("Layer :" + i + "    Neuron :" + v + "    bias :" + biases[i].get(v) + "   value :" + outputs[i].get(v));

        }

这是我计算代码的代码,但一个神经元的部分在这部分完成:

outputs[i].set(v, biases[i].get(v));
for(int k = 0; k < outputs[i-1].X; k++){
    outputs[i].increase(v, weights[i].get(v,k) * outputs[i-1].get(k));
}
outputs[i].set(v, sigmoid( outputs[i].get(v)));

您可能无法理解我在那里究竟做了什么,但我只是代表我的层,k 是所有输入神经元,我正在迭代抛出输入神经元并将权重与输出相加。 就在我这样做之前,我将我的起始值设置为偏差。

如果你能帮我解决这个问题,我会很高兴,我也很抱歉我的英语:)

【问题讨论】:

    标签: neural-network artificial-intelligence bias-neuron


    【解决方案1】:

    一般来说,偏置项应该包含在前向和后向通道中。

    我认为在第二页中,为简单起见,前向传播部分省略了您提到的偏置项,仅在反向传播部分解释了为什么我们需要额外的偏置项。

    第一个看起来比第二个更周到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      相关资源
      最近更新 更多