准确度增加但在多个周期内保持不变

我的模型准确度迅速提升至94.3%,但之后在剩余的训练周期内保持不变。以下是我的模型和代码:

model = Sequential()model.add(Conv2D(5, (3,3),  strides=(2,2), kernel_initializer='normal', activation='sigmoid', input_shape=(dim, dim, 3)))model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))model.add(Conv2D(5, (3,3),  strides=(2,2), activation='sigmoid'))model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))# 创建特征向量model.add(Flatten())model.add(Dense(12288, activation='sigmoid'))model.add(Dropout(0.2))model.add(Dense(1536, activation='sigmoid'))model.add(Dropout(0.3))model.add(Dense(384, activation='sigmoid'))model.add(Dropout(0.4))model.add(Dense(1, activation='sigmoid'))sgd = SGD(lr=0.001, momentum=0.9)model.compile(loss="binary_crossentropy", optimizer="sgd", metrics=["accuracy"])model.fit(data, labels, epochs=20, batch_size=100, callbacks=callbacks_list, verbose=1)CNN_output = model.predict(data)

训练输出的结果显示如下:CNN输出

检查CNN的输出(来自预测)我得到了以下结果(请注意这只是一个样本):

实际值: train_0: [ 1.]预测值: train_0: [ 0.]实际值: train_1: [ 0.]预测值: train_1: [ 0.]实际值: train_2: [ 0.]预测值: train_2: [ 0.]实际值: train_3: [ 0.]预测值: train_3: [ 0.]实际值: train_4: [ 0.]预测值: train_4: [ 0.]实际值: train_5: [ 1.]预测值: train_5: [ 0.]实际值: train_6: [ 0.]预测值: train_6: [ 0.]实际值: train_7: [ 1.]预测值: train_7: [ 0.]实际值: train_8: [ 0.]预测值: train_8: [ 0.]实际值: train_9: [ 0.]预测值: train_9: [ 0.]实际值: train_10: [ 0.]预测值: train_10: [ 0.]实际值: train_11: [ 0.]预测值: train_11: [ 0.]实际值: train_12: [ 0.]预测值: train_12: [ 0.]实际值: train_13: [ 0.]预测值: train_13: [ 0.]实际值: train_14: [ 0.]预测值: train_14: [ 0.]实际值: train_15: [ 0.]预测值: train_15: [ 0.]实际值: train_16: [ 0.]预测值: train_16: [ 0.]实际值: train_17: [ 0.]预测值: train_17: [ 0.]实际值: train_18: [ 0.]预测值: train_18: [ 0.]实际值: train_19: [ 0.]预测值: train_19: [ 0.]实际值: train_20: [ 0.]预测值: train_20: [ 0.]实际值: train_21: [ 0.]预测值: train_21: [ 0.]实际值: train_22: [ 0.]预测值: train_22: [ 0.]实际值: train_23: [ 0.]预测值: train_23: [ 0.]实际值: train_24: [ 0.]预测值: train_24: [ 0.]实际值: train_25: [ 0.]预测值: train_25: [ 0.]实际值: train_26: [ 0.]预测值: train_26: [ 0.]实际值: train_27: [ 0.]预测值: train_27: [ 0.]实际值: train_28: [ 0.]预测值: train_28: [ 0.]实际值: train_29: [ 0.]预测值: train_29: [ 0.]实际值: train_30: [ 0.]预测值: train_30: [ 0.]实际值: train_31: [ 0.]预测值: train_31: [ 0.]实际值: train_32: [ 0.]预测值: train_32: [ 0.]实际值: train_33: [ 0.]预测值: train_33: [ 0.]实际值: train_34: [ 0.]预测值: train_34: [ 0.]实际值: train_35: [ 0.]预测值: train_35: [ 0.]实际值: train_36: [ 0.]预测值: train_36: [ 0.]实际值: train_37: [ 0.]预测值: train_37: [ 0.]实际值: train_38: [ 0.]预测值: train_38: [ 0.]实际值: train_39: [ 0.]预测值: train_39: [ 0.]实际值: train_40: [ 0.]预测值: train_40: [ 0.]实际值: train_41: [ 0.]预测值: train_41: [ 0.]实际值: train_42: [ 0.]预测值: train_42: [ 0.]实际值: train_43: [ 1.]预测值: train_43: [ 0.]实际值: train_44: [ 0.]预测值: train_44: [ 0.]实际值: train_45: [ 0.]预测值: train_45: [ 0.]实际值: train_46: [ 0.]预测值: train_46: [ 0.]实际值: train_47: [ 0.]预测值: train_47: [ 0.]实际值: train_48: [ 0.]预测值: train_48: [ 0.]实际值: train_49: [ 0.]预测值: train_49: [ 0.]实际值: train_50: [ 0.]预测值: train_50: [ 0.]实际值: train_51: [ 0.]预测值: train_51: [ 0.]实际值: train_52: [ 0.]预测值: train_52: [ 0.]实际值: train_53: [ 0.]预测值: train_53: [ 0.]实际值: train_54: [ 0.]预测值: train_54: [ 0.]实际值: train_55: [ 0.]预测值: train_55: [ 0.]实际值: train_56: [ 0.]预测值: train_56: [ 0.]实际值: train_57: [ 0.]预测值: train_57: [ 0.]实际值: train_58: [ 0.]预测值: train_58: [ 0.]实际值: train_59: [ 0.]预测值: train_59: [ 0.]实际值: train_60: [ 1.]预测值: train_60: [ 0.]实际值: train_61: [ 0.]预测值: train_61: [ 0.]实际值: train_62: [ 0.]预测值: train_62: [ 0.]实际值: train_63: [ 0.]预测值: train_63: [ 0.]实际值: train_64: [ 0.]预测值: train_64: [ 0.]实际值: train_65: [ 0.]预测值: train_65: [ 0.]实际值: train_66: [ 0.]预测值: train_66: [ 0.]实际值: train_67: [ 0.]预测值: train_67: [ 0.]实际值: train_68: [ 0.]预测值: train_68: [ 0.]实际值: train_69: [ 0.]预测值: train_69: [ 0.]实际值: train_70: [ 0.]预测值: train_70: [ 0.]实际值: train_71: [ 0.]预测值: train_71: [ 0.]实际值: train_72: [ 0.]预测值: train_72: [ 0.]实际值: train_73: [ 0.]预测值: train_73: [ 0.]实际值: train_74: [ 0.]预测值: train_74: [ 0.]实际值: train_75: [ 0.]预测值: train_75: [ 0.]实际值: train_76: [ 0.]预测值: train_76: [ 0.]实际值: train_77: [ 0.]预测值: train_77: [ 0.]实际值: train_78: [ 0.]预测值: train_78: [ 0.]实际值: train_79: [ 0.]预测值: train_79: [ 0.]实际值: train_80: [ 0.]预测值: train_80: [ 0.]实际值: train_81: [ 0.]预测值: train_81: [ 0.]实际值: train_82: [ 0.]预测值: train_82: [ 0.]实际值: train_83: [ 0.]预测值: train_83: [ 0.]实际值: train_84: [ 0.]预测值: train_84: [ 0.]实际值: train_85: [ 0.]预测值: train_85: [ 0.]实际值: train_86: [ 0.]预测值: train_86: [ 0.]实际值: train_87: [ 0.]预测值: train_87: [ 0.]实际值: train_88: [ 0.]预测值: train_88: [ 0.]实际值: train_89: [ 0.]预测值: train_89: [ 0.]实际值: train_90: [ 0.]预测值: train_90: [ 0.]实际值: train_91: [ 0.]预测值: train_91: [ 0.]实际值: train_92: [ 0.]预测值: train_92: [ 0.]实际值: train_93: [ 0.]预测值: train_93: [ 0.]实际值: train_94: [ 0.]预测值: train_94: [ 0.]实际值: train_95: [ 0.]预测值: train_95: [ 0.]实际值: train_96: [ 0.]预测值: train_96: [ 0.]实际值: train_97: [ 0.]预测值: train_97: [ 0.]实际值: train_98: [ 0.]预测值: train_98: [ 0.]实际值: train_99: [ 0.]预测值: train_99: [ 0.]实际值: train_100: [ 0.]预测值: train_100: [ 0.]实际值: train_101: [ 0.]预测值: train_101: [ 0.]实际值: train_102: [ 0.]预测值: train_102: [ 0.]实际值: train_103: [ 0.]预测值: train_103: [ 0.]实际值: train_104: [ 1.]预测值: train_104: [ 0.]实际值: train_105: [ 0.]预测值: train_105: [ 0.]实际值: train_106: [ 0.]预测值: train_106: [ 0.]实际值: train_107: [ 0.]预测值: train_107: [ 0.]实际值: train_108: [ 0.]预测值: train_108: [ 0.]实际值: train_109: [ 0.]预测值: train_109: [ 0.]实际值: train_110: [ 0.]预测值: train_110: [ 0.]实际值: train_111: [ 0.]预测值: train_111: [ 0.]实际值: train_112: [ 0.]预测值: train_112: [ 0.]实际值: train_113: [ 0.]预测值: train_113: [ 0.]实际值: train_114: [ 0.]预测值: train_114: [ 0.]实际值: train_115: [ 0.]预测值: train_115: [ 0.]实际值: train_116: [ 0.]预测值: train_116: [ 0.]实际值: train_117: [ 0.]预测值: train_117: [ 0.]实际值: train_118: [ 0.]预测值: train_118: [ 0.]实际值: train_119: [ 0.]预测值: train_119: [ 0.]实际值: train_120: [ 0.]预测值: train_120: [ 0.]实际值: train_121: [ 0.]预测值: train_121: [ 0.]实际值: train_122: [ 0.]预测值: train_122: [ 0.]实际值: train_123: [ 0.]预测值: train_123: [ 0.]实际值: train_124: [ 0.]预测值: train_124: [ 0.]实际值: train_125: [ 0.]预测值: train_125: [ 0.]实际值: train_126: [ 0.]预测值: train_126: [ 0.]实际值: train_127: [ 0.]预测值: train_127: [ 0.]实际值: train_128: [ 0.]预测值: train_128: [ 0.]实际值: train_129: [ 0.]预测值: train_129: [ 0.]实际值: train_130: [ 0.]预测值: train_130: [ 0.]实际值: train_131: [ 0.]预测值: train_131: [ 0.]实际值: train_132: [ 1.]预测值: train_132: [ 0.]实际值: train_133: [ 1.]预测值: train_133: [ 0.]实际值: train_134: [ 0.]预测值: train_134: [ 0.]实际值: train_135: [ 0.]预测值: train_135: [ 0.]实际值: train_136: [ 1.]预测值: train_136: [ 0.]实际值: train_137: [ 0.]预测值: train_137: [ 0.]实际值: train_138: [ 0.]预测值: train_138: [ 0.]实际值: train_139: [ 0.]预测值: train_139: [ 0.]实际值: train_140: [ 0.]预测值: train_140: [ 0.]实际值: train_141: [ 0.]预测值: train_141: [ 0.]实际值: train_142: [ 0.]预测值: train_142: [ 0.]实际值: train_143: [ 0.]预测值: train_143: [ 0.]实际值: train_144: [ 0.]预测值: train_144: [ 0.]实际值: train_145: [ 0.]预测值: train_145: [ 0.]实际值: train_146: [ 0.]预测值: train_146: [ 0.]实际值: train_147: [ 0.]预测值: train_147: [ 0.]实际值: train_148: [ 0.]预测值: train_148: [ 0.]实际值: train_149: [ 0.]预测值: train_149: [ 0.]实际值: train_150: [ 0.]预测值: train_150: [ 0.]实际值: train_151: [ 0.]预测值: train_151: [ 0.]实际值: train_152: [ 1.]预测值: train_152: [ 0.]实际值: train_153: [ 0.]预测值: train_153: [ 0.]实际值: train_154: [ 0.]预测值: train_154: [ 0.]实际值: train_155: [ 0.]预测值: train_155: [ 0.]实际值: train_156: [ 0.]预测值: train_156: [ 0.]实际值: train_157: [ 0.]预测值: train_157: [ 0.]实际值: train_158: [ 0.]预测值: train_158: [ 0.]实际值: train_159: [ 0.]预测值: train_159: [ 0.]实际值: train_160: [ 0.]预测值: train_160: [ 0.]实际值: train_161: [ 0.]预测值: train_161: [ 0.]实际值: train_162: [ 0.]预测值: train_162: [ 0.]实际值: train_163: [ 0.]预测值: train_163: [ 0.]实际值: train_164: [ 0.]预测值: train_164: [ 0.]实际值: train_165: [ 0.]预测值: train_165: [ 0.]实际值: train_166: [ 0.]预测值: train_166: [ 0.]实际值: train_167: [ 0.]预测值: train_167: [ 0.]实际值: train_168: [ 0.]预测值: train_168: [ 0.]实际值: train_169: [ 0.]预测值: train_169: [ 0.]实际值: train_170: [ 0.]预测值: train_170: [ 0.]实际值: train_171: [ 0.]预测值: train_171: [ 0.]实际值: train_172: [ 0.]预测值: train_172: [ 0.]实际值: train_173: [ 0.]预测值: train_173: [ 0.]实际值: train_174: [ 0.]预测值: train_174: [ 0.]实际值: train_175: [ 0.]预测值: train_175: [ 0.]实际值: train_176: [ 0.]预测值: train_176: [ 0.]实际值: train_177: [ 0.]预测值: train_177: [ 0.]实际值: train_178: [ 0.]预测值: train_178: [ 0.]实际值: train_179: [ 0.]预测值: train_179: [ 0.]实际值: train_180: [ 1.]预测值: train_180: [ 0.]实际值: train_181: [ 0.]预测值: train_181: [ 0.]实际值: train_182: [ 0.]预测值: train_182: [ 0.]实际值: train_183: [ 0.]预测值: train_183: [ 0.]实际值: train_184: [ 0.]预测值: train_184: [ 0.]实际值: train_185: [ 0.]预测值: train_185: [ 0.]实际值: train_186: [ 0.]预测值: train_186: [ 0.]实际值: train_187: [ 0.]预测值: train_187: [ 0.]实际值: train_188: [ 0.]预测值: train_188: [ 0.]实际值: train_189: [ 0.]预测值: train_189: [ 0.]实际值: train_190: [ 0.]预测值: train_190: [ 0.]实际值: train_191: [ 0.]预测值: train_191: [ 0.]实际值: train_192: [ 0.]预测值: train_192: [ 0.]实际值: train_193: [ 0.]预测值: train_193: [ 0.]实际值: train_194: [ 0.]预测值: train_194: [ 0.]实际值: train_195: [ 0.]预测值: train_195: [ 0.]实际值: train_196: [ 1.]预测值: train_196: [ 0.]实际值: train_197: [ 0.]预测值: train_197: [ 0.]实际值: train_198: [ 0.]预测值: train_198: [ 0.]实际值: train_199: [ 0.]预测值: train_199: [ 0.]

回答:

你的数据集非常不平衡/偏斜。你有94%的标签为0,只有6%的标签为1。神经网络学会了只要预测所有结果为0就能获得很高的性能。

为了避免这种情况,你可以调整数据集,使得标签1和标签0各占50%,或者你可以使用fit函数中的”class_weight”参数:

class_weight: 一个将类别映射到权重值的字典,用于调整损失函数(仅在训练过程中)。 来源

在你的情况下,我会使用

fit(..., class_weight = {0:1, 1:15.5})

因为你在类别0中的样本数是类别1的15.5倍。这里的数字只是表示当你错误分类一个0时,损失会乘以1,而当你错误分类一个1时,损失会乘以15.5…更多信息请点击这里

另外,我不建议在你的情况下使用准确率指标来真正评估结果,而是应该查看f1分数指标,这对于这种类型的数据集更加合适。 维基百科上的f1分数

希望这对你有帮助?

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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