本文
约
4000字
,建议阅读
8分钟
。
本文介绍了医疗行业中的深度学习技术,主要从计算机视觉、自然语言处理、强化学习和通用方法这些方面入手。
近日,来自斯坦福大学和 Google Research 的研究者对医疗领域中的深度学习应用进行了综述,并将研究文章发表在《Nature Medicine》上。
本文从这些计算技术对关键医疗领域的影响,并探索了如何构建端到端系统。计算机视觉方面主要关注医疗成像,自然语言处理方面主要涉及电子健康档案数据,强化学习方面主要讨论机器人辅助手术,通用深度学习方法主要涉及基因组学。
深度学习是机器学习的子领域,由于算力和数据的增长,深度学习在过去 6 年中得到了巨大发展。该领域见证了机器理解和控制数据能力的显著进展,包括图像、语言和语音。医疗行业从深度学习中受益良多,因为该行业生成海量数据
(
光美国就有 150 艾字节(10^18 字节)的数据,每年增长 48%)
,医疗设备和数据记录系统也在不断增多。
机器学习与其它计算机编程类型不同,它使用从大量样本中自动提取的统计、数据驱动规则将算法的输入转换成输出
(无需人类过多参与规则制定)
。之前,构建机器学习系统需要利用领域专业知识和人类工程来设计特征提取器,将原始数据转换成学习算法能够从中检测出模式的合适表征。而深度学习作为表征学习的一种形式,输入原始数据后可以自行习得模式识别所需表征,它们由多层表征组成。这些层通常按顺序排列,并包含大量粗糙的非线性运算,从而使一个层的表征
(最开始是原始数据输入)
输入到下一个层,最终转换成较抽象的表征。随着数据在系统各层中传播,输入空间不断变形,直到数据点可识别为止
(见图 1a)
。用这种方式可以学得高度复杂的函数。
图 1:深度学习。a. 一个简单的多层深度神经网络,输入为两个类别的数据(分别用不同颜色来标注),数据在各层中传播时网络不断使其变形,从而使数据线性可分。最终输出层作为分类器,输出的是某个类别的概率。该示例介绍了大型网络使用的基本概念。b. 接受多种数据类型输入的大型网络示例,数据类型包括图像、时序数据等,网络处理每种数据类型时在其低级塔(tower)中学习有用的特征。然后融合每个塔中的数据,输入高层,使深度神经网络对不同数据类型执行推断,这种能力在医疗行业中的重要性与日俱增。
深度学习模型可扩展至大型数据集
(部分原因在于它们可在专用计算硬件上运行)
,并继续改进,提高在更多数据上的能力,这也使得深度学习模型优于很多经典机器学习方法。深度学习系统可以接受多种数据类型的输入,异质医疗数据就具备这种属性
(图 1b)
。使用监督学习方法训练的模型最为常见,其数据集由输入数据点
(如皮肤病变图像)
和对应的输出数据标签
(如良性或恶性)
组成。强化学习中的计算智能体通过试错或专家演示来学习,在采用深度学习技术后,强化学习也取得了长足进步,在游戏等领域取得了突出成绩
(如围棋)
。在医疗领域,当学习需要医生演示时,强化学习非常有用,例如机器人辅助手术中智能体学习给伤口缝合。
计算机视觉
深度学习的一些伟大成就出现在计算机视觉领域
(CV)
。CV 主要研究图像和视频理解,处理目标分类、检测和分割等任务,这些在判断病人射线照片中是否包含恶性肿瘤时非常有用。卷积神经网络
(CNN)
用来处理具备空间不变性的数据(
如图像,它们的意义不会发生改变)
,也因此成为该领域的重要技术。
拿医疗成像来说,它从图像分类和目标检测的近期进展中受益良多。
很多研究在皮肤科、放射科、眼科、病理科的复杂诊断中取得了不错的结果
(见图 2)
。深度学习系统可以为医生提供辅助意见,标注出图像中有问题的区域。
图 2:医疗成像。CNN 可以在多种医疗影像上训练,包括放射科、病理科、皮肤科和眼科。信息从左到右传播。输入图像馈入 CNN 后,网络会使用卷积、池化、全连接层等简单操作按顺序将数据转换成扁平向量。输出向量的元素表示疾病出现的概率。在训练过程中,网络层的内部参数会迭代调整,以提高准确率。通常,较低的层(左)学习简单的图像特征——边和基本的形状,这对右侧的高级表征有所影响。预测任务包括图像分类(即恶性 vs 良性)和医疗特征定位(如肿瘤)。
使用 CNN 方法进行图像级别的诊断已经很成功了。
这很大程度上归功于 CNN 在目标分类任务上可与人类媲美的性能。这些网络在迁移学习中展现了强大的性能,CNN 最初在与目标任务无关的大型数据集
(如 ImageNet)
上进行训练,然后在目标任务相关的较小数据集
(如医疗影像)
上进行微调。第一步,算法利用大量数据学习图像中的自然统计数据,如直线、曲线、颜色等。第二步,重新训练算法的高级层来对诊断病例进行辨别。类似地,目标检测和分割算法可识别图像中与特定目标对应的部分。CNN 方法使用图像数据作为输入,然后输入经过多次卷积和非线性操作进行迭代变化,直到原始数据矩阵被转换成潜在图像类别的概率分布
(如医疗诊断案例)。
深度学习方法在大量诊断任务上取得了医生级别的准确率,包括识别黑痣和黑色素瘤,从眼底图像和光学相干断层扫描
(OCT)
图像中检测糖尿病性视网膜病变、判断心血管风险,提供转诊建议,以及从乳房 X 光片中检测乳腺病变、使用核磁共振成像进行脊柱分析。甚至有研究证明单个深度学习模型在多个医疗模态中都很有效
(如放射科和眼科)
。但是,这些研究的一个关键限制是人类医生与算法性能之间的对比缺乏临床背景,它们把执行诊断的情形限制在仅使用图像的条件下。而这通常会增加人类医生进行诊断的难度,现实医疗环境中医生可以看到医疗影像和一些补充数据,包括病人的病史、健康记录、其他检测和口述等。
一些诊所开始使用图像目标检测和分割技术处理紧急、不易被发现的病例,如使用放射图像标注大脑中的大动脉闭塞,病人在永久性大脑损伤发生之前所剩的时间极其有限
(几分钟)
。此外还有癌症病理切片读取,该任务需要人类专家费力地扫描和诊断超高画素图像
(或同样大小的实体图像)
,现在该任务可以使用能够检测有丝分裂细胞或肿瘤区域的 CNN 来辅助进行。训练之后的 CNN 用于量化组织病理图像中的 PD-L1 数量,这项任务对确定病人要接受哪种免疫肿瘤药物非常重要。结合像素级的分析,CNN 甚至被用于发现生存概率相关组织的生物学特征。
为新的医疗成像任务构建监督式深度学习系统的主要局限在于是否有足够大的标注数据集。
用于特定任务的小型标注数据集比较容易收集,但算法在新数据上的性能会比较差。在这些情况下,数据增强技术对提高算法的泛化能力有所帮助。类似地,大型无标注数据集也很容易收集,但它需要改进的半监督和无监督技术,如生成对抗网络。
自然语言处理
自然语言处理
(NLP)
主要通过分析文本和语音来推断词的语义。循环神经网络
(RNN)
能高效处理该领域的序列数据,如语言、语音和时序数据等,它在 NLP 中起到了非常重要的作用。NLP 中的机器翻译、文本生成和图像描述取得了显著成功。在医疗领域中,序列深度学习和语言技术为电子健康档案
(EHR)
等应用提供了很多支持。
EHR 目前正在迅速普及,大型医疗机构的 EHR 能记录超过一千万患者过去 10 年内的医疗活动。
此外,单独一次住院大约能产生 15 万条数据,因此从这些数据能获取的有效信息与优势是十分明显的。总的来说,这种规模的 EHR 大概表示了 20 万年的医生智慧累积和 1 亿年的患者医疗结果数据,其中还包含足够多的罕见病症。因此将深度学习应用到 EHR 数据是一个迅速发展的领域。
下图 3 展示了为 EHR 构建深度学习系统的主要技术流程。其中系统首先会汇集多个机构的数据来构建原始数据,这能确保构建一个可泛化的系统。然后将各种非结构化的 EHR 数据标准化并解析为患者的时序数据,这可以令数据更适合使用深度学习进行训练。
因此,最后我们就能推断出高级医疗问题的答案,例如
“患者病史中的哪些信息与当前疾病相关?”、“患者目前的疾病或问题列表是什么?”、“有哪些介入治疗的可能性?”。
图 3:使用 EHR 进行预测。其中 a 所示的非结构化 EHR 数据是使用不同数据格式存储的,因此基于一所医院的病例构建的模型无法用于其他医院的数据。那么通过步骤 b 可以将不同格式的数据映射为基于 FHIR 的相同格式,它们都标准化为同质数据。接下来,c 根据用户的时间线序列化数据,因此基于时序的深度学习技术能直接应用到整个 EHR 数据集上,并为单个病人做出预测。
在进行预测时,目前大多数研究工作都在有限的结构化数据上使用监督学习,这些数据包括实验室结果、生命体征、诊断码和人口统计数据等。为了解释 EHR 中的结构化和非结构化数据,研究者开始使用无监督学习方法,例如自编码器等。最近深度学习通过卷积和循环神经网络建模结构化事件的时序序列
(这些事件出现在患者的档案中)
,预测未来的医疗事件。这些工作大多数都聚焦在重症监护医学信息数据库
(MIMIC)
,它包含来自单个医疗中心的大量重症监护
(ICU)
患者数据。虽然 ICU 患者比非 ICU 患者能产生更多的 EHR 数据,但非 ICU 患者的数量要远远超过 ICU 患者。因此目前仍然不确定从这些数据获得的模型如何泛化到更广泛的人群中。
下一代语音识别和信息抽取模型可能会开发临床语音助手,从而准确地转录患者就诊信息。
医生在工作日的 11 小时中,需要花 6 小时处理 EHR 文档,而这会减少用于患者的时间。因此自动化转录将缓解这种问题,并促进更多更有价值的服务。基于 RNN 的语言翻译模型能够使用端到端的技术直接将语音转换为另一种语言的文本。这种技术能直接将患者和医生的对话转化为转录文本记录。不过关键难点在于,在准确总结对话的同时,模型还需要从对话中对每个医疗实体的属性和状态进行分类。虽然早期的人机交互实验非常有前景,但这些技术还没有广泛部署到医疗实践中。
未来的研究工作可能会集中在开发新算法,以更好地利用 EHR 中信息丰富的非结构化数据。例如在开发预测系统时,临床记录通常被省略或采用节选编辑,这种非结构化数据就含有非常多的诊断信息。一般我们通过半监督学习结合结构化和非结构化数据,其中大规模 RNN 展现出非常优秀的性能与结构。这种数据组合允许模型从更广泛的数据类型中学习更多的知识,并在多项任务中超过其它技术,这些任务包括死亡率、再入院率、住院时间和诊断预测等。
强化学习
强化学习是指训练计算智能体成功与环境互动的技术,通常是为了实现特定目标。
强化学习可通过试错、演示或混合方法来实现。一旦智能体开始在其环境中采取行动,奖励和后果的迭代反馈循环会训练智能体更好地完成目标。从专家演示中学习有两种方式:通过监督学习
(即模仿学习)
直接预测专家的行为;推断专家的目标
(即逆向 RL)
。要想成功训练智能体,模型函数至关重要,它把环境中的感官信号作为输入,输出智能体要采取的下一步行动。在深度强化学习中,深度学习模型作为模型函数,颇具前景。
可以从深度强化学习中受益的一大医疗领域是机器人辅助手术
(RAS)
。目前,机器人辅助手术的主要方式是医生以遥控方式指导机器人操纵器械。通过使用计算机视觉模型
(如 CNN)
来观察手术环境、使用强化学习方法学习外科医生的动作,深度学习有效提高了机器人辅助手术的稳健性和适应性。
这些技术支持高度重复与时间敏感的手术任务,如缝合和打结。例如,计算机视觉技术
(如用于目标检测/分割和立体视觉的 CNN)
可以根据图像数据重建开放性伤口的样子,然后通过解决路径优化问题生成缝合或打结轨迹,该路径优化问题试图在考虑外部约束
(如关节限制和障碍)
的同时找到最优轨迹。与此类似,用图像训练的 RNN 通过学习外科医生的动作序列能够学会自动打结。