在神经网络的偏见中的作用在神经网络的偏见中的作用(Role of Bias in Neural Ne

2019-05-09 07:09发布

我知道梯度下降和反向传播定理。 我不明白的是:当使用偏置重要的,你如何使用它?

例如,映射时AND功能,当我使用2个输入和1个输出,它不给出正确的权重,但是,当我使用3个输入(其中1个是偏置),它提供了正确的权重。

Answer 1:

我认为,偏见几乎总是有益的。 事实上, 偏置值允许您激活功能转移到左侧或右侧 ,这可能是成功学习的关键。

这可能有助于看一个简单的例子。 想想看,有没有偏差这个1输入,1路输出网络:

网络的输出被由重量输入(x)的相乘(W 0)以及使所述结果通过某种激活函数的计算(例如S形函数)。

下面是这个网络计算,对于W 0各个值的功能:

改变权重w 0实质上改变乙状结肠的“陡度”。 这是有用的,但如果你想在网络上输出时,x为2 0? 只是改变了乙状结肠的陡度将没有真正的工作- 你希望能够将整个曲线向右移动

这正是偏置允许你这样做。 如果再加上偏置到该网络,就像这样:

...则网络的输出变为SIG(W 0 * X + W 1 * 1.0)。 以下是网络的输出看起来像在W 1各种值:

具有-5重量瓦特1个转移的曲线向右,这使我们能够有输出0时,x是2的网络。



Answer 2:

我想补充我的两分钱。

更简单的方法来了解偏见是什么:它是某种类似于线性函数的常数b

Y = AX + B

它可以让你招行上下的数据更好地适应预测。 如果没有B的连线总是通过原点去(0,0),你可能会得到一个较差的配合。



Answer 3:

两种不同类型的参数可以在ANN中,权重和的值的在激活函数的在训练期间被调整。 这是不切实际的,这将是更容易,如果只有一个参数应进行调整。 为了解决这个问题,一个偏置神经元被发明的。 偏置神经元位于一个层,被连接到下一层中的所有神经元,但没有在先前的层,它总是发出1.自偏压神经元发放1个的权重,连接到偏置神经元,直接添加到其他权重(等式2.1)的组合的和,就像在激活函数t值。 1

这是不切实际的原因是因为你同时调整的重量和价值,所以任何改变重量可以中和变化,这是非常有用的一个以前的数据实例值...添加偏置神经元没有变化值允许你控制层的行为。

此外,偏让你用一个神经网络来表示类似的情况。 考虑和以下神经网络为代表布尔函数:

ANN http://www.aihorizo​​n.com/images/essays/perceptron.gif

  • W0对应步骤b。
  • W1对应于X1。
  • W2对应于X2。

单个感知可用于代表许多布尔函数。

例如,如果我们假设的1(真)和-1(假),那么一个使用一个两输入感知实现AND功能是设定的权重W0 = -3方式,布尔值和W1 = W2 = 0.5。 可以由该感知器,通过改变阈值,以W0 = -.3代表OR函数来代替。 事实上,AND和OR可以被视为M-的正功能的特殊情况:即,功能,其中的n个输入到感知至少m必须是真实的。 所述或功能对应于m = 1和AND函数M = N。 间的正任何功能被容易地使用感知通过所有输入的权重设定为相同的值(例如,0.5),然后设置阈值相应W0表示。

感知器可以表示所有的原始布尔函数AND,OR,NAND(1 AND),和NOR(1 OR)。 机Learning-汤姆•米切尔)

该阈值是所述偏置W0是与偏置/阈值的神经元相关的权重。



Answer 4:

在没有偏压神经网络A层只不过是与基质的输入向量的乘法更多。 (输出载体可能是通过正常化以及在多层ANN之后使用双曲线函数传递,但是这并不重要。)

这意味着,您使用的是线性函数,从而全零输入将始终被映射到全零的输出。 这可能是一些系统合理的解决方案,但在总体上是过于严格。

使用偏见,你有效地增加另一层面,你的输入空间,它总是取值之一,所以你避免全零的输入向量。 你不这样失去任何一般性的,因为你训练的权重矩阵不需要是满射,所以它仍然可以映射到前面所有可能的值。

2D ANN:

对于ANN映射二维到一个维,如再现AND或OR(或XOR)功能,你能想到的神经元网络执行以下操作:

在2D平面标注输入向量的所有位置。 因此,对于布尔值,你要标记(-1,-1),(1,1),(1,1),(1,-1)。 你的ANN现在所做的就是借鉴了2D平面直线,分离负输出值的正输出。

不带偏见,这条直线要经过为零,而有偏见,你可以自由地把它放在任何地方。 所以,你会看到不带偏见你面临的一个问题与与功能,因为你不能把两者(1,-1) (-1,1)到消极的一面。 (他们不允许行。)问题是相等的或功能。 有了偏差,但是,它很容易划清界线。

请注意,在这种情况下XOR函数甚至不能偏差来解决。



