聊起 AI, 画面都充斥着机械语言: 精密高级的芯片, 光怪陆离的智能产业...... 你眼中的 AI 有什么样的能力? 能给传统行业带来哪些变革与发展? 基于此, 云加社区联手知乎科技, 从知乎 AI 与传统行业相关话题中精选内容落地社区专题「 AI 与传统行业的融合 」.
本文为 "AI 将如何影医疗" 的精华内容分享.
我们的第一个切入点是消化道早期癌症筛查. 消化道肿瘤发病率占我国癌症发病率的 39%,5 年生存率低于 80%, 而这类肿瘤若能早期发现, 治愈率高达 95%.
自 2017 年 8 月从食管癌筛查起步, 我们在病种上不断突破, 已串联起整个消化道(食管癌, 胃癌, 结直肠癌)AI 筛查解决方案, 在技术上不断深入不断提升准确率, 并且在医生实际体验上不断优化. 目前已累计辅助医生阅片 2.7 亿张, 服务近 160 万患者, 提示高风险 21 万次.
从最开始的每月一个版本, 到后来的
2017 年, 再次兴起的人工智能还在寻找产业落地, 而亟待信息化, 智能化的医疗系统在寻找技术突破, 于是, 腾讯, 医疗, 看似不相关的两者, 在 2017 年走到了一起. 医疗 AI, 用科技赋能医疗, 创造医疗资源, 提升全社会的医疗水平, 这里同时蕴藏着巨大的社会价值和商业价值. 当然机遇总是伴随着挑战, 人工智能被媒体包装的神乎其神, 而医疗体系对结果的准确性有着最为苛刻的要求, 技术上的挑战远远不是 "下几个开源算法" 就能搞定的. 带着科技向善的决心和动力, 我们团队的小伙伴们开始了探索医疗 AI 的征程.
我们的第一个切入点是消化道早期癌症筛查. 消化道肿瘤发病率占我国癌症发病率的 39%,5 年生存率低于 80%, 而这类肿瘤若能早期发现, 治愈率高达 95%. 内镜检查是消化道病变筛查和诊断的常用检查手段. 由于消化道疾病本身的复杂程度, 和医生操作的人为因素, 内镜检查漏诊率高(美国高达 27%, 中国更不容乐观)[1], 意味着很多患者错过了最佳治疗时机. 因此基于计算机视觉的内镜自动诊断意义重大, 可以协助医生准确, 实时, 一致的检出病灶, 减少漏诊, 尤其是对于缺乏高质量医疗资源的基层医疗机构. 为了做好医生的第三只眼, 需要医疗 AI 首先具有超过医生的准确率, 这对算法的开发提出了挑战.
巧妇难为无米之炊
深度学习需要大量精准标注的数据进行训练, 正所谓有多少 "人工" 才有多少智能. 这也是为什么深度学习再次崛起的一大契机, 就是百万量级精准标注数据集, ImageNet 的公开[2]. 当场景从自然图像切换到医学图像后, 数据获取变得困难, 但对效果准确性的要求不降反升, 因为每一个错误的判断都事关生死.
随着上传图片, 视频成为人们生活的日常, 海量自然图像已存在于互联网上, 像百万量级图片数据 ImageNet,24 万视频数据 youtubeBB, 均为搜索获得, 难点在于过滤筛选而不是获取. 相反, 医学图像是患者的敏感信息, 只能从医院获取, 有着层层关卡, 首先需要建立企业和医院间的合作, 然后在医院打通数据收集的整条流程, 明确规范, 做好数据脱敏, 获得伦理委员会的审批, 最后拉长时间线一点一点积累数据. 因此与动辄百万, 千万量级的自然图像数据集相比, 一个几千, 或几万的数据集已是医疗领域的 "大数据".
除了数据本身, 数据的标注在医学领域也变得困难. 不像自然图像的标注非黑即白, 很多医学判断本身就模棱两可, 不像区分猫还是狗那么简单, 不同医生根据自己的经验可能给出不同的诊断结果, 甚至同一个医生前后两次判断也可能不一致. 越是这样模糊不定的问题, 越是希望去学习最资深的医生的判断, 而这些医学专家已奋战在医疗第一线, 能用来标注的时间有限, 也难通过激励机制来形成约束力, 标注的质量和速度难把控. 能够高效量产的标注人员, 一般又欠缺专业知识, 标签的准确性大打折扣.
数据不够, 算法上
数据, 是我们攻坚的医疗 AI 的第一道门槛. 数据不够, 算法来凑, 而机器学习算法最好的启发, 就是人类自身的学习方式. 回顾医生学习的过程, 是基于书本上或临床中看到的示例, 本质上也是学习目标任务的标注数据集, 也存在数据量不足的问题, 尤其是对于罕见疾病. 而人脑的强大在于可以将多种知识融会贯通, 互相增强, 例如医生在进行医学训练之前, 已经具备了对自然场景的认知; 医生可以对多个相关疾病触类旁通, 例如消化科医生既可以看胃病也可以看肠道病; 在实际临床操作中会见到更多病例, 有些很不确定的会找专家确认纠正已有认知, 其他大量病例虽然没有答案(标注), 但也会不断强化提升医生的认知.
将人脑的学习方式转换到机器学习, 我们自然而然的找到了解决的思路. 所谓 "数据不够", 只是目标任务的精确标注的数据不够, 如果我们打开思路, 会看到其他各式各样的海量数据, 已经蕴藏了模型需要学习的知识. 所以问题来源于数据, 解决方案又回到了数据, 算法开发的核心在于如何像人脑那样将各种数据融会贯通. 将可能出现的数据形式, 按照获取难度 (通常获取难度越大, 蕴含的相关信息越强) 排列如下, 每一个对应的算法解决方案也变得清晰. 其中正常标注 - 全监督学习, 即常规操作 baseline, 也就是通常大家认为 "下个开源算法就能搞定的深度学习". 在 baseline 上加入各种其他学习策略就构成了医疗 AI 背后的黑科技.
自然图像 - 迁移学习
迁移学习把在某个任务上训练好的模型, 拿来用在新的任务上, 或者作为初始点继续训练(fine-tuning), 或者不训练直接使用(feature extractor) [3,4]. 就像人对于医学任务的学习都是基于对自然图像的已有认知, 因为两者本质上都是图像识别问题, 有可借鉴的判断依据和特征. 从优化角度来看, 深度学习模型优化是非凸优化问题(non-convex optimization problem), 因此不同起始点会导致最后收敛到不同的局部最优点. 对于迁移学习具体实现方法, fine-tuning 已被广泛论证优于 feature extractor(由于对目标任务的端到端优化), 而目前该领域还未统一的问题是预训练数据的选取. 自然图像可以获取海量数据, 得到高质量初始点, 但是与医学任务相似性差. 而相似的其他医学图像, 又受限于数据量和初始点的质量.
在 "腾讯觅影 - 结直肠筛查" 的项目中, 对于内窥镜窄带成像模式 (NBI) 下的结直肠息肉良恶性分类任务(训练数据 2.0k), 我们对比了自然图像预训练的迁移学习(ImageNet, 训练数据量 1.3M), 和自然图像, 医学图像先后预训练的迁移学习(内窥镜白光成像 white-light, 训练数据 24.7k), 由上表中结果可见, 采用 ImageNet 的迁移学习, 能够将准确率提升 5.8%, 而是否用更相近的医学图像进行迁移学习不会造成结果的显著差异 [5].
其他医学图像 - 多任务学习
不同于迁移学习将多个数据集先后串行训练, 多任务学习将多个相关数据集同时并行训练 [6]. 相比于每个任务独立训练一个网络(下图左), 多任务学习用一个分享的网络同时训练多个任务(下图右), 等效于增加了总的数据量和约束能力, 从而降低过拟合风险.
在深度学习领域, 多任务学习的具体实现形式, 还是一个热门的研究方向, 然而诞生与 20 年前的 hard parameter sharing 方法 [6], 还是目前使用的主流, 效果得到了广泛的验证, 该方法共享网络所有层, 仅最后的全连接层(fully connect layer) 为每个任务私有. 以 DenseNet 骨干网络为例[7], 我们实现的多任务学习网络如下图所示.
在同一项目已有迁移学习的基础上, 我们进一步利用多任务学习提升效果. 实践中发现多任务学习的效果很大程度上取决于辅助任务的选取, 以 5 种辅助数据集 (下图左 A-E) 结合不同初始点为例, 结果显示(下图右), 差别较大的辅助任务(如猫狗分类), 或自身训练难度较大的辅助任务(白光下息肉良恶性分类), 都会减弱多任务学习的收益, 最优的多任务学习在迁移学习基础上进一步提高准确率 2.3%, 最终效果与五位内科专家的测试结果持平(ROC 曲线中的红点)[5].
无标注数据 - 半监督学习
半监督学习将有标数据和无标数据一起用于模型训练. 无标数据能够帮助训练, 通常基于这样的假设, 即同一种类的数据在某一特征空间中分布在同一个 cluster 里, 因此无标数据可用来更好的勾勒 cluster 的边界, 从而使得分类边界更加准确, 如下图所示[8].
我们通常以当前模型能否对训练数据做出正确预测作为评价指标进行模型训练优化, 但是无标数据无法判断模型预测的对错. 那么退一步, 一个好的模型应该能对数据做出一致的预测, 即使这个数据前后有不同的扰动(例如左右翻转后的照片上的你还是你). 深度学习领域当前效果最好的一系列半监督学习方法就是基于这个简单的假设, 区别在于添加什么样的变换扰动, 例如 Pi-model 利用图像增强和 dropout[9], VAT 利用对抗干扰[10].
半监督学习, 与之前介绍的迁移学习, 多任务学习, 本质上都是利用额外的数据集辅助训练, 区别在于这个额外的数据集是其他任务已标数据集, 还是目标任务的无标数据集. 三种方法引入的额外信息不同而又相互补充, 意味着三种方法可以叠加到一起获得更大的效果提升. 于是我们提出如下的深度学习网络, 将三者结合到同一个框架里(细节参考已接收文章[11]).
在 "腾讯觅影 - 上消化道筛查" 的项目中, 对于胃镜图片良恶性分类任务 (训练数据 8.9 万), 在我们的统一框架中, 分别评估了 ImageNet 预训练的迁移学习, 以分不同器官作为辅助任务的多任务学习(训练数据 26 万), 和半监督学习(8.9 万数据中随机抽取部分认为是无标数据) 的贡献.
三种方法各自的贡献如下图(每个种类的 F1 值随主任务标注数据量的变化曲线, TL 表示迁移学习, MTL 表示多任务学习, SSL 表示半监督学习). 相对于 baseline, 每个方法都有显著提升, 其中迁移学习的贡献最大尽管其实现最简单.
三种方法合并的效果如下图, 相对于只应用迁移学习, 叠加半监督学习或多任务学习后, 准确率有了进一步的提升, 其中迁移学习叠加多任务学习更适合小数据量, 而迁移学习叠加半监督学习能对各个数据量都有所贡献, 适合项目后期的不断迭代持续提升. 将三者结合, 我们可以获得各个数据量下的最好结果[11].
无标注数据 - 主动学习
上述的半监督学习适用于没有人力进一步标注数据. 而如果可以进一步标注, 问题则变成了, 怎样筛选数据, 优先标注对模型训练收益最大的数据, 这个问题在机器学习中称为主动学习. 主动学习的筛选机制分为两类, 一类是选取当前模型认为的 "难例", 可以是模型预测不确定性大的, 或者是多个模型预测不一致的数据. 另一类是选取能更广泛代表整个数据分布的[12]. 两种方法的对比目前业内还没有一致结论.
在开发 "腾讯觅影 - 上消化道筛查" 项目中的器官分类模型时, 为了提高医生标注的效率, 我们采用了主动学习的方法, 利用当前模型挑选难例, 以分类网络的 softmax 输出的熵值, 作为模型预测置信度的近似, 在测试集上我们先验证了准确率随熵值的变化符合预期, 如下图所示, 熵值低的数据, 已经可以被当前模型准确预测, 医生标注带来的收益很小. 因此我们以 entropy> 0.4 作为阈值, 过滤出无标数据中的难例交付医生标注(9181/29402), 缩短了标注时间加快了项目迭代速度.
标注数据 - 弱监督学习
上述的半监督学习或者主动学习, 本质上是标注资源不足, 只有一部分数据被标注. 而另一个减弱标注需求的方法, 是更粗粒度的标注. 例如标注图片时, 将图中物体定位远比指出哪些种类存在耗时, 而将定位具体到每个像素更加耗时[13]. 标注粒度取决于任务, 例如目标任务是物体定位(以矩形框画出), 数据标注也是矩形框定位形式. 如果为了降低标注需求, 只给出图像级标签, 但目标仍是矩形框定位, 就变成了机器学习中的弱监督学习问题.
我们借鉴了弱监督定位的前沿方法 [14,15], 在以图像级标注数据训练分类网络的同时, 输出判断依据的区域(作为对物体的定位预测), 以下称为 mask, 其定义为该区域内的图像足以输出正确预测, 而该区域外的图像会被预测为背景. 具体实现方法为如下图, 我们先训练一个分类器(classifier) 然后固定其参数, 再训练一个类似 U.NET 的区域检测器 model-agnostic saliency detector(MASD)以输出 mask 的预测, 将该 mask 和 (1-mask) 添加到原图上再走一遍分类网络来评估和优化 MASD 的参数.
该方法在自然图像和医学图像上的结果如下图所示, 仅通过图像级标签数据的训练, 我们能够准确的预测出分类判断的依据, 从而实现对物体的定位.
该方法在自然图像和医学图像上的结果如下图所示, 仅通过图像级标签数据的训练, 我们能够准确的预测出分类判断的依据, 从而实现对物体的定位.
不精准标注 - 噪音标签学习
医学图像的判断会有模棱两可的情况, 医生也可能出错, 多名医生对同一图片可能给出不同判断. 为了提高标注准确性, 每张图片通常由多位医生标注, 判断一致的标签更有可能是正确标签, 而不一致的标签, 说明标签可能出错(噪音标签), 如果直接加入模型训练反而拉低效果.
为了利用上噪音标签提高数据量, 我们采用了蒸馏的方法[16], 基于这样的假设: 模型预测和医生标注都可以认为是对真实标签的近似, 二者平均后能部分抵消标签中的噪音, 以这个新标签进行训练, 可以获得更好的模型. 具体实现方法如下, 在 2 位医生一致的数据子集上训练模型 f0, 然后加入全量噪音标签数据, 以 f0 模型的预测和真实标签的加权平均作为新的标签进行训练, 得到模型 f1.
在 "腾讯觅影 - 上消化道筛查" 的胃镜图片良恶性分类任务的开发中, 就遇到了这样的噪音标签问题(上图右), 使用蒸馏方法后, 我们有效的利用了噪音标签提升了准确率.
强标注数据 - 强监督学习
上述的无标注和弱标注问题讨论了 "数据>标注资源" 的情况, 而现实中可能存在的另一种情况 "数据<标注资源", 例如在 "腾讯觅影 - 上消化道筛查" 项目的初期, 50 多位标注医生已经到位, 但是数据获取需要时间积累, 造成了标注资源的浪费, 该问题在机器学习领域还较少被研究. 为了更好的利用标注资源, 我们对仅有的数据进行了更精细更耗时的标注. 通常情况下, 数据标注的精细度和最终想要实现的功能等同, 例如对于图像分类任务, 数据标注是图像级的分类标签, 而我们更精细的标注出病灶的位置(以矩形框的形式), 由于标注本身携带了更多信息, 理论上我们可以提高模型的效果.
我们借鉴并改进了以下强监督学习网络 [17], 可以同时对弱标注(图像级标签) 和强标注 (定位矩形框) 数据进行训练. 其核心思路是, 对于卷积神经网络的最后特征层上每个点先做预测(对应输入图像的一个子区域), 再全局池化得到全图的预测. 弱标注数据用来对全局池化后的预测进行监督跟新网络参数. 强标注数据可对全局池化前的每个位置的预测单独监督, 从而将训练数据中的更多信息变成了网络训练时的更强约束.
采用强监督学习, 结果如下图所示, 不光可以在不同数据量下提升分类准确率, 其作出判断依据的区域 (见热力图) 与病灶区域更吻合, 提升了结果的可解释性, 结果更容易被医生采纳.
结语
自 2017 年 8 月从食管癌筛查起步, 我们在病种上不断突破, 已串联起整个消化道(食管癌, 胃癌, 结直肠癌)AI 筛查解决方案, 在技术上不断深入不断提升准确率, 并且在医生实际体验上不断优化. 目前已累计辅助医生阅片 2.7 亿张, 服务近 160 万患者, 提示高风险 21 万次. 医疗体系的全面升级还任重道远, 作为医疗 AI 的领跑者, 站在新的起点, 面对新的挑战, 科技向善, 我们义不容辞.
引用
[1] Wang, Pu, et al. "Real-time automatic detection system increases colonoscopic polyp and adenoma detection rates: a prospective randomised controlled study." Gut (2019): gutjnl-2018.
[2] Krizhevsky, Alex, et al. "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems. 2012.
[3] Litjens, Geert, et al. "A survey on deep learning in medical image analysis." Medical image analysis 42 (2017): 60-88.
[4] Cheplygina, Veronika, et al. "Not-so-supervised: a survey of semi-supervised, multi-instance, and transfer learning in medical image analysis." Medical image analysis 54 (2019): 280-296.
[5] Shang, Hong, et al. "What And How Other Datasets Can Be Leveraged For Medical Imaging Classification." 2019 IEEE 16th International Symposium on Biomedical Imaging (ISBI 2019). IEEE, 2019.
[6] Caruana, Rich. "Multitask learning." Machine learning 28.1 (1997): 41-75.
[7] Huang, Gao, et al. "Densely connected convolutional networks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
[8] Zhou, Zhi-Hua. "A brief introduction to weakly supervised learning." National Science Review 5.1 (2017): 44-53.
[9] Laine, S., et al.: Temporal ensembling for semi-supervised learning. In: Proc. International Conference on Learning Representations (ICLR) (2017)
[10] Miyato, Takeru, et al. "Virtual adversarial training: a regularization method for supervised and semi-supervised learning." IEEE transactions on pattern analysis and machine intelligence 41.8 (2018): 1979-1993.
[11] Shang, Hong, et al. "Leveraging Other Datasets for Medical Imaging Classification: Evaluation of Transfer, Multi-task and Semi-supervised Learning" International Conference on Medical Image Computing and Computer-Assisted Intervention. Springer, Cham, 2019.
[12] Sener, Ozan, and Silvio Savarese. "Active learning for convolutional neural networks: A core-set approach." arXiv preprint arXiv:1708.00489 (2017).
[13] Bearman, Amy, et al. "What's the point: Semantic segmentation with point supervision." European conference on computer vision. Springer, Cham, 2016.
[14] Dabkowski, Piotr, et al. "Real time image saliency for black box classifiers." Advances in Neural Information Processing Systems. 2017.
[15] Maicas, Gabriel, et al. "Model Agnostic Saliency For Weakly Supervised Lesion Detection From Breast DCE-MRI." 2019 IEEE 16th International Symposium on Biomedical Imaging (ISBI 2019). IEEE, 2019.
[16] Li, Yuncheng, et al. "Learning from noisy labels with distillation." Proceedings of the IEEE International Conference on Computer Vision. 2017.
[17] Li, Zhe, et al. "Thoracic disease identification and localization with limited supervision." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.
本文由腾讯大讲堂 https://cloud.tencent.com/developer/column/1505 发表在腾讯云 + 社区
作者: 尚鸿, 腾讯研发管理部 \ AI 平台部 \ AI 医疗中心
链接:
来源: https://www.qcloud.com/developer/article/1614284