深度学习领域的新手,目前正在进行this竞赛,以预测建筑物的地震破坏。
我创建的模型开始于.56的精度,但对于我允许其运行的任何时期,其精度都保持不变。完成后,模型仅预测三个类之一(我将其热编码到具有三列的数据框中)。 更改层数,优化器,数据准备,退出不会改变任何事情。即使尝试使用神经网络的过度参数化来过度拟合我的模型,仍然会具有相同的准确性和非学习模型。
我在做什么错?
这是我的代码:
model = keras.models.Sequential()
model.add(keras.layers.Dense(64, input_dim = 85, activation = "relu"))
keras.layers.Dropout(0.3)
model.add(keras.layers.Dense(128, activation = "relu"))
keras.layers.Dropout(0.3)
model.add(keras.layers.Dense(256, activation = "relu"))
keras.layers.Dropout(0.3)
model.add(keras.layers.Dense(512, activation = "relu"))
model.add(keras.layers.Dense(3, activation = "softmax"))
adam = keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
model.compile(optimizer = adam,
loss='categorical_crossentropy',
metrics = ['accuracy'])
history = model.fit(traindata, trainlabels,
epochs = 5,
validation_split = 0.2,
verbose = 1,)
答案 0 :(得分:0)
您的模型在视觉上没有任何问题,但是学习任何有用的功能可能太麻烦了。
尝试使用https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html
仅从2层和少量神经元开始。
增加batch_size
并尝试学习速率安排。
观察validation_accuracy,当它开始过拟合时停止。
最后,对于3类分类,准确度56%比基线好,请记住这是一项竞争,因此该数据不是虚拟的操场数据,您可以期望首次尝试使用MLP即可获得90%的准确度。
最后,尝试使用tuner
进行超参数优化。