【问题标题】:How can i improve my CNN's accuracy evolution?我怎样才能提高我的 CNN 的准确度演变?
【发布时间】:2020-10-05 11:06:07
【问题描述】:

所以,我正在尝试创建一个 CNN,它可以预测 X 射线胸部图像中是否有任何“支持设备”,但是在训练我的模型时,它似乎没有学到任何东西。

我正在使用一个名为“CheXpert”的数据集,它有超过 200.000 张图像可供使用。在做了一些“清理”之后,最终的数据集最终得到了 100.000 张图像。 就模型而言,我导入了 vgg16 预训练模型的卷积基础,并由我自己添加了 2 个完全连接的层。然后,我冻结了所有的卷积基础,只让完全连接的层可以训练。代码如下:

from keras.layers import GlobalAveragePooling2D
from keras.models import Model

pretrained_model = VGG16(weights='imagenet', include_top=False)

pretrained_model.summary()

for layer in pretrained_model.layers:
    layer.trainable = False

x = pretrained_model.output
x = GlobalAveragePooling2D()(x)

dropout = Dropout(0.25)

# let's add a fully-connected layer
x = Dense(1024, activation='relu')(x)
x = dropout(x)
x = Dense(1024, activation = 'relu')(x)
predictions = Dense(1, activation='sigmoid')(x)

final_model = Model(inputs=pretrained_model.input, outputs=predictions)

final_model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

据我所知,正常的行为应该是准确率应该从低开始,然后随着时代的增长而增长。但在这里它只在相同的值(0.93 和 0.95)内振荡。很抱歉,我无法上传图片来向您展示图表。

总而言之,我想知道准确性的微小差异是否意味着模型没有学习任何东西。

我有一个假设:在数据集的所有 100.000 张图像中,95.000 张的标签为“1”,只有 5.000 张的标签为“0”。我认为如果用“1”缩小图像将它们与“0”图像等同起来,结果会改变。

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    缺少标记为“0”的图像肯定对 CNN 没有帮助。我还建议降低学习率并调整批量大小以查看是否有变化。 我希望它有所帮助。

    【讨论】:

    • 不确定,但基于上述-也许只是一个做这样的事情的一般好框架是:github.com/keras-team/keras-tuner ??
    • 您可以手动设置 rmsprop 优化器的学习率,以最终提高准确性。在这里查看keras.io/optimizers(对于 rmsprop,默认 lr 为 0.001)
    【解决方案2】:

    由于训练数据不平衡,我建议您可以在训练步骤中设置“class_weight”。您拥有的数据越多,您设置的 class_weight 就越低。

    class_weight = {0: 1.5, 1: 0.5}
    model.fit(X, Y, class_weight=class_weight)
    

    您可以在keras document 中查看class_weight 的增加。

    class_weight:可选的字典映射类索引(整数)到 一个权重(浮点)值,用于加权损失函数(在 仅限培训)。这对于告诉模型“支付更多 注意”来自代表性不足的班级的样本。

    【讨论】:

      猜你喜欢
      • 2021-04-20
      • 1970-01-01
      • 2021-10-14
      • 2021-04-16
      • 2021-11-09
      • 2020-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多