浅谈神经网络中的bias

一、什么是bias?网络

偏置单元(bias unit),在有些资料里也称为偏置项(bias term)或者截距项(intercept term),它其实就是函数的截距,与线性方程 y=wx+b 中的 b 的意义是一致的。在 y=wx+b中,b表示函数在y轴上的截距,控制着函数偏离原点的距离,其实在神经网络中的偏置单元也是相似的做用。 
所以,神经网络的参数也能够表示为:(W, b),其中W表示参数矩阵,b表示偏置项或截距项。架构

二、bias的计算方式?ide

 神经网络结构中对偏置单元的计算处理方式有两种, 
 (1)设置偏置单元=1,并在参数矩阵 Θ 中设置第 0 列对应偏置单元的参数,对应的神经网络以下: 
 神经网络架构 
 其中,x0 是第一层的偏置单元(设置为1),Θ(1)10 是对应该偏置单元 x0 的参数;a(2)0 是第二层的偏置单元,Θ(2)10 是对应的参数。 
 在计算激活值时按照(以a(2)1为例): 
 激活值计算公式函数

   至关于bias自己值为1,但它链接各个神经元的权重不为1,即---整个神经网络只有1个bias,对应有多个不一样的权重(权重个数等于hide层和out层神经元的个数)spa

 (2)设置偏置单元,不在参数矩阵中设置对应偏置单元的参数,对应的神经网络以下: 
 神经网络架构 
 其中,b(1) 是 W(1) 对应的偏置单元向量,b(2) 是 W(2) 对应的偏置单元向量,b(1)1 是对应 a(2)1 的偏置单元。注意,此时神经网络的参数表示更改成:(W, b) 
 在计算激活值时按照: 
 激活值计算公式 .net

   至关于bias链接各个神经元的全部权重都为1,但bias自己不为1,即---有多个bias,但全部的bias对应的权重都为1(bias的个数等于hide层和out层神经元的个数)blog


 综上, 
 二者的原理是一致的,只是具体的实现方式不一样。 
 其实在大部分资料和论文中看到的神经网络的参数都是表示为:(W, b),其中W表明weight,b表明bias。包括在UFLDL Tutorial中也是采用 (W, b) 表示,只是在Coursera上Andrew Ng老师的在线教程中看到将神经网络参数表示为 Θ,我的仍是更喜欢 (W, b) 这种表示,很清晰。教程

 

参考资料it

http://blog.csdn.net/walilk/article/details/50278697原理

相关文章
相关标签/搜索