如何解决在图像分类中提高精度曲线的平滑度
我使用TILDA图像数据集开发了卷积神经网络,使用以下模型可以提供90%以上的准确性。我对模型使用了4个批次和100个时期。
model = keras.Sequential([
layers.Input((30,30,1)),layers.Conv2D(8,2,padding='same',activation='relu',kernel_regularizer=regularizers.l2(0.01)),layers.BatchNormalization(),layers.Conv2D(16,layers.Conv2D(32,activation='sigmoid',layers.MaxPooling2D(),layers.Flatten(),layers.Dropout(0.5),layers.Dense(5,activation = "softmax"),])
使用上面的模型,我可以绘制以下图形来提高训练和验证的准确性。
您对提高这些曲线的平滑度有什么建议吗?得到这样的曲线的可能原因是什么?感谢您提出的改进此模型的建议。
解决方法
以下内容可能有助于获得更平滑的曲线:
-
永远不要在最后一层之前使用dropout。模型中的
MaxPool + Dropout
丢弃流入最终层的数据的87.5%。避免池化,除非需要全局池或自适应池以获取固定形状的输出。如果必须合并,则需要大量内核来补偿信息丢失。 -
使用较低的学习率。从训练曲线可以看出,该模型指向的是最小值,但有多个障碍。
-
您是否在没有动力的情况下使用SGD?如果是,请介绍势头。还要考虑具有内置动量的自适应优化器,例如Adam。
-
为什么在
sigmoid
之间?乙状结肠降低了梯度幅度,使学习变慢。 -
如果只关心曲线,而不受参数数量的限制,请考虑再添加一些层和/或通道。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。