Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

AAAI 2019论文:借鉴传染病学原理探索医学图像CNN可解释性

虽然深度学习在医疗图像的病变检测上取得了巨大成功,然而,现有的方法几乎都将 CNN 作为黑盒使用,没有进一步揭示做出分类的依据。CNN 缺乏「可解释性」严重制约了其在医疗等涉及公众安全的关键领域应用。 北京航空航天大学联合日本国立信息学研究所以及中南大学湘雅医院,湘雅二医院对这一问题展开探索。参考传染病学金标准:「科赫法则」,本文提供了一种解释医疗图像深度学习的方法并发表在 AAAI 2019。通过了 5 位眼科医师双盲测试,本方法表现出了令人满意的性能。

回顾医学的历史,病菌感染曾一度困扰着人们:致病微生物也是看不见、摸不着的。微生物学鼻祖之一的罗伯特·科赫提出了一套科学验证方法——科赫法则(Koch's postulates),用于将某种病变与特定的病原体建立联系。这一方法随后成为传染病病原学鉴定的金标准。科赫也因此获得了 1905 年的诺贝尔生理学或医学奖。

这套准则分为四条:

1. 每一例患病动物体内都可以分离到该病菌。

2. 该病菌可以在体外培养数代。

3. 培养了数代的细菌可以通过接种,使健康的实验动物患上同样的疾病。

4. 被接种的动物中可以分离到同样的病菌。

自然界的微生物种类是天文数字,这其中仅有一小部分能够感染人类,而对人类致病的就更微乎其微了,科赫法则成为确定这些病原体的金标准并成为现代医学基础之一。检测医疗图像的 CNN 网络中也往往包含几十万乃至上百万参数。受此方法启发,可以使用类似的方法论来确定极少量的关键参数并研究 CNN 病变检测器的决策依据。

论文 Pathological Evidence Exploration in Deep Retinal Image Diagnosis 以糖尿病视网膜病变为例,展示了 CNN 检测器的决策依据,增进了医生与 AI 之间的相互理解。

论文:Pathological Evidence Exploration in Deep Retinal Image Diagnosis 

论文链接: https://arxiv.org/pdf/1812.02640.pdf

图 1:受柯赫准则启发,本论文对病变证据进行发掘、提取、重现

具体来说,本文首先在经典 CNN 病变检测算法中提取病理描述符,并利用一种 CNN 的可视化方法来定位病变(图 1.a);模仿科赫法则中在无数微生物中分离病原体这一过程,本方法从百万级神经元中定位到数千维直接参与疾病诊断的参数并提取出描述符(图 1.b);科赫法则接着将分离的微生物接种到健康生物体并观察产生的疾病症状,同样,本方法训练一个基于 GAN 的生成器,通过输入病理描述符中来合成眼底图(图 1.c, d),如果眼底图复现了相应的病变,就可以确认其与病理描述符的直接关系。

病理描述符的提取

本文以糖尿病视网膜病变(Diabetic Retinopathy,简称 DR)为例。全球范围内,有超过 4 亿糖尿病患者。根据 2016 年美国的统计,约有 40%-45% 的患者会发展出 DR 的症状。这种病变通常根据视网膜眼底图来进行诊断。DR 患者的眼底图上会出现不同程度的微动脉瘤、出血、渗出等病变。 

图 2:DR 患者眼底图中的病变

Kaggle 于 2016 年举行了 DR 眼底图检测的竞赛。本文使用的冠军算法中的一种:o_O(Antony 2016)。仿造 Zeiler 和 Fergus 的 CNN 可视化方法,我们在检测器后接上了一个激活网络,用对称的结构来还原每个卷积层中被激活的神经元。 

图 3:病理描述符的提取

具体来讲,为每一个卷积层构造一个转置卷积层,为每一个池化层构造一个反池化层,激活网络和检测网络共享权重。使用这样的网络架构,激活网络某一层的结果是从 #9 层的神经元激活结果翻译回来的,一定程度上代表了这一层的神经元对 #9 的影响。

图 4 将输入的眼底病变图和输出的激活图进行放大对比。输入的病变图经过一层层卷积,保留了病理特征,丢弃了血管等正常生理特征。由结果对病变的选择性,可以窥见 CNN 做出决策的证据。虽然在训练 CNN 检测器时仅仅使用了「病变图-严重程度」这样的图像级别标注,它仍能学到各种病变的特征,并且主动关注这些区域。

图 4:输入的病变图和输出的激活图

接下来,根据病变参考图的特征层和激活层,定义一个病理描述符,用于代表每一个病变的信息。首先,对最后的激活图其进行阈值处理,得到二值掩码图,用于指示病变的位置信息。然后,通过寻找最大连通区域,可以得到每个病变的边界框。这一步操作即可将不同的病变分离开来。最后,使用边界框,在特征网络和激活网络的中间层中截取出一些特征块、激活块,将它们作为病理描述符(图 3)。这些病理描述符编码了完整的病变特征,可以为病变眼底图的合成提供关于病变的所有信息。

病变眼底图的合成

柯赫准则中,将不可见的纯化病菌注射到健康动物体内,可以使其患上相应的疾病。类似地,本文使用 GAN 来重现病理描述符中的特征、说明 DR 检测器提取出的病理描述符确实包含了病理信息。

图 5:病变眼底图合成网络架构

本节的任务是训练一个合成病变图的生成器。生成器以血管分割图、噪声向量为输入,通过一个 U-Net (Ronneberger, Fischer, and Brox 2015) 结构来合成出包含特定病变的眼底图。

训练生成器的时候,使用的数据集是正常眼底图和它的血管分割图。而病变信息,全部来自于之前提取出的病理描述符。计算 Loss 时,设置了多个子网络来达到不同的目标。

子网络 1:判别器网络

判别器子网络判别一张图片是真实图还是合成图。进而计算出「生成对抗 Loss」,使生成器和判别器相互竞争,增加合成眼底图的真实性。对于生成器、判别器,有

子网络 2:视网膜细节网络

视网膜细节网络使用 VGG 网络来提取健康眼底图与合成眼底图的特征,做差得到「视网膜细节 Loss」,让合成图像的特征与其接近,保证合成图片的生理细节。用来代表 VGG 特征提取函数,则视网膜细节 Loss 为

子网络 3:DR 检测网络

DR 检测子网络用来计算最重要的「病理 Loss」,使合成的眼底图中出现病变。

计算病理 Loss 的时候,将合成的病变图输入到 DR 检测器网络中,从想要合成病变的地方截取出特征块,与病理描述符中的相应特征块进行对比、做差即可得到合成病变与真实病变的差异。利用病理 Loss,能够让合成图在特征层的与病变相关的神经元激活,从而保证病变的复现。

使用代表合成图的特征块,用代表描述符中的特征块,则病理 Loss 为。 计算过程中使用了 Gram 矩阵来保留样式而非内容:

合成结果

在测试阶段,文章使用了 DRIVE 数据集 (Staal et al. 2004) 作为正常眼底图,使用 STARE (Hoover, Kouznetsova, and Goldbaum 2000) 和 Kaggle 中的图像作为病变参考图,进行了多组实验。

图 6 是使用不同的病变参考图来合成出的结果。根据专业眼科医生的评估,前两列的微动脉瘤合成较好,第三列合成的激光瘢痕与参考图一致,不过第四列合成的硬性渗出有些欠真实。 

图 6:不同病变的合成效果

为了进一步说明合成结果的先进性,我们将本文方法与 Zhao 等人的 Tub-sGAN 生成的图片随机混合,并组织了 5 位专业的眼科医生,对其进行双盲评测。对于每幅合成图像,医生为其进行三个评分:1. 眼底图的真实性,2. 合成病变的真实性,3. DR 的严重程度(评分范围是 1-10,得分越高越好)。最后收集到对 560 组评分,其平均值如表 1 所示。本文方法在合成的真实性上有明显优势。 

病理描述符针对每个病变单独存储,这种设计使其应用变得容易操控。对病变的筛选、复制均可以通过对病理描述符的操作来实现,并可以进一步做到数量控制、合成病变的位置控制。具体操控效果如图 7 所示。 

图 7:对病变位置和数量的操控

图 8:病变数量增加时,DR 检测器给出的严重程度也会相应提升

本文的生理细节 Loss,选用 VGG 来进行高层特征的计算,而非直接使用 L1 Loss,能够正确的保留视盘边界等生理细节。与 Zhao 等人的 Tub-sGAN 不同,本文的病理 Loss 作用在病变局部,不会影响生理细节的正常合成(图 9)。 

图 9:生理细节保留对比

总体来看,本文的合成方法仅仅使用了参考图中的病变特征,忽略了参考图的整体色调、外观。若在此合成方法之后再增加一个 Deep Photo Style Transfer (Luan et al. 2017) 风格迁移,则会更进一步增加参考图与合成图在外观上的相似程度(图 10)。

图 10:增加风格迁移后处理以后的效果

总结

本文提出了通过激活神经元来检测和编码病变特征的方法,该过程与决策证据紧密相关。

本文使用一种基于 GAN 的方法来将病理描述符可视化,合成带有特定病变的眼底图,且病变合成的方法具有一定的可操控性。合成的结果得到了医生的认可。

文章为 CNN 的可解释性提供了一种研究思路,可激发更一般的探索。

理论智慧医疗卷积神经网络可解释性AAAI 2019
3
相关数据
池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

推荐文章
暂无评论
暂无评论~