首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

判断医学AI论文水不水,从读懂ROC曲线开始

作者:Luke Oakden-Rayner

编译:Bot

编者按:近年来,机器人和人工智能大举进军医学领域,为医生和患者带来了许多便利。当人们摒弃偏见,开始相信智能系统、智能硬件的诊断手术水平时,上月,放射科医生、医学博士生Luke Oakden-Rayner在博客中揭露了ChestXray14数据集包含的一些问题,引发了众人关于医学AI系统训练情况的担忧。那么,这只是一个意外吗?当全球媒体都在鼓吹“机器换人”“智能革命”时,医学AI的真正智能水平究竟如何。为了解决这个疑惑,论智搬运了Luke Oakden-Rayner博士的另一篇博文,希望能从专业角度给你一个答案。

对于深度学习,医学领域就像未开荒前的美国西部,有时你能在那儿找到黄金,但更多时候,你面对的也许会是一只惊悚的朋克蜘蛛。出于这个现状,我开始觉得有必要解释一下医生是否会在短期内被人工智能替代,同时,我也更加需要引导读者关注医学人工智能研究的真正质量。

2016年,我第一次生出撰写人工智能在医学领域的应用系列文章的想法,起因是包括知名大学、公司在内的多家机构发表了几篇声称将“吊打医生”的文章,但他们并没有给出足够的理论支撑。值得注意的是,他们是在没有专业人士把关的情况下直接把新闻稿推向公众和媒体的,由此产生的影响可想而知。

但我并不认为那是恶意的,机器学习和医学研究之间存在很大的文化差异,这是截然不同的两种方式,它们对什么是强有力的证据也有各自的定义。如果要我实话实说,我甚至觉得机器学习对于医学研究有很大的借鉴意义。

就在那年,我在一篇博客中介绍了如何用批判的眼光阅读医学AI报告,并通过炒作看到真相。其中的第三条是“亲自阅读论文”,但当时我没有给出具体的阅读方法。为了解决读者们在浏览论文时会遇到的困惑,同时也为医学AI研究人员提供专业参考,我特意撰写了这篇文章,就医疗领域机器学习系统的测试和评估给出详细介绍。

机器与医生有时势均力敌

两篇论文发表后这一年,整个研究领域仿佛陷入沉寂,没有人就他们的研究再做出什么突破。而就在2017年11月,这个沉寂被打破了,一系列相关论文连续发表,证实了Google和斯坦福大学研究的准确性,老实说,其中有一篇是我写的。当然,我并不想在这里分析自己的论文,我的工作也丝毫没有引起媒体的关注(如果你想评论,欢迎通过twitter、reddit、电子邮件联系我),但我真的很喜欢其中一篇,它介绍的测试系统性能方法和相关改进建议令我受益匪浅。

要评估机器学习系统的性能,我们首先要了解这个重要概念——ROC空间,其次再是各种统计意义问题。

用ROC评估算法

2017年年底,北美放射学会年会(RSNA)顺利召开,这是世界上最大的医疗放射学科会议,也是“放射人工智能”主题讲座和创业炒作的热门温床。为了做广告,医疗机器学习和人工智能公司DeepRadiology在会场布置了一个令人瞩目展位,循环播放深度学习视频和自己的最新研究成果。他们这次带来的论文是CT图像解读,作为众多深度学习创业医疗企业中为数不多的愿意用实际数据来支撑广告宣传的企业,他们宣称这篇论文收集了来自超过80个站点的55000幅头部CT图像数据,并有一个经2—5名专业放射科医师标记的包含3万头部CT数据的测试集。

这是一个巨大的任务,而且DeepRadiology的务实做法显然是完全正确的,但是很可惜,他们的论文有缺陷,结果并不好。对此,西奈山医学院的学生John Zech已经在他的文章中解释了研究的不合理之处,所以我就不再对研究方法的错误多加赘述,我要谈的是它的研究基础。

DeepRadiology的论文为什么是失败的?因为没有正确理解ROC曲线。

