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

时间:2018-01-15 13:29:40

标签: machine-learning neural-network

我正在尝试使用3层前馈神经网络(多层感知器)对1D数据进行分类。

目前我有输入样本(时间序列),每个样本由50个数据点组成。我已经阅读了很多来源,输入层中的神经元数量应该等于数据点的数量(在我的情况下为50),但是,经过多次交叉验证试验后,我发现平均值可以略微提高一些输入层中有25个神经元的分类(具有情人变异)。

我正在努力理解它背后的数学:与输入层中的数据点相比,神经元数量更少是否有意义?或者也许结果因为一些错误而更好?

此外 - 是否还有其他规则来设置输入层中的神经元数量?

更新 - 澄清我的意思:

我使用Keras w tensorflow后端。我的模型看起来像这样:

model = Sequential()
model.add(Dense(25, input_dim=50, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(input_data, output_data, epochs=150, batch_size=10)

predictions = model.predict(X)
rounded = [round(x[0]) for x in predictions]
print(rounded)

input_data,output_data - numpy数组,我的数据点在前者,后者的对应值为1或0。

25是第一层中的神经元数量,input_dim是我的数据点的数量,因此从技术上讲它是有效的,但我不确定这样做是否有意义或我误解了输入层中神经元的概念以及它们是什么做。

0 个答案:

没有答案