我知道梯度下降和反向传播算法。我不明白的是:什么时候使用偏见是重要的,你如何使用它?
例如,在映射AND函数时,当我使用两个输入和一个输出时,它不会给出正确的权重。然而,当我使用三个输入(其中一个是偏差)时,它给出了正确的权重。
我知道梯度下降和反向传播算法。我不明白的是:什么时候使用偏见是重要的,你如何使用它?
例如,在映射AND函数时,当我使用两个输入和一个输出时,它不会给出正确的权重。然而,当我使用三个输入(其中一个是偏差)时,它给出了正确的权重。
当前回答
偏见是我们的锚。对我们来说,这是一种设定底线的方式,我们不会低于这个标准。从图的角度来看,y=mx+b就像这个函数的y轴截距。
输出=输入乘以权重值并加上偏置值,然后应用激活函数。
其他回答
在神经网络中:
每个神经元都有一个偏向 您可以将偏差视为阈值(通常是阈值的相反值) 输入层的加权和+偏置决定神经元的激活 偏差增加了模型的灵活性。
在没有偏差的情况下,仅考虑来自输入层的加权和可能不会激活神经元。如果神经元没有被激活,来自该神经元的信息就不会通过神经网络的其余部分传递。
偏见的价值是可以学习的。
实际上,bias = - threshold。你可以把偏差想象成让神经元输出1有多容易,如果偏差很大,神经元输出1很容易,但如果偏差很大,就很难了。
总而言之:偏置有助于控制激活函数的触发值。
观看这段视频了解更多细节。
一些更有用的链接:
Geeksforgeeks
走向数据科学
当您使用ann时,您很少了解您想要学习的系统的内部结构。有些东西没有偏见是学不来的。例如,看一下下面的数据:(0,1),(1,1),(2,1),基本上是一个将任何x映射到1的函数。
如果你有一个单层网络(或线性映射),你无法找到解决方案。然而,如果你有偏见,那就无关紧要了!
在理想情况下,偏差还可以将所有点映射到目标点的平均值,并让隐藏的神经元模拟该点的差异。
偏差有助于得到更好的方程。
想象一下,输入和输出就像一个函数y = ax + b,你需要在输入(x)和输出(y)之间画一条正确的线,以最小化每个点和直线之间的全局误差,如果你保持这样的方程y = ax,你将只有一个参数用于适应,即使你找到了最小化全局误差的最佳参数,它也会离你想要的值很远。
你可以说,偏差使方程更灵活,以适应最佳值
简单来说,偏差允许学习/存储越来越多的权重变化……(注:有时给出一些阈值)。无论如何,更多的变化意味着偏差为模型的学习/存储权重添加了更丰富的输入空间表示。(更好的权重可以增强神经网络的猜测能力)
例如,在学习模型中,假设/猜测在给定输入的情况下被y=0或y=1所限制,可能是在某个分类任务中……例如,对于某些x=(1,1),有些y=0,对于某些x=(0,1),有些y=1。(假设/结果的条件是我上面谈到的阈值。注意,我的示例设置输入X为每个X =一个双值或2值向量,而不是Nate的某个集合X的单值X输入)。
如果我们忽略偏差,许多输入可能最终由许多相同的权重表示(即学习的权重大多出现在原点附近(0,0)。 这样,模型就会被限制在较差的好权重上,而不是在有偏差的情况下更好地学习更多的好权重。(学习不好的权重会导致更差的猜测或神经网络的猜测能力下降)
因此,模型既要在靠近原点的地方学习,又要在阈值/决策边界内尽可能多的地方学习,这是最优的。有了偏差,我们可以使自由度接近原点,但不限于原点的直接区域。
神经网络中没有偏差的一层只不过是输入向量与矩阵的乘法。(输出向量可以通过一个sigmoid函数进行归一化,然后用于多层人工神经网络,但这并不重要。)
这意味着你在使用一个线性函数,因此一个全0的输入将总是映射到一个全0的输出。对于某些系统,这可能是一个合理的解决方案,但一般来说,它的限制太大了。
使用偏置,可以有效地为输入空间增加另一个维度,它总是取值1,因此可以避免输入向量全为0。你不会因此失去任何一般性,因为你训练的权重矩阵不需要是满射的,所以它仍然可以映射到之前可能的所有值。
二维安:
对于一个将二维映射到一维的ANN,就像在复制AND或or(或XOR)函数一样,你可以把一个神经元网络想象成做以下事情:
在二维平面上标记输入向量的所有位置。为布尔值,你想标记(1,1),(1,1),(1,1),(1,1)。你的人工神经网络现在做的是在二维平面上画一条直线,把正输出和负输出分开。
如果没有偏差,这条直线必须经过零,而有偏差,你可以把它放在任何地方。 因此,您将看到,如果没有偏差,您将面临与函数的问题,因为您不能同时将(1,-1)和(-1,1)放在负一侧。(他们不允许在线。)对于OR函数,问题是相等的。然而,有了偏见,就很容易划清界限。
请注意,在这种情况下,异或函数即使有偏差也无法求解。