任何时候都不要忽视大鹏(ROC)的存在

让我来举个日常的例子:你正在想午饭去哪儿吃。如果你选择光顾去过的饭店,那它的饭菜肯定中规中矩,不会太难吃,也不会太好吃;如果你随遇而安,那店里的东西可能会出乎意料地难吃,也可能给你带来惊喜。

对于第一种选择,我们认为它有很高的假阴性率(false negative rate),因为你放弃了许多你可能喜欢的食物。但它的假阳性率(false positive rate)很低,因为你可以少去一个不喜欢的饭店。

而对于第二种选择,相反地,它有很低的假阴性率和很高的假阳性率。在这两个比例上,每个人都有不同的平衡:有些人喜欢尝试新鲜事物,有些人稳定恋旧,有些人则保持中庸。

如果这些名词对于你来说还有些难以理解,可以花点时间细细品味一下,因为它们是性能评估的基础。让我们从医学和机器学习两个角度来理解他们:

医学:假阴性率(FNR),指在一堆确实有病(阳性)的人群中,检测出确实没病的概率,也称漏诊率;

医学:假阳性率(FPR),指在一堆确实没病(阴性)的人群中,检测出确实有病的概率,也称误诊率。

机器学习:假阴性率(FNR)=被模型预测为负的正样本数/正样本实际数;

机器学习:假阳性率(FPR)=被模型预测为正的负样本数/负样本实际数。

值得注意的一点是,对于任何给定的决策过程,假阴性率和假阳性率始终保持彼此平衡:如果漏诊率上升,那么误诊率就会下降,反之亦然。

而ROC空间就是这一平衡过程的可视化方式。

橙点表示一个人去了熟悉的饭店(他遇到难吃食物的概率只有20%,但错过其他好饭店的概率高达80%),蓝点表示他去了一家新饭店(他遇到难吃食物的概率高达80%,但也有20%的概率能吃到好的)

怎么样?是不是很有趣?但ROC的奇妙之处远不止于此,因为它还能评估决策的好坏。一个良好用餐体验不仅取决于你个人对新鲜事物和旧有事物的喜好程度,还取决于你如何准确地找到满意的用餐环境。

上图反映的是随机决策的水平,这些分布在虚线对角线上的决策有不同的假阴性率和假阳性率

你可以通过各种途径打听到附近有什么好饭店,比如询问朋友、看美食评论等。当你开始做出更好的选择时,ROC空间中的决策点会逐渐向上、向左偏移,相应的连线也会变成一条上凸的曲线,这正符合假阴性率和假阳性率的平衡规则。我们把这样的曲线称为ROC曲线,分布在曲线上的单个决策和整体决策水平相同。

曲线上平衡假阴性率和假阳性率所得的点叫工作点(operating point),每个点对应一个临界值threshold(也称阈值)。如果一个人想尽力避免难吃的食物,那他就会选择熟悉的饭店,这个选择的临界值很高;相反地,如果他比较随意,什么都不挑,没有filter,相应选择的临界值就很低。

图中灰色区域表示决策水平高低:灰色面积越大,决策越好

已知决策越好,工作点就会相对于对角线向上、向左偏移,所以ROC曲线下的面积,也就是ROC AUC或AUROC成了我们判断决策水平的一个重要指标。这就引出了ROC曲线更有趣的一点,即曲线下所有点的上限都取决于曲线上的决策,也就是从结果上来说,曲线下的点表现更差。在吃饭的例子里,这些点可能是你无法在网上查到相关评论,从而获得了较差的用餐体验。

彩色点为人类专家的决策

对于人类专家而言,拥有相似技能的他们通常都有一个特点,就是他们的决策虽然在假阴性率和假阳性率上各有不同,但放在ROC曲线中,这些点一般都分布在同一曲线上。从某种程度上来说,尽管有时他们的实际决策会有显著不同,但这些决策在水平和质量上是差不多的。

