前馈神经网络的输入层中的神经元数量

时间:2018-05-09 22:36:15

标签: python machine-learning neural-network deep-learning regression

我是Machine Learning的初学者,根据11个输入变量进行预测葡萄酒质量(0到10)的多类multiclass classsification task 如何确定前馈neural network输入层中的神经元数量? 例如,我的数据集中有11个变量。 在输入层我应该保留11个神经元吗? 拥有更多/少于11个神经元怎么样?

提前致谢!

2 个答案:

答案 0 :(得分:2)

输入单位: 问题是输入层中应该有多少个神经元。你有11个变量。因此,使用偏置单元,输入层中总共有12个单位。

输出单位: 输出单元的数量将由回归或分类问题确定,问题有多少输出。例如,对于葡萄酒数据集,将有3个类。在单热编码方案中,将有3个输出单元,每个类一个。

因此输入和输出单位由数据集决定(除非你做了一些疯狂的事情)。

隐藏图层和单元: 隐藏层的数量和每个隐藏层的单元数是必须调整的。对于这个具体问题,可能没有必要深入研究。一个隐藏层就可以了。虽然,对于较小的数据集,您可以训练具有不同隐藏单位和不同层数的多个模型,并根据验证集分数或基于交叉验证选择模型。

训练有一个隐藏层,有5个隐藏单位,三个输出。葡萄酒数据集。 Trained with one hidden layer with 5 hidden units, three outputs. Wine dataset.

训练有两个隐藏层,分别有10个和5个隐藏单位。 Trained with two hidden layers, with 10 and 5 hidden units respectively.

在这两种情况下都存在偏差单位。在我的例子中,这个特定的葡萄酒数据集有13个输入,三个输出用于三类分类。

由于这对于较大的数据集而言可能非常耗时,因此您可以使用一些启发式方法来选择层数。例如。从一个隐藏层开始,比如5个单位。然后训练模型。接下来,使用10个单位并训练另一个模型,继续添加5个单位和训练模型,直到验证分数没有太大提高。然后停止向图层添加单位。之后,您可能想要添加另一个图层并再次更改隐藏单位的数量并继续。

这是一种非常基本的方法。我建议你阅读有关方法的学术文章。有很多方法使用。首先,我想在此指出:http://www.ml4aad.org/literature-on-neural-architecture-search/。另请检查AutoML

答案 1 :(得分:-1)

使用您的网络,您正在尝试近似函数F(x_1,x_2,..)从某些输入到葡萄酒质量的10维向量的映射。

在您的情况下,输入可以是11个特征,或者可能只是1.如果例如葡萄酒价格是一个特征,那么价格和质量之间肯定存在相关性。但是这种相关性可能只是粗略地接近“真实函数”。因此,通过在模型中加入更多功能,您可以更好,更好地逼近真正的基础功能。但请注意,某些功能可能无用或几乎没有任何影响!