在什么情况下在神经网络中使用偏置可能无益?

我目前正在阅读Michael Nielsen的电子书《神经网络与深度学习》,并运行了第1章末尾的代码,该代码训练了一个神经网络来识别手写数字(略作修改,使得反向传播算法基于小批量矩阵)。

然而,运行这段代码并达到略低于94%的分类准确率后,我决定从网络中移除偏置的使用。在重新训练修改后的网络后,我发现分类准确率没有任何变化!

注意:该网络的输出层包含十个神经元;如果这些神经元中的第i个激活值最高,则输入被分类为数字i。

这让我开始思考,为什么在神经网络中使用偏置是必要的,而不仅仅是权重,以及在哪些任务中使用偏置会提高网络性能,而在哪些任务中不会?

我的代码可以在这里找到:https://github.com/pipthagoras/neural-network-1


回答:

偏置用于考虑到基础数据可能不是中心化的这一事实。在线性回归的情况下,这一点更为明显。

enter image description here

如果不使用截距(或偏置)进行回归,你会强迫基础模型通过原点,如果基础数据不是中心化的(例如,如果真实生成过程是Y=3000),这将导致一个糟糕的模型。另一方面,如果你的数据是中心化的或接近中心化,那么消除偏置是好的,因为你不会引入一个实际上与你的预测变量无关的项(这就像选择一个更简单的模型,只要它确实反映了基础数据,这种模型往往会更好地泛化)。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注