我试图从一篇论文中重现结果,其中作者最小化了以下损失函数
其中w是权重,\lambda是 ijcnn1 数据集的正则化参数。
该数据集是由不平衡数据(90%-0、10%-1)所特有的。作为预处理步骤,我应用了 MinMaxScaler 和 StandardScaler。
我使用用 keras 编写的模型,它看起来很简单:
model = keras.Sequential([
keras.layers.Dense(1, activation="sigmoid", kernel_initializer='uniform', kernel_regularizer=regularizers.l2(1e-4), use_bias=True)
])
sgd = optimizers.SGD(lr=0.05, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(optimizer=sgd, loss='binary_crossentropy', metrics=['accuracy'])
model.fit(train_dataset, epochs=1000)
但是,我最多只能获得 91% 的准确率。查看预测,我观察到我的模型学会了将几乎所有内容都预测为零。我也尝试使用 class_weight,但似乎没有帮助。有没有人有任何建议,如何获得更好的结果?