Answer 5:

这个线程真的帮我发展我自己的项目。 这里是表示一个简单的2层前馈神经有和没有上的两个变量的回归问题偏压单元网络的结果一些进一步的说明。 权重被随机初始化并用于标准RELU活化。 正如我以前的答案得出的结论,没有偏见的RELU网络不能(0,0)偏离零。



Answer 6:

当您使用人工神经网络,你很少会知道你想学的系统的内部结构。 有些事情不能没有偏见来学习。 例如,看看以下数据:(0,1),(1,1),(2,1),基本上是一个其任意x映射到1的功能。

如果你有一个分层的网络(或线性映射),你不能找到一个解决方案。 但是,如果你有一个偏见是微不足道!

在一个理想的环境,偏置也可以映射所有的点到目标点的平均值,让隐藏的神经元从该点的差异建模。



Answer 7:

偏置不是NN来看,这是一个通用术语代数来考虑。

Y = M*X + C (直线方程)

现在,如果C(Bias) = 0 ,然后,该行总是通过原点,即(0,0)并且依赖于只有一个参数,即M ,这是斜坡,所以我们没有多少东西玩。

C ,其被偏置接受任意数目和具有活动转移曲线图中,并因此能够表示更复杂的情况。

在逻辑回归,目标的预期值是由一个链接函数变换,以限制它的值以单位间隔。 以这种方式,模型预测可以被看作是主结果概率,如下所示: Sigmoid函数在维基百科

这是在NN地图的开启和关闭的神经元转动最终激活层。 这里也偏置有发挥作用,其灵活的移动曲线,以帮助我们映射模型。



Answer 8:

单独的神经元的权重修改仅用于操纵你传递函数的形状/曲率 ,而不是它的平衡/零交叉点。

引入偏置神经元的状态,可以在离开形状/曲率未改变的传递函数曲线水平沿着输入轴移位(左/右)。 这将允许网络,以产生从所述默认值不同的任意的输出,因此可以自定义/移位输入 - 输出映射来满足特定的需要。

在这里看到的图形解释: http://www.heatonresearch.com/wiki/Bias



Answer 9:

我想补充这一切的东西,是非常缺失和休息,最有可能的,不知道。

如果你正在使用图像,你实际上可能更愿意使用偏置的。 从理论上讲,这样,你的网络将更加独立的数据大小,如图片是否是黑暗的,或明亮,生动。 而净是要学会做它的工作通过研究数据中的相关性。 现代神经网络的大量利用这一点。

对于其它数据有偏差可能是至关重要的。 这取决于你所面对的是什么类型的数据。 如果您的信息是幅度不变---如果输入[1,0,0.1]应该导致同样的结果,如果输入[100,0,10],你可能会更好没有偏见。



Answer 10:

在几个实验我的硕士论文 (例如,第59页),我发现偏差可能是第一层(S)很重要,但尤其是在末完全连接层似乎没有起到很大的作用。

这可能是高度依赖于网络架构/数据集。



Answer 11:

偏置决定你要多少角度你的体重旋转。

在2维图表,重量和偏见帮助我们找到产出的决策边界。 假设我们需要建立和功能,输入(P)输出(T)对应该

{p值= [0,0],T = 0},{p值= [1,0],T = 0},{p值= [0,1],T = 0},{p值= [1,1] ,T = 1}

现在,我们需要找到决策边界,这个想法边界应该是:

看到? W是垂直于我们的边界。 因此,我们说W¯¯决定边界的方向。

然而,这是很难找到的第一次正确W上。 大多数情况下,我们选择原来的W值随机。 因此,第一边界可以是这样的:

现在的边界是pareller Y轴。

我们要旋转的边界,怎么样?

通过改变W.

所以,我们使用的学习规则功能:W'= W + P:

W '= W + P相当于W'= W + BP,而B = 1。

因此,通过改变B(偏差)的值,你可以决定和W W之间的角度”这是‘ANN的学习规则’。

你也可以阅读神经网络的设计由马丁·T·哈根/霍华德B.德穆思/马克·比尔,第4章“感知学习规则”



Answer 12:

扩展在@zfy解释...一个输入,一个神经元的公式,一个输出应该是:

y = a * x + b * 1    and out = f(y)

其中x是从输入节点的值而1是偏置节点的值; y可以直接在你的输出或者传递给函数,通常是双曲线函数。 另外请注意,偏置可以是任何恒定的,而是让一切简单起见,我们总是挑1(也可能是如此普遍,@zfy这样做是没有表现出和解释它)。

您的网络是想学系数a和b,以适应您的数据。 所以,你可以看到为什么添加元素b * 1允许它更适合于更多的数据:现在你可以改变斜率和截距。

如果你有一个以上的输入您的公式看起来像:

y = a0 * x0 + a1 * x1 + ... + aN * 1

需要注意的是方程还是描述了一个神经元,一个输出网络; 如果你有更多的神经元时,只需添加一个维度系数矩阵,复用输入到所有节点,总结回每个节点的贡献。

