医学图像分类_TauMed:医学诊断领域中的图像分类测试数据扩增

fe6f85fcce02cafd9a0995d1fed7a2aa.png

南京大学智能软件工程实验室

iselab.cn

摘要:

深度学习在医学分类方面取得了长足的进步。但是,在许多现实的环境中,用于训练和测试的数据不足且不平衡,深度学习模型将很容易过度拟合且泛化能力很差。并且由于医院和患者的状况并不总是适合于收集数据,并且具有相同疾病的患者数据也并非总是可用,因此在医学领域经常出现需要收集平衡且足够的数据的难题。此外,神经网络需要在大量准确而可靠的数据上进行训练,数据不正确或表示不正确可能会导致系统的性能变差。在这项研究中,我们通过对医学数据集执行传统和先进的增强技术,以生成足够且平衡的图像。同时,我们使用分类准确性和 DeepGini 得分作为度量标准,以评估扩增数据集的有效性。

其视频位于https://www.youtube.com/watch?v=P0aQXoE4g。

关键词:

数据扩增,图像分类,医疗图像

一、 绪论

近年来,深度学习在各个领域都取得了巨大的进步和成就。但是,与应用深度学习的其他区域不同,在医疗和自动驾驶等对安全至关重要的领域中,模型的安全性需求通常更高。深度学习模型的安全性在很大程度上取决于训练和测试模型中的数据质量。与 ImageNet 和与其类似的提供数百万个图像的自然图像域数据集不同,医学数据集中可用的训练图像要少得多。足够且平衡的数据成为影响模型质量的关键因素。但是,由于医院和患者的状况并不总是适合于收集数据,并且具有相同疾病的患者数据也并非总是可用,因此在医学领域经常出现收集平衡且足够数据的难题。对于给定的目标疾病,健康的患者要多于不健康的患者。对于给定的患者,通常有比不正常图像更多的正常图像。因此,如何获得足够的平衡图像数据已成为提高模型质量和性能的关键因素。

有多种数据增强方法可用于克服足够数据的问题。这些方法可以分为传统方法(改变旋转,对比度,亮度等)和高级方法(纹理和样式转换等)两类。高级方法包括不同的学习模型和耗时的方法,而传统方法则成本低廉且易于应用。

传统的数据增强通常用于解决数据不平衡问题。通过随机删除样本更多的类的数据来解决数据不平衡问题。但是,这种方法不会增加稀有类的学习能力。

另外,一种新的方法称为特征表示和相似度矩阵的统一学习,该方法使用单个深度卷积神经网络(CNN)对种子标记的数据集进行训练,以从大型未标记的数据集中为每个类别推荐最相似的图像,以供医学专家验证,并将其包含在种子标记的数据集中。它的真实数据增强功能大大减少了昂贵的手动标记时间。它很容易扩展到其他医学图像分类问题。但是,该方法的应用范围有限,算法过于复杂,推荐效率不如我们期望的高。

因此,在本文中,我们从传统扩增技术中选择了无损变换和非刚性变换,以及先进增强技术(如 GAN,SMOTE,AutoAugment)在数据集上生成足够且平衡的图像。同时,我们使用 DeepGini 得分和分类精度作为度量标准,评估扩增数据集的质量并与原始数据集进行比较。

与仅使用传统数据扩增

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我可以为您介绍一下mnist数据分类数据的相关内容。 mnist数据集是一个常用的手写数字识别数据集,包含了60000个训练样本和10000个测试样本。每个样本都是一个28x28像素的灰度图像,表示了0到9之间的一个手写数字。 对于mnist数据集的分类任务,可以使用各种机器学习算法或深度学习模型来进行训练和预测。常见的深度学习模型包括卷积神经网络(CNN)和循环神经网络(RNN)。这些模型可以通过对训练样本进行学习,来预测测试样本的数字标签。 数据是指通过对原始数据进行一系列变换和操作,生成更多的训练样本,以加模型的泛化能力和鲁棒性。在mnist数据,常见的数据操作包括旋转、平移、缩放、翻转等。这些操作可以通过图像处理库(如OpenCV)或深度学习框架(如TensorFlow、PyTorch)的函数来实现。 通过数据,可以生成更多样本,使得模型在训练过程能够学习到更多的变化和特征,从而提高模型的分类性能。 下面是一个使用Python和TensorFlow进行mnist数据分类数据的示例代码: ```python import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.preprocessing.image import ImageDataGenerator # 加载mnist数据集 (x_train, y_train), (x_test, y_test) = mnist.load_data() # 数据 datagen = ImageDataGenerator( rotation_range=10, # 随机旋转角度范围 width_shift_range=0.1, # 随机水平平移范围 height_shift_range=0.1, # 随机垂直平移范围 zoom_range=0.1, # 随机缩放范围 horizontal_flip=False # 不进行水平翻转 ) # 对训练集进行数据 x_train_augmented = datagen.flow(x_train, y_train, batch_size=32) # 构建模型 model = tf.keras.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train_augmented, epochs=10) # 在测试集上评估模型 model.evaluate(x_test, y_test) ``` 这段代码首先加载mnist数据集,然后使用ImageDataGenerator进行数据操作。接下来,构建一个简单的神经网络模型,并使用编译后的模型对后的训练集进行训练。最后,使用测试集评估模型的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值