使用深度学习进行 COVID-19 诊断






3.55/5 (6投票s)
在本文中,我们介绍迁移学习和 ResNet50。
在本系列文章中,我们将应用一个深度学习网络 ResNet50 来诊断胸部 X 光图像中的 Covid-19。我们将使用 Python 的 TensorFlow 库在 Jupyter Notebook 中训练神经网络。
您需要用于此项目的工具和库是
IDE
库
我们假设您熟悉使用 Python 和 Jupyter Notebook 进行深度学习。如果您是 Python 新手,请从本教程开始。如果您还不熟悉 Jupyter,请从这里开始。
引言
COVID-19 对我们的生活产生了巨大影响。它于 2020 年 3 月 11 日被世界卫生组织 (WHO) 宣布为大流行病,并迅速蔓延到世界各地。快速诊断感染对于治疗患者和限制病毒传播至关重要。最常见的实验室检测方法是实时反转录聚合酶链式反应 (PCR)。然而,该技术不够高效:它耗时且通常灵敏度较低。
幸运的是,深度学习为诊断胸部 X 光中的 Covid-19 并将其与其他细菌和病毒疾病区分开来提供了一种有效的补充方法。几篇同行评审研究表明,如果用足够多的图像进行训练,深度学习可以检测到胸部的 Covid-19 感染。这些研究主要使用基于迁移学习的网络来微调预训练模型以执行新任务:Covid-19 检测。
在这个项目中,我们将向您展示如何应用迁移学习来重新训练深度学习网络,将胸部 X 光图像分类为 Covid-19 或非 Covid-19。在本系列结束时,我们将拥有一个准确率高于 95% 的神经网络,可以诊断 COVID-19。它甚至能够显示胸部 X 光图中导致怀疑 COVID-19 诊断的区域热图。
迁移学习
深度学习 (DL) 是人工智能 (AI) 的一个子集,涉及具有多个隐藏层(多层)的 DL 网络架构。DL 网络进行分层学习,这意味着特征可以从低到高在网络的不同层级进行学习。
许多 DL 网络都使用庞大的数据集进行训练,称为ImageNet,这赋予了它们非常强大的特征提取能力。因此,使用这些网络学到的权重和滤波器比从头开始构建网络更有效,后者可能需要大量的图像和很长的时间才能获得相似的特征提取能力。
通过冻结其学到的权重,并用新层(取决于新的分类任务)替换其全连接层,来微调预训练模型以执行额外的分类任务的方法,称为“迁移学习”。
在这个项目中,我们将使用 ResNet50——一个非常深的网络——我们期望它在对 Covid-19 和非 Covid-19 胸部 X 光片进行分类时表现良好。
残差学习:ResNet50
近年来,DL 网络,特别是卷积神经网络 (CNN),已在各个领域得到应用,以出色的性能解决了问题。CNN 在工作原理、内部结构和层数方面都进行了重大更新。2012 年首次提出了 8 层的AlexNet,随后是 2014 年的 18 层VGG,2015 年的GoogleNet,其结构更深,有 22 层,并添加了inception 模块。
这些网络确实变得非常深,就像 GoogleNet 一样。但这种额外的深度带来了一些问题。人们注意到“非常深”的 DL 在网络训练期间会使优化变得困难。这会影响网络的泛化性能——也就是说,网络在其训练数据集上表现得非常好,但对它在训练期间未见过的数据泛化能力较差。
为了解决这个问题,残差学习于 2016 年被提出,用于训练非常深的 DL 网络。残差学习,或残差网络 (ResNets),允许在某些层之间进行“跳跃”(也称为残差)连接(而不是像 AlexNet 等普通 DL 网络那样在堆叠层之间进行连续连接)。
在使用反向传播训练 DL 网络时,会计算误差的梯度并将其传播到浅层。在更深的层中,这个误差会变小,直到最终消失。这是非常深的网络中的梯度消失问题,正如 He 等人 (2016) 所提出的,可以通过残差学习来解决,如图 1 和图 2 所示。
下一步
在下一篇文章中,我们将讨论此项目的材料和方法。敬请期待!