你可以在矢量格式写

A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT

即把系数在一个阵列中,而在另一个(输入+偏置)你有你想要的溶液,作为两个向量的点积(你需要转X的形状是正确的,我写了一个XT“X换位”)

所以,最后你也可以看到你的偏见只是一个更多的投入来表示,实际上是独立的输入输出的一部分。



Answer 13:

特别是,Nate的回答 ,ZFY的答案 ,并Pradi的答案是伟大的。

简单来说,偏差允许的权重越来越多的变化 ,以学习/存储...( 边注 :有时会给予一定的阈值)。 无论如何, 更多的变化意味着偏见添加的输入空间到模型的教训/存储的权重更丰富的表现(这里更好的权重可以提高神经网络的猜测功率)

例如,在学习模型,设定/猜测理想地由下式给出某些输入,在或许有些分类任务Y = 0或y = 1界定...即一些y = 0的一些X =(1,1)和一些Y = 1对于一些X =(0,1)。 (在假设/结果的条件是我上面讲的阈值。需要注意的是我的例子的设置的输入X是每个x =双重或2值向量,而不是一些集合X的Nate的单值X输入)。

如果我们忽略的偏见, 许多投入可能最终会通过很多相同的权重被代表 (即学习权大多发生在接近原点 (0,0),该模型将被限制在较差的数量好权,而不是多出很多不错的砝码它可以更好地与偏见学习。(在哪里学到不佳的权重导致较差的猜测或神经网络的猜测功率降低)

因此,它是最佳的,该模型学习都接近原点,而且,在尽可能多的地方尽可能的阈值/决策边界内。 与偏见,我们可以使接近原点,但不限于原产地的邻近地区的自由度。



Answer 14:

想用简单的方法,如果你有Y = W1 * x,其中y为你的输出,而W1是重量想象一种情况,即X = 0,则Y = W1 * x等于0,如果你想更新你的体重,你有计算由DELW =目标-Y多大的变化,其中的目标是你的目标输出,在这种情况下,“DELW”不会改变,因为y计算为0.So,假设如果你可以添加一些额外的价值,将帮助Y = W1 * X + WO * 1,其中偏压= 1和重量可以调整以下以获得正确bias.Consider的例子。

在直线斜率截距而言是线性方程的一种具体形式。

Y = mx + b中

检查图像

图片

这里b为(0,2)

如果你想通过改变b的值,这将是你的偏见,以增加它到(0,3),你会怎么做



Answer 15:

对于所有的ML书籍我研究,将W总是被定义为两个神经元之间的连接性指数,这意味着两个神经元之间,该信号将来自击发神经元被发送到目标神经元或更强Y = W *的更高的连接X结果维持神经元的生物学特性,我们需要保持1> = W> = -1,但在真正的回归,在W将结束| W | > = 1,这与神经元是如何工作的抵触,因此我建议W = COS(THETA),而1> = | COS(THETA)| ,和Y = A * X = W * X + B,而A = B + W = B + COS(THETA)中,b是一个整数



Answer 16:

术语偏压被用作y轴截距确实调整最终输出矩阵。 例如,在经典的方程Y = MX + C,如果c = 0,则该行会一直穿过0添加偏置项提供了更大的灵活性和更好的推广我们的神经网络模型。



Answer 17:

在神经网络:

  1. 每个神经元有偏见
  2. 可以查看偏置为阈值(阈值的大致相对值)
  3. 从输入层加权总和+偏置决定神经元的激活
  4. 偏置增加了模型的灵活性。

在没有偏压的,神经元可以不被通过仅考虑从输入层的加权和激活。 如果神经元没有被激活,从这个神经元的信息不是通过神经网络的其余部分通过。

偏差值是学习,能。

有效地,偏压= - 阈值。 你能想到的偏见,因为它是多么容易得到的神经元输出1 - 有一个非常大的偏差,它是神经元输出1很容易,但如果偏差是非常不利的,那么它的困难。

总结: 偏置帮助控制在哪个激活功能将触发值。

按照此视频的更多细节

几个有用的链接:

geeksforgeeks

towardsdatascience



Answer 18:

通常,在机器学习我们有这个基础公式偏差-方差权衡因为在NN我们有过拟合(模型综合问题,即在数据的微小变化会导致在模型结果大的变化)的问题,并且由于我们有大方差,引入小偏差可能有很大的帮助。 考虑以上公式偏差-方差权衡 ,其中偏压被平方,因此引入小的偏置可能导致减少方差很多。 因此,引入偏倚,当你有大的变化和过度拟合危险。



Answer 19:

除了提到answers..I想添加一些其他的点。

偏置作为我们的锚。 这对我们有某种底线在哪里,我们不走低于一方式。 在图形方面,想到的像Y = mx + b中是这样的函数的y截距。

输出=输入倍重量值并增加了一个偏差值,然后应用的激活功能。



文章来源: Role of Bias in Neural Networks