神经网络

偏置项(bias term)

/ BY-us turm /

偏置项,是在激活函数运行之前,加到神经元的总和上的一个常数「推力」。想象一台有基础设定的恒温器:即使没有额外的热量进来,它也有一个默认的倾向。偏置就是那个默认的倾向。没有它,每当所有输入恰好都是零时,神经元的输出就总会是零——这会是一个奇怪而拖后腿的限制。偏置让神经元能拥有自己的立场,不管输入是什么。

用数学说:神经元先算出(每个输入乘以它的权重,全部相加),然后加上偏置。权重决定输入对决策的扳动有多强;偏置决定一开始要把神经元「打开」是容易还是困难。一个大的正偏置让神经元跃跃欲试;一个大的负偏置让它扭扭捏捏。用直线的话来说,权重设定斜率,偏置设定直线在哪里穿过——它们干的确实是不同的活儿。

和权重一样,偏置也是在训练中学到、并作为模型的一部分存下来的,所以它也算在参数之内——只不过数量少得多(大致每个神经元一个,而权重是每条连接一个)。它是个小部件,但把它省掉会让网络瘸腿:很多问题,没有那个可调的偏移量,根本就解不出来。

想象一个神经元,它应当只在温度读数高于 30 度时才放电。温度上的权重负责缩放,但真正设定门槛的是偏置:当偏置为 -30 时,只有当输入越过 30,神经元的总和才会变正。把偏置改成 -20,神经元就改在 20 度开始放电。同样的权重,不同的触发点。

偏置设定门槛——神经元的决定在哪里翻转——这与输入无关。

别把这个「偏置」与偏差-方差权衡里的偏差(模型欠拟合的倾向)或社会/数据偏见(不公平)搞混。偏置项只是一个学到的常数偏移量——同一个英文词,三种毫不相干的含义。

又称
biasoffsetintercept偏置偏置项偏差项截距