问题标签 [bias-neuron]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 神经网络中的反向传播偏差
按照Andrew Traks 的示例,我想实现一个 3 层神经网络 - 1 个输入,1 个隐藏,1 个输出 - 带有一个简单的 dropout,用于二进制分类。
如果我包含偏差项b1
和b2
,那么我需要稍微修改 Andrew 的代码,如下所示。
问题当然是,上面的代码与 的尺寸b1
不匹配,与和layer_1_delta
类似。b2
layer_2_delta
我不明白如何计算 delta 以更新b1
和b2
- 根据Michael Nielsen 的示例,b1
并且b2
应该由我认为在我的代码中的 deltalayer_1_delta
分别更新layer_2_delta
。
我在这里做错了什么?我是否弄乱了增量或偏差的维度?我觉得是后者,因为如果我从这段代码中消除偏见,它就可以正常工作。提前致谢
python - 如何找到感知器:权重1、权重2和数学偏差
如何找到weight1、weight2和bias的值?找到任何问题的这 3 个值的通用数学方法是什么!
machine-learning - 神经网络中的反向传播和前向传播
我正在尝试设计一个简单的神经网络,但我面临一些问题。当我使用 ReLU 时,我的输出不断收敛到 0.5,而当我使用 sigmoid 函数时,我的输出不断收敛到 0.7。请建议我:
还有其他初始化权重和偏差的方法吗?我正在随机初始化它。
我是否需要在每次前向传递后执行反向传播,或者我应该采用平均操作错误并在 epoch 结束时更新它?
我需要在输入层中使用偏差吗?
我是神经网络的新手。请帮忙。
neural-network - 狗和猫的神经网络欠拟合
不一定要进入它的代码,而是更多地关注原则,我有一个关于我认为不合适的问题。
如果我正在训练一个识别图像是狗的真假的网络,并且我可能有 40,000 张图像,其中所有狗图像都标记为 1,而所有其他图像都标记为 0 - 我能做什么为了确保准确性,如果这些图像中只有 5,000 张是狗,网络不会在训练中“懒惰”地行动,并且还会将狗标记为更接近 0 而不是 1?
例如,这个问题的主要目的是能够高精度地识别图像是否真的是狗的,而不用真正关心其他图像,除了它们不是狗的事实。此外,我希望能够保留猜测正确的概率,因为这对我的目的非常重要。
我能想到的唯一两件事是:
- 网络中有更多节点,或
- 让一半的图像是狗的(所以使用 10,000 张图像,其中 5,000 张是狗)。
但我认为第二个选项可能会给狗一个不成比例的大机会成为测试数据的输出,这会破坏这个网络的准确性和整个目的。
我相信这个问题之前已经解决了,所以即使是正确方向的一点也将不胜感激!
python - 卷积层中的偏差真的会对测试精度产生影响吗?
我知道在小型网络中需要偏差来改变激活函数。但是在具有多层 CNN、池化、dropout 和其他非线性激活的 Deep 网络的情况下,Bias 真的有影响吗? 卷积滤波器正在学习局部特征,并且对于给定的卷积输出通道,使用相同的偏差。
这不是这个链接的欺骗。上述链接仅解释了偏差在小型神经网络中的作用,并未试图解释偏差在包含多个 CNN 层、drop-out、池化和非线性激活函数的深度网络中的作用。
我进行了一个简单的实验,结果表明从 conv 层中去除偏差对最终测试的准确性没有影响。 训练了两个模型,测试准确度几乎相同(没有偏差的一个稍微好一点。)
- model_with_bias,
- model_without_bias(未在转换层中添加偏差)
它们是否仅出于历史原因而使用?
如果使用偏差不能提高准确性,我们不应该忽略它们吗?需要学习的参数更少。
如果有比我知识更深的人能够解释这些偏见在深度网络中的重要性(如果有的话),我将不胜感激。
这是完整的代码和实验结果bias-VS-no_bias实验
输出:
初始化
测试准确率(有偏差):90.5%
测试准确率(无偏差):90.6%
machine-learning - Bias 到底是什么,它是用来换挡还是开火?
我仍然不明白什么是偏差以及何时激活神经元。所以现在我有一些问题。
人工神经元究竟是什么时候被激发的?当激活函数的结果小于 0 时,神经元是否也会触发,或者神经元是否只在正值时触发?
据我所知,偏差应该会改变激活函数。但是....这应该如何工作?我不明白什么?
带有偏差的标准计算如下所示。
将输入乘以权重并加上 Bias
所以我们有计算: x = a * w1 + b * w2 + c * w3 ..... + Bias
之后,应用激活函数。对于这个例子,我们使用激活函数,sigmoid 函数:y = 1 / (1 + e ^ (- x))。我们从之前的步骤中得到的 x 值。
但如果我这样做,那么就不会发生转变。它只影响神经元发射的强度/强度。
在其他视频中,我看到当使用偏差时,也可以触发 ReLU 函数中的负值(例如:权重 + 偏差 -> -0.5 + 1),但没有提到函数的偏移。
在另一个视频/博客中,我再次看到 Bias 还补充了激活功能。例如在 sigmoid 函数中:y = 1 / (1 + e ^ (- x + Bias))
我现在完全对偏见感到困惑。我希望你能帮助我。
neural-network - 我应该在使用神经网络训练期间改变偏差吗?
我的意思是,我应该像权重一样调整偏差吗?