例如之前提到的Google和斯坦福大学的两篇医学论文,下图中的点是人类专家的决策,可以看到它们大致分布在同一条曲线上。在右图中,斯坦福旋转了坐标角度,但我们同样可以发现曲线具有的ROC特征,同时代表专家意见的红点也都紧密的贴合曲线。

在这两幅图中,所有点都是人类专家给出的,而曲线则是医学AI的决策。众所周知,AI算法的一个特性就是具有明确的数字阈值(例如0—100)。当纵轴阈值为0时,算法漏诊率为0,误诊率为100%,点在ROC空间最右上角,这时它是零假阴性率的;而纵轴阈值为100时,算法的结果都是负的,没有误诊,所以点在ROC空间最左下角。如果你不清楚这个概念,请花点时间学习一下机器学习中的ROC曲线,值得注意的是,这里是横轴是FPR,纵轴是FNR。只看图像的话,似乎右上角的阈值较低而左下角的阈值较高,但当结合两种错误率来看时,其中的原因也就能理解了。

为什么我会这么欣赏论文的成果?因为从ROC曲线上看,AI算法不仅在漏诊率和误诊率上达到了和人类专家一致的水平,而且它的诊断更灵活。和人类不同,人类专家如果要使工作点在ROC空间内移动,他需要长期的努力和改变,而AI系统可以轻松自如地调整假阴性率和假阳性率实现平衡,而且使决策始终保持在高水平。

以上内容是ROC曲线的入门,它可被归纳为这几个要点:

所有决策(诊断)都基于假阴性率和假阳性率的平衡;

ROC空间展示了这个平衡过程;

决策者(医生、AI)可以通过改变临界值(阈值)在空间内移动,但始终超出不了ROC空间的范围;

工作点越靠左,决策结果越好;

相同领域、相同水平的专家给出的决策也许会有不同的假阴性率和假阳性率,但它们往往都分布在同一曲线上,我们称它为ROC曲线;

ROC曲线下的空间取决于各独立决策的综合水平,因此可被作为衡量专业知识水平的一个指标;

低于ROC曲线的决策是不理想的。

为什么DeepRadiology的论文不好

可疑的说法

让我们回到DeepRadiology的论文——DeepRadiologyNet:头部CT图像中的放射科级病理检测。

从本文的角度看,我个人认为他们忽略了假阴性率和假阳性率的平衡是论文失败的关键。在论文中,他们称AI算法的假阴性率非常低,但并没有提到假阳性率。

要理解这种做法的弊端,我们需要看之前的这幅ROC曲线。

这是随机决策是ROC曲线分布,可以看到,决策者随便做出一个决策就能获得零假阴性率的决策效果,因为它和阈值极低且位于右上角的那个点处在一条曲线上。这样的决策是没有门槛的,是谁都能做出的,也是完全没有意义的。

DeepRadiologyNet的结论正是只基于这个前提。他们在论文中给出的0.0367%的错误率其实是模型在最有把握的8.5%的数据上的结果,而与之相对应的人类专家的0.83%则是一个100%的数据统计。用8.5%的最佳数据和100%的数据相比是不严谨的。拿John Zech的话说:

如果我只计算我前8.5%的罚球命中率,那哪个NBA球星的命中率比的过我?

为了验证DeepRadiologyNet系统的水平,最好的方法就是像Google和斯坦福大学那样把完整的ROC曲线展示给我们看。好在他们还是提供了模型的曲线,虽然没有和人类专家的对比,但是通过查证,我们还是从中发现了假阳性率的情况。让我们暂且相信这个统计的准确性,下图中的ROC曲线是AI算法的,图中的橙色方块则是人类专家ROC曲线上的一个工作点。

可以发现,DeepRadiologyNet的整条曲线都位于人类工作点之下,这就很清楚,它的水平远比不上医生。那么对于一个点和一条线,我们该怎么评估它们的差异呢?

图形中的平均值

这事实上也是斯坦福大学那篇皮肤癌论文的一个小瑕疵,他们在论文中称计算了所有医生的平均假阴性率和假阳性率(事实上他们的“所有医生”加起来才不过20人左右),并绘出了一个“皮肤科医生平均水平”的ROC工作点。

