【思维导图】神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
【点开看大图】【思维导图】神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
【思维导图】神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
【思维导图】神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
【思维导图】神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
【思维导图】神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
【思维导图】神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
【思维导图】神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
神经网络——bias 偏置项(bias term)或者截距项(intercept term)

参考文献
ohttps://blog.csdn.net/ym01213/article/details/88190049?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160569249019195264736042%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160569249019195264736042&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-88190049.first_rank_ecpm_v3_pc_rank_v2&utm_term=bias++%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C&spm=1018.2118.3001.4449
ohttps://blog.csdn.net/u013289254/article/details/98785869?biz_id=102&utm_term=bias%20%20%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-98785869&spm=1018.2118.3001.4449
ohttps://www.zhihu.com/question/68247574
1、什么是bias?
o偏置单元(bias unit),在有些资料里也称为偏置项(bias term)或者截距项(intercept term),它其实就是函数的截距,与线性方程 y=wx+b 中的 b 的意义是一致的。
o在 y=wx+b中,b表示函数在y轴上的截距,控制着函数偏离原点的距离,其实在神经网络中的偏置单元也是类似的作用。
o因此,神经网络的参数也可以表示为:(W, b)
W表示参数矩阵,
b表示偏置项或截距项。
2、bias的计算方式?
o 神经网络结构中对偏置单元的计算处理方式有两种,
o (1)设置偏置单元=1,并在参数矩阵 Θ 中设置第 0 列对应偏置单元的参数,对应的神经网络如下:
在计算**值时按照(以a(2)1为例):
 其中,
ox0 是第一层的偏置单元(设置为1),
oΘ(1)10 是对应该偏置单元 x0 的参数;
oa(2)0 是第二层的偏置单元,
oΘ(2)10 是对应的参数。
 相当于bias本身值为1,但它连接各个神经元的权重不为1,
即—整个神经网络只有1个bias,
o对应有多个不同的权重
o(权重个数等于hide层和out层神经元的个数)
o (2)设置偏置单元,不在参数矩阵中设置对应偏置单元的参数,对应的神经网络如下:
 在计算**值时按照:
其中,
ob(1) 是 W(1) 对应的偏置单元向量,
ob(2) 是 W(2) 对应的偏置单元向量,
ob(1)1 是对应 a(2)1 的偏置单元。
o注意,此时神经网络的参数表示更改为:(W, b)
相当于bias连接各个神经元的所有权重都为1,
但bias本身不为1,
即—有多个bias,但所有的bias对应的权重都为1
(bias的个数等于hide层和out层神经元的个数)
o 综上,
 两者的原理是一致的,只是具体的实现方式不同。
 其实在大部分资料和论文中看到的神经网络的参数都是表示为:(W, b),其中W代表weight,b代表bias。包括在UFLDL Tutorial中也是采用 (W, b) 表示,只是在Coursera上Andrew Ng老师的在线教程中看到将神经网络参数表示为 Θ,个人还是更喜欢 (W, b) 这种表示,很清晰。
 卷积之后,如果要接BN操作,最好是不设置偏置,因为不起作用,而且占显卡内存。
oBN操作,里面有一个关键操作
o其中x1 = x0 * w0 + b0,而E[x1] = E[x0*w0] + b0, 所以对于分子而言,加没加偏置,没有影响;
o而对于下面分母而言,因为Var是方差操作,所以也没有影响(为什么没影响,回头问问你的数学老师就知道了)。
o所以,
卷积之后,如果要接BN操作,
最好是不设置偏置,
因为不起作用,而且占显卡内存。
神经网络中,加上bias是如何让网络变得更灵活
o实际上,bias相当于多了一个参数。
在增加网络少量拟合能力的情况下,bias和其它普通权值相比无论前向还是后向,计算上都要简单,因为只需要一次加法。
同时,bias与其它权值的区别在于,其对于输出的影响与输入无关,能够使网络的输出进行整体地调整,算是另一维自由度吧。
放在二维上,权值相当于直线的斜率,而bias相当于截距,这二者都是直线参数的一部分,并没有必要区别对待。
o因此,通常网络都会使用bias,但并不是必须,对于网络性能的影响并不是很显著(除非网络太小导致拟合能力太差)。
同时,在有些场合里,bias的使用也没有意义,比如在batch normalization层之前的层就没必要加,因为会被归一化抵消掉。
o简单考虑一个只有一输入一输出的简单网络:

o假设用Sigmoid **函数,如果没有bias,先看一下在不同W下的情况:
假如输入 X_{in} 的输入分布如图中蓝点(A集合)和红点(B集合)所示(在x轴上的分布),要通过 Y_{out}(>0.5, or <0.5) 来判断输入时在A内还是B内,很显然,要提高准确性,sigmoid函数中的W系数需要学的很大,才能保证尽可能的判断准确。
但是如果一个测试样本在图中绿点所在的位置呢,很明显我们可以将绿点判为红点所在的B集合,但是通过训练学到的W是不能正确判断的。
这个时候似乎让sigmoid函数变得更陡没法解决了。
o但是如果加一个bias呢。
像这样,w(sigmoid中x的系数)不用学的很大就可以提高学习的准确率,网络就能够非常灵活的fit A,B 的分布,可以准确的判断绿点所属的集合。
简单点说,就是加上bias能更灵活的fit输入的分布。

(1)设置偏置单元=1,并在参数矩阵 Θ 中设置第 0 列对应偏置单元的参数,对应的神经网络如下:

在计算**值时按照(以a(2)1为例):

相当于bias连接各个神经元的所有权重都为1,

在计算**值时按照:

假设用Sigmoid **函数,如果没有bias,先看一下在不同W下的情况:

但是如果加一个bias呢。

BN操作,里面有一个关键操作

简单考虑一个只有一输入一输出的简单网络:

(2)设置偏置单元,不在参数矩阵中设置对应偏置单元的参数,对应的神经网络如下:

相关文章:

  • 2021-05-18
  • 2021-11-20
  • 2021-04-14
  • 2021-04-17
  • 2021-06-26
  • 2021-11-11
  • 2021-06-01
猜你喜欢
  • 2021-11-28
  • 2021-11-08
  • 2021-12-13
  • 2021-08-30
  • 2021-10-15
  • 2022-01-12
相关资源
相似解决方案