如何在神经网络中使用 "Bias"
How to use the "Bias" in Neuronal Networks
现在 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 是所有输入神经元,我正在迭代输入神经元并在输出中添加权重。
就在我这样做之前,我将我的起始值设置为偏差。
如果你能帮我解决这个问题我会很高兴,我也很抱歉我的英语不好:)
一般来说,偏置项应该包含在正向和反向传递中。
我认为在第二页中,为了简单起见,前向传播部分省略了你提到的偏置项,只有在反向传播部分才解释了为什么我们需要额外的偏置项。
第一个看起来比第二个更贴心。
现在 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 是所有输入神经元,我正在迭代输入神经元并在输出中添加权重。 就在我这样做之前,我将我的起始值设置为偏差。
如果你能帮我解决这个问题我会很高兴,我也很抱歉我的英语不好:)
一般来说,偏置项应该包含在正向和反向传递中。
我认为在第二页中,为了简单起见,前向传播部分省略了你提到的偏置项,只有在反向传播部分才解释了为什么我们需要额外的偏置项。
第一个看起来比第二个更贴心。