Skin Lesion Classification Using CNNs with Patch-Based Attention and Diagnosis-Guided Loss Weighting
2019年
我的总结,写在前面
该文章,参加HAM数据集的评测,内容是皮肤病分类诊断,解决两件事
1 图像中全局局部上下文融合
- 提出了多个patch子图的attention机制,融入了经典cnn架构中,与多切片做对比实验,验证了patch-based attention 的优越性。
- 提出了patch dropout 随机关闭一些patch,提高模型的泛化能力。
2 多类别样本数量不平均
- 提出了 diagnosis-guide loss weighting方法,解决多类别样本数量不平衡问题。并与过采样、loss weighting等传统解决类别数量不平衡的方法做了对比实验。
实验内容非常丰富,每个模块都有理有据,叹为观止。
下面开始正文翻译
ABSTRACT
object
该工作解决两个皮肤病分类的核心问题。第一个是高效利用标准预训练框架来处理高分辨率图像分类。第二个是对抗现实中多类别数据严重类别不平衡。
methods
为了利用高分辨率图像,我们提出了一个创新的 patch-based attention架构,能够提供小的、高分别率patch之间的全局上下文感知。我们修改了三个预训练框架,并探究了patch-based attention的表现。为了对抗类别不平衡,我们比较了oversampling、balanced batch sampling 和class-specific loss weighting。除此之外,我们提出了一个创新的诊断导向的loss weighting 方法。该方法考虑了真实标注过程。
result
我们的 patch-based attention 机制 超越了之前的方法,平均敏感性提升7%。类别平衡上显著提高了平均敏感性,我的诊断导向的loss weighting 方法提升平均敏感性3%,超过了普通的loss weiting方法。
METHODS
datasets
该工作一直使用HAM数据作为训练和评估。数据包含待分类的图像,有7个类别,见fig1
数据的分布展示出了一个真实情况,大体上更多的是良性图片,恶性图片仍然过度表示。(此处翻译不清楚, The dataset distribution represents a real-world setting with overall more benign images while malignant cases are still over-represented.)数据类别展示在table1中。标出了类别数据量不平衡的关键问题。同时其他数据有都展示出了相似的类别不平衡特点。
我们将HAM划分成4份等大小的部分,每个部分包含相同的类别分布。其中一个部分作为测试数据 包含2500个样本。另外三个部分做3折交叉验证,用来调优超参数(5000训练,2500验证)。所有结果都被报告为独立测试集。注意到发布者对一些图像做了图像均衡化,并且人工对图像患处进行中心化和降采样并将图像修改为600*450像素。我们不对HAM图像做任何额外预处理。我们没有比较ISIC 2018CHALLENGE的测试集合,因为真实结果是不公开的。除此之外,比赛中提出的方法因为不同数据、不同大小、不同模型和不同测试数据的情况缺乏可比性。
我们演示了我们的方法的拓展性,应用提出的attention机制在7-point criteria(SPC)数据上,这个数据基于【22】提出的。 我们把SPC中的类别匹配到了HAM的7个类别上,如果某些数据不属于任何一个类别则删除。同时该数据集不包含 actinic keratosis疾病的样本。因此在这个数据及上我们只训练6个类别。我们将395份图像作为测试样本,跟从【16】的方式,剩余的616张图像用于训练。我们使用在HAM交叉验证得到的超参数,因此在这个数据上我们没有使用到验证集。我们讲图像改变为600*450尺寸,与HAM保持一致。与HAM的预处理相比,我们没有对图像患处进行中心化,也没有进行颜色校正。
metrics
考虑评估方法,多分类的情况要充分考虑,通常准确率是不错的,考虑到数据不平衡的问题,我们使用多类别的敏感性 MC-Sensitiveity S:
TP代表真正例
FN代表假反例
C代表类别数
该度量方法在类别严重不平衡时尤其具有挑战,因为它相同对待所有类别。除了MC-sensitivity,我们也使用MC-specificity 和f1 score。
baseline Model
我们考虑三个架构进行试验。
第一个是Inception-V3,这是一个医疗图像分析上广泛采用来做皮肤病分类任务的方法。模型包括不同的inception module 通过不同的卷积路径平行处理特征图。
第二个是更近的Densenet-121, 属于一组密集连接的CNNs。该架构的核心想法是重用所有之前层输出作为每个层的输入。第l层的结果定义为
xl是特征图,H是一个映射 包括卷积 批归一化 和 relu激活函数。为了让特征图增长固定,模型被
细分成block,包含转换层来减少特征维度。
第三个是最近的SE-Resnet50,基于多路径resnet架构,通过attention 特征校准进行了拓展。这些模块显式学习特征图之间的关系,增加了面向类别的表示能力,隐式地在卷积层形成特征图的提炼。
输入策略
我们考虑不同的策略来把图像转换成标准模型输入尺寸 224 * 224
- downsampling:该方法表达了一个简单的baseline,整个图像降采样到模型输入的尺寸,该方法在训练和验证集合都采用。
- single-crop:训练阶段图像随机被resize,然后裁剪为模型输入尺寸,因此训练过程我们诱导更多的变化。对于评估过程,采用一个中心点的裁切,包含85%原图像部分,再resize成模型输入大小。该方法与SE-RX、Dense121和InceptV3的方法一样,并提供了第二个baseline
- multi-crop:该方法我们没有resize,而是随机剪裁多个patch为图像输入的尺寸。评估阶段,我们使用有序裁剪,每个点的位置是预先定义好的。然后我们平均对所有patch的预测结果。裁剪数量Nc
5的情况包含4角和中间,9和16的情况是均匀分布在之前采集的patch之间采集裁剪。这个方法在【24】中成功用于皮肤病患处分类。 - ordered-crop:该策略使用固定patch位置进行评估和训练。训练阶段patch位置是固定的,相比single和random cropping变化更少。因此,我们提出一个patch dropout来避免过拟合。每个mini batch 训练的更新过程,每个patch以概率pd 置为零,我们也尝探究了使用不同大小的pd。
局部和全剧信息聚合策略
之前描述了组合细粒度的裁剪策略,局部和全剧图像信息获取的不同方式。Downsampling降采样直接处以全局尺度理图像。single-crop通过随机调整大小为不同尺度隐式考虑局部和全局信息。单一中心裁剪的评估方式考虑全剧与局部尺度的混合。multi-crop在训练中通过裁剪多个小pajtch来利用局部信息。这最大化了小粒度、局部信息的抽取。然而通过等权重平均多个patch来获得全局信息是非常微弱的。这个方法仅仅聚合独立的局部环境,没有包含patch位置的独立性和各自特有的特点。这对皮肤病图像是一个特殊的问题,因为patch的边缘很有可能没有包含患处图像。
因此我们研究一个方法可以显示组合局部和全局图像信息。我们仍然使用小patches,并且我们通过创新的patch-based attention机制复原patches之间的全局上下文,如fig2。
图2 提出的架构,用densenet举例。我们的attention方法和recurrent pathch组合都被展示出,但每个方法只单独进行试验。对于所有tensor大小,忽略了batch size。注意裁剪之间是有重叠的。灰色patch表示我们创新的patch dropout 正则化。GAP表示global average pooling 全局平均池化
attention机制更详细的描述在fig3中。
(这里看不懂建议去看DenseBlock,再查一下global average pooling,看明白这两个就懂了)
模型原始输入tensor尺寸是 nbnchwc, nb为batch size,nc是切片数量,hwc是切片的维度。然后我们在batch维度上堆叠所有切片,令模型输入为nbnchwc,这样,参数可以被patch的处理共享,同时这也是标准multi-crop评估的情况。当我们从第i层获得attention模块之后,我们reshape Nb和Nc 回到各自的维度 形成feature tensor尺寸 NbNcHiWiCi。然后模块应用如下。我们初始化patch权重wi,尺寸为NbNc,用于在最后三个维度上全局平均池化。接下来一个全连接attention层f携带训练参数θ 尺寸为 Nc*Nc来变换patch weights
(这地方我有疑问,这里的全局平均池化 设置了权重,我翻看之前的论文,GMP没有权重,我猜测是做了加权平均的池化。)
。sigmoid激活函数将变换后的权重压缩为
然后,大小为 NbNc的变换和压缩得到的weights 与原始f大小为NbNcHiWiCi的eature tensor 做element-wise 乘积。(这里我仍然有疑问,得到的权重与原来的feature map乘积,新的featuremap相当于被削弱一部分信号,并没有叠加其他crop的feature)因此patches通过它们之间的相互作用学习参数被重新调整权重。最终tensor又被reshape回NbNcHiWiCi在网络中继续处理。这个过程可以在网络中多个位置任意层j重复。在输出部分,我们平均所有crops的预测结果。
这个处理策略计算高效,因为他处理所有切片用相同网络。并且,我们融合了patch-based attention模块在任意预训练上在任意位置,因为他们只操作在架构独立的batch 维度上。然而由于不同的内在模型结构,架构之间的不同位置上的效果无法比较。因此为了确保不同模型架构之间的比较,我们对各个模型的开始或者结尾进行attention module的效果试验。
我们通过循环模型使用对该方法与【28】【29】中的全局上下文恢复进行对比,我们使用了GRU 座位attention block的替换。 每个patch的feature vector 输入给GRU,让其学习输入给全连接层的特征的组合。我们考虑多层GRU,双向变形,和不同特征图尺寸。基于交叉验证,我们找到了单一层的1024维度特征图的表现是最好的。
平衡策略
接下来我们提出4个解决类别不平衡的方法。
- oversampling:对于这个方法,我们在训练集中重复采样每个类别样本,致使所有类别的样本数量平衡。训练阶段,一致并随机从样本池中采样。这样,平衡数量样本类别的样本表达了整个训练集。
- balanced batches:过采样方法没能保证在一个batch中各个类别样本数量的平衡,只是在整个训练过程中的近似。因此,我们也考虑严格的平衡采样,使每个batch都包含相同数量的每个类别的样本。
- loss weighting:我们加大了缺少样本的类别的样本权重,权重因子ni计算为
其中ni是类别i的权重,N是样本总数量,Ni是类别i的样本数量,k用来控制权重的强度。我们探究了不同k值 0.5 1.5 和我们的baseline 设为k=1。 - Diagnosis-guided loss weigting(诊断导向 损失权重):这个新的平衡策略融合了标注样本真实值方法的知识到损失函数当中。大体上,HAM数据集中的图像已经被标注,标注基于“expert consensus”,“serial imaging showed no change”,“confocal microscopy”,“histopathology”。我们假设这些类别表明实验的难易程度,例如,一颗痣需要被显微镜确认就是很难单单从图像中识别。因此我们提出基于标注真实值的技术来增强样本损失。特别地,我们给那些使用了更多标注方法的良性例子增加损失。例如,两性离子仅仅需要专家共识的良性例子损失更低一些,需要显微镜确认的良性例子给出更高的损失权重。
训练
训练过程中,我们采用线上数据增强方法。我们随机在两个轴上进行图像翻转,改变亮度和饱和度。使用交叉熵损失,adam随机梯度下降。实现模型使用pytorch,细节可以查看公开的代码。
实验
首先我们探究创新path-based attention模型,我们使用loss weighting在所有的模型上。所有的结果如果没有说明都是在HAM数据上。我们考虑如下实验:
- 我们比较不同输入策略引入的局部和全局信息处理
- 我们可视化学习到的attention权重
- 我们比较了使用不同数量裁剪
- 我们分析了不同概率值pd的patch dropout
- 我们比较了在SPC数据集上的表现
然后,我们评判类别不平衡策略。我们的创新 diagnosis-guided loss weighting诊断导向损失权重策略结合 lossweighting使用。我们使用multi-crop模型Nc=9。我们考虑如下实验:
- 我们比较不同类别平衡方法
- 我们分析类别平衡在不同loss weighting和变化k值的表现
result
首先我们报告创新的patch-based attention 架构对比其他方法的结果。见table2。该方法提升了MC-sensitivity指标 7%,之前的循环全局上下文模型被我们的方法打败。
接下来我们可视化attention权重,权重表示每个patch的重要程度,见figure4。边缘更亮的patch获得更高的权重。大体上,patches 携带患处活是患处的一部分会获得更亮的权重。这与整张图像患处位置有很大关系。
接下来,我们考虑改变截取数量。结果在table3中。添加更多切片能够提升multi-crop的表现,从9到16个切片数量变化导致了attention模型的微小变化。值得注意的是attention模型中,5个切片和16个切片的情况几乎达到了相同的效果,在多切片中,只需要处理三分之一数量。
接下来,我们评估在SPC数据集上的表现。结果在table4中。大体上表现略低于HAM。不同模型的表现也与HAM上的实验类似,attention机制模型达到了最好效果。
除此之外,我们展示patch dropout机制的效果,在fig5中。对于所有Nc,patch dropout 提升了效果。随着pd增长,效果首先升高,然后在极大值后下降。
接下来,我们改变类别平衡策略,见图5。绝对平衡的采样balanced sampling展示出明显的提升,同时简单过采样oversampling给出了相似或更差的结果。loss weighting 方法的结果比balanced sampling略好,并且我们提出肚饿diagnosis-guide loss weightinig 策略达到了最好的效果。
最后我们探讨通过改变因子k变化loss weighting强度 见table6。开始我们设置k<1,随着k增加,效果提升,但当k>1时候 MC-Sensitivity很快达到饱和值。值得注意的是,MC-Sensitivity在更大的k值上能获得提升或保持效果,而f1 score开始下降。总体来看,MC-specificity总在不错的效果左右微小变化。
discussion
过去,皮肤病患处诊断一直聚焦于抉择是否需要进行活体检测。最近,更多从显微镜下得出的细粒度区别的患处图像被收集起来公开为HAM数据集并组织成了比赛。皮肤患处差别划分越细致,越接近皮肤医生的工作,这给皮肤患处分类提出了新的挑战。为了充分评估多分类任务模型的表现,我们考虑MC-sensitivity 多类别敏感性是重要的策略。相比其他策略,MC-sensitivity独立于每个类别样本数量,并且给出每个病变被区分的情况。
使用分辨率图像是一项深度学习方法的挑战,因为内存、计算资源是有限的。为了找到不同患处的更多细粒度差别,高分别率图像信息是非常有帮助的,并且为了获取高效模型应该被利用起来。一个简单的方法就是使用multi-crop策略,例如多个小、高分别率的切片送入标准模型,然后取预测结果的平均值。本文通过聚合全局上下文和patch-based attention机制沿用这个方法。attention block 能够放入任何预训练架构中,因此很容易利用到迁移学习当中,也容易使用到高分辨率图像上。实验表明我们提出的模块有实质性的效果提升,如table2,特别是对比之前的全局上下文循环模块方法。figure 4 给高质量的视图和其携带的权重。权重越高,模型从该patch中学得的信息也越多。值得注意的是,该模型并没有完全集中在一个可以看到大部分病变的斑块上,而是将重心放在病变边缘和较小部分的斑块上。这与经典诊断标准有关,例如,边缘的条纹是非常重要的特征。这些结果表明我们的attention能够有效交换全局信息,关注相关的子部位图像。
当考虑的切片数量不多,全局上下文获取的效率显著变高。
。。。 不翻译了, 这种顶级刊的文章 实验和讨论内容都是特别特别丰富的。 值得我们学习如何去行文。
祝好! 我歇菜了。
Skin Lesion Classification Using CNNs with Patch-Based Attention and Diagnosis-Guided Loss Weighting相关推荐
- A MULTI-TASK FRAMEWORK WITH FEATURE PASSING MODULE FOR SKIN LESION CLASSIFICATION AND SEGMENTATION
摘要: 1.分割任务和分类任务是有联系的 2.设计了一个特征融合模块在分类分支和分割分支之间传递信息 3.有些信息是有用有些信息是无用的,所以设置了一个门函数来控制信息之间的传递 introducti ...
- Skin Lesion Classification Using Ensembles of Multi-Resolution EfficientNets with Meta Data
abstract 本文我们描述了参加ISIC2019皮肤病变分类比赛.比赛中有两个任务,一是通过皮肤病变来分类皮肤病图像.二是利用图像和附加的患者元数据进行分类.包含25000张图像的庞大数据集提供给 ...
- Dynamic Memory Based Attention Network for Sequential Recommendation【论文解读】
Dynamic Memory Based Attention Network for Sequential Recommendation 从题目中可以看出这篇论文的三个关键点是动态记忆,注意力机制和序 ...
- 译文:Relation Classification via Multi-Level Attention CNNs 使用多层级attention机制的CNN进行关系分类
通过多层面的attention CNN的关系分类 原文:Relation Classification via Multi-Level Attention CNNs http://eprints.bi ...
- 【今日CV 计算机视觉论文速览 第114期】Thu, 9 May 2019
今日CS.CV 计算机视觉论文速览 Thu, 9 May 2019 Totally 37 papers ?上期速览✈更多精彩请移步主页 Interesting: ?用于单图像人体形状重建的卷积网格回归 ...
- (二十八:2021.01.10)MICCAI 2019 追踪之论文纲要(中)
讲在前面 这部分是PART III和PART IV. 论文目录 PART III Neuroimage Reconstruction and Synthesis(神经图像重建与合成) 概要 1.Iso ...
- [论文翻译]测试时数据增强(TTA):Automatic Brain Tumor Segmentation using Convolutional Neural Networks with TTA
论文下载: 地址 Automatic Brain Tumor Segmentation using Convolutional Neural Networks with Test-Time Augme ...
- 【今日CS 视觉论文速览】 24 Jan 2019
今日CS.CV计算机视觉论文速览 Thu, 24 Jan 2019 Totally 29 papers Interesting: ExtremeNet,通过检测物体的四个位置极值点((top-most ...
- (三十 :2021.01.11)MICCAI 2018 追踪之论文纲要(上)
讲在前面 这部分是PART I和PART II. 论文目录 PART I Image Quality and Artefacts(图像质量和伪影) 概要 1.Conditional Generativ ...
最新文章
- R语言droplevels函数删除因子变量(factor)没有用到的级别(level)实战
- Linux 网卡驱动 PHY Mac MDIO kernel 驱动讲解 (未完待续)
- oracle 修索引改空间_记一次Oracle分区表全局索引重修的历程
- LInux在线安装JDK
- 享元模式-Flyweight(Java实现)
- ssm(Spring+Spring mvc+mybatis)mybatis配置文件——mybatis-config.xml
- Codeforces D - High Load
- Spring boot升级到2.3.2.Release和Spring framework升级到5.28.Release踩过的坑
- Docker学习篇(一)Docker概述、安装和常用命令
- hive 修改分区备注_hive修改 表/分区语句
- JS:ES6-12 模块化
- 窗口封装类与Windows窗口实例的关系-3、CWnd如何处理窗口消息
- Java和Python哪个更适合初学者的问题
- 深耕智慧园区 看龙田科技与华为的“默契”
- 世界各国首都经纬度-json
- 年终总结,怎么写领导才满意?
- 如何快速将qsv格式转换成mp4
- y40.第三章 Kubernetes从入门到精通 -- k8s 资源对象(十三)
- 解析Activity中的onCreate方法
- Power BI(二十四)power pivot之产品/客户分类分析(ABC分析)
热门文章
- 包裹侠-快递单号查询App
- adb bugreport 原理
- con 元器件符号_protel99se常用元器件符号和封装符号
- Visual Studio 快捷键无法使用解决办法
- 高考志愿填报网站服务器,高考志愿填报系统依然不畅
- 环保数采仪 5G无线环保数采仪 智能环保数采仪
- 网易数帆陈谔:云原生“牵手”低代码,加速企业数字化转型丨数据猿专访
- python实现数值型变量分段统计
- 地铁bas服务器系统,地铁某线BAS系统项目
- 博客搬迁提示 从C过渡到C++(1)——GNU/Linux