虽然乍看之下这个做法很明智,但是如果仔细观察,你会发现这个“平均值”居然在医生曲线以下。这里的错误其实不难理解,因为这个点是医生们综合实力的一个平均值,所以要取所有点假阴性率和假阳性率的“平均值”,然而事实上这些点绘成的线是一条上凸的曲线,这个计算出的所谓“平均值”自然是在线下方的。

一个更清晰的示例:粉色点是所有点的“平均值”

计算ROC曲线的平均值事实上是一个几何问题。当然一种简单的方法是将错就错,在AI算法的ROC曲线上取几个点算平均值,但这样做是不严谨的,还是会有误差。正确的做法是先把曲线画出来,然后直接比较曲线下的面积,这里我不对它做详细解说,它现成的工具叫ROC凸包曲线(ROC Convex Hull)。

使用凸包曲线的唯一局限就是它至少需要5个工作点。如图所示,由于人的表现千差万别,要找到同样水平、同等状态的5名专家是很困难的,而我们显然无法从斯坦福大学的这20名医生中挑出合格的五位。因此在你没能找到至少5位水平相当的医生和AI算法做对比前,任何结论都是不怎么靠谱的。

此外,如果一定要用凸包曲线,一种可行的补救做法是让每个医生都用李克特量表(Likert scale)算出自己的诊断平均分,而且它至少要有5个等级(1=绝对不是,2=可能不是……)。有了这5个等级,你就可以为每个医生绘制ROC曲线,之后取AUC的平均值。作为一个医生,这种做法会让我不太舒服,因为人们通常不会用评分系统衡量水平。但是在评分正确的情况下,这也不失为一种有效的方法。

仍以斯坦福大学的皮肤癌论文为例,我们可以粗略绘出这样一条曲线:

计算两条曲线下的面积我们可以发现,它们大约都是0.94,所以尽管论文中出现了这个错误,但由于他们在论文中的措辞是“可以与皮肤科医生相媲美”,而不是“吊打医生”,所以结论还是合理的。

现在我们再来看DeepRadiologyNet这篇论文,由于他们提供的图只有一个点,所以我们不可避免地要做点“艺术加工”,结果如下所示:

DeepRadiology没有给出他们的AUC,但从图上我们可以粗略算得0.75这个值,而人类专家的AUC则在0.995以上。这和他们的结论完全不同,所以谁会觉得他们的论文是合理的呢?

总结

ROC曲线当然不止假阴性率和假阳性率,精确度、特异性、流行性等都是增加文章严谨性的重要指标。综合全文,如果你想判断或写出令人信服的医学AI论文,以下是一些值得注意的小技巧:

展示AI的ROC曲线,并将它和基线、金标准、医生判断放在一起画图对比;

ROC、AUC是量化专业知识的一个很好的指标;

一般而言,人类专家没有AUC,但如果论文集合了5名以上高水准、水平相近的同科专家,那就可以绘制曲线用ROC凸包曲线计算AUC。此外,如果水平不那么平均的医生们用李克特量表给出了可靠的水平评分,且等级在5个以上,那也可以绘制ROC曲线;

如果人类专家敏感性(真阳性)、特异性(真阴性)的“平均值”在AI的ROC曲线以下,不要用它;

如果论文声称AI的诊断结果“更好”,但没有任何正确的ROC分析,那这篇论文的结论大体是错的;

如果论文试图展示AI系统在实践中的应用,那它必须选择一个点,并展示它的敏感性和特异性;

如果论文给出了准确率,那还不错,因为它研究的疾病可能是低发病率的;准确率在医学领域是一个容易被理解的优良指标,因为可以计算被确诊的人群中到底有多少人是的确患病了的;

虽然不是一个硬性指标,但如果论文没有严谨的研究数据,比如临床数据,甚至人口统计学上的流行病数据,读者无法判断论文的真实性;

最简单的做法,参考Google那篇视网膜论文依样画瓢。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180110G0ZOZT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券