黄琪,左劼,孙频捷
(1.四川大学计算机学院,成都610065;2.上海政法学院,上海200000)
在过去的十年间,神经网络在医疗图像识别领域得到了普遍的应用。大量利用神经网络训练得到的模型在数据集上的表现都接近或超过了人类专家的水平。同时人们逐渐发现限制神经网络在医疗图像识别中的进一步发展的关键因素是精细标注数据的缺失[1]。在医疗图像识别领域,精细标注的数据是非常珍贵的,因为这往往需要多名医疗专家进行长时间的标注工作,耗时耗力。精细标注数据的缺失要求人们使用传统的有监督学习之外的方法,以此对缺乏精细标注的数据进行学习。多实例学习就是其中的一种方法。
多实例学习介于无监督学习和有监督学习之间:利用多实例学习,在缺乏针对医疗图像的精细标注的情况下,即只利用较弱标签来进行训练,也可以接近或达到拥有精细标注的有监督学习的效果。
多实例学习往往应用于这样的场景:医疗图像局部的标注是耗时耗力或者无法获得的,但是全局的标注是相对容易获得的[2]。多实例学习将一个医疗图像的样本视为一个包,而每一个包中包含了多个实例。专家并不需要对包中的每个实例进行标注,而只需要对整个包进行标注。这样的做法极大降低了对人力标注的要求。
更加具体地说,我们将一个包认为是多个实例的集合。我们用Xi表示某一个包,用xij̇表示其中的一个实例,包中一共有Ni个实例,即有:Xi={xij|j=1,…,Ni}。对于多实例学习,为每一个包Xi赋予一个标注Yi,假设共有m 个包,那么有{(Xi,Yi)|i=1,…,m}。在多实例学习中,通常我们假设,如果一个包中含有至少一个实例是阳性的,那么我们认为这个包就是阳性的,否则是阴性。
根据处理任务的不同,传统的多实例学习往往分为两类:第一类多实例学习方法认为图像中的表示标签信息的部分在实例上,即模型不应该聚焦在整个图像上,而是应该关注图像中的某一部分,这一部分是具有分辨力的,是带有整图像的标签信息的;第二类多实例学习方法则针对图像的标签信息是基于整个图像的。
多实例学习的工作最早起源于针对药物分子结构的识别[3]。随着神经网络的发展,大量基于多实例学习的方法被提出。这里我们简单地将这些方法分为两类:第一类是全局检测,即针对一个医疗图像,我们需要得到一个基于全局图片(包)的预测结果;第二类是局部检测,即针对一个医疗图像,我们只需要图片其中一部分(实例)即可得到预测结果。
局部检测的应用场景是,整个医疗图像中只有一部分具有我们需要识别的信息。即图像中的大部分是不带有我们所需要的信息的。
例如在乳腺癌识别的任务中[4],为了识别乳腺癌X光图片中的少量结块(占比低于2%),作者设计了一个基于神经网络的端到端的模型来学习。首先该方法利用Otsu’s 方法,将图片进行分割,以此来移除背景区域,并将图片统一尺寸。紧接着利用多实例学习,获取了不同的实例所产生的不同的响应概率,并将其进行排序。同时,该方法设计了三种不同的多实例损失函数进行学习。第一种是利用最大池化操作,挑选出响应概率最高的实例,并将整个包的标签赋予该实例进行学习,这种方法利用了传统的多实例学习的思想,即如果一个包中的某一个实例是阳性的,那么整个包都是阳性的。具体到该任务,如果是阴性的乳腺癌图片,那么我们认为所有的实例都是阴性的,如果是阳性的乳腺癌图片,那么至少有一个实例应该是阳性的。因此很容易想到,将实例中最大阳性概率响应的实例赋予阳性的标签。第二种方法利用标签分配的操作,不同于方法一中只为一个包中的某一个实例赋予标签,方法二为同一个包中的多个实例赋予标签,进行学习。具体来说,我们将某一个包中的所有实例按照响应概率进行排序,并选择靠前的多个实例赋予阳性标签进行学习。第三种方法实际上是前两种方法的折中,引入一个稀疏因子,表示该实例的重要性和整个包稀疏性的一个权衡,对于良性的实例,我们希望它的响应概率接近0,对于恶性的实例,我们希望它能显示出乳腺癌的真正标签。多实例学习在局部检测中的一大难点就是如何找到带有标签信息的实例,而该论文提出的三个不同的loss 就是根据不同的思想,将图像的标签合理的分配到各个实例上,三个方法依次递进,使得模型学习更加准确。
又例如在识别不同类别的人体切片任务中[5],作者发现有的类别之间图片极其相似,图片之间只有及其细微的地方才能看到差异。因此作者设计了一个两阶段的神经网络来找到图片(包)中最具有分辨信息的实例。在第一阶段里,使用最大池化操作保证每个包中只有一个最大响应的实例训练网络,即认为最大响应的实例是我们所需要的,也是和标注吻合的。在这一阶段中,模型前向传播使用的数据是全部的数据中的实例,但是其反向传播使用的是某一个包中的最大响应概率的实例。然后在第二阶段中,该方法重构了数据集:首先将第一阶段中全部的高响应实例抽取出来,同时挑选了部分响应概率较低的实例,作为一个新的类别,并认为该类实例属于无标签信息的实例,然后继续训练网络。可以发现,该方法在没有精细标注的情况下,成功识别出了图像中具有信息的和不具有信息的实例,同时根据这些实例,成功识别出了不同的人体切片。
利用多实例学习进行全局检测,得到整个医疗图像的一个全局预测的场景是更加常见的。因此针对多实例学习进行全局检测的方法也更多。
在异质图片检测的任务中[6],随机的从原始医疗图像中选择一部分,将其提取出来后,利用前景的标注信息,去除背景中无用的部分。使用平均池化的操作将所有的实例平等的纳入考虑,即针对包中的所有实例都进行训练,提高模型的鲁棒性,对比使用最大池化操作,只训练某一个实例的效果提升明显。同时聚合结果时并不是将多个实例的结果压缩为一个单独的数字,而是使用了分位数聚集的方法,获得了更全面的信息。当然该方法限制较多,例如该论文使用了图片的前景标注,提取出了图片中具有信息的部分,保证了挑选出来的实例都是前景图片。同时这个工作是假设所有选择的样本都是带有某种标签特征的样本,训练的时候为所有样本赋予相同的权重,在某些任务中,该假设可能并不适用。
在更加复杂的病理图像识别任务中[7],由于病理图像尺寸非常巨大,往往能达到数亿个像素。因此在这样的图像上进行精细的标注是非常耗时耗力的。作者基于这样的考虑,设计了一套软件标注系统。该系统根据标注专家在图像上的缩放比例、停留时间、平移速度等信息,将整个巨大的医疗图像的一部分选取为我们感兴趣的实例。这样的实例选择方法在病理图像中非常实用,首先病理图像极其巨大,即使划分为多个更小的实例,仍然会有大量的实例产生,不管是利用传统机器学习的方法,还是利用神经网络,计算量都非常巨大。而利用该系统选择实例,既能减少标注专家所花费的精力和时间,又不需要进一步进行非常精细的分割或者基于像素的标注,同时也可以挑选出大致合理的备选实例,并且极大降低了备选实例的数量。紧接着,和大部分神经网络方法区别的是,该方法并没有直接使用神经网络进行端到端的学习,而是从实例中提取图像特征,例如图像的结构特征,色域通道特征等形成了一个370 维的向量。由于图像具有多标签,因此该任务成为了一个多标签多实例学习的任务。最后,作者利用四种不同的模型方法,简化任务,例如将多标签多实例学习任务简化为单标签多实例任务或者多标签单实例任务等,对图像进行学习预测。该论文中也可以看到在医疗图像领域,专业的标注是十分难以取得的,或者说代价非常巨大。往往少量的图像标注就需要多名专家花费大量的时间和精力,同时还需要克服专家之间意见不统一的情况。而论文中开发的标注系统是解决该问题的有效手段之一。
我们调查了多实例方法在医疗图像识别任务中的应用,并将多个方法分为了两个类别,即针对全局检测和针对局部检测。全局检测认为单个图像包中的多个实例均对图像的标签有贡献,因此将医疗图像中的多个实例都纳入模型中进行学习,并根据图像全局的信息得到预测结果;局部检测即根据先验知识,认为整个医疗图像中只有小部分具有我们需要的信息,其余部分或者是背景,或者不含有图像标签的信息,因此只挑选整个图像包中的某一个或者某一小部分实例进行学习。随着多实例学习在医疗图像领域中的进一步应用,可以看到越来越多的论文也将这两种方法进行了结合。在缺乏精细数据标注的医疗图像任务中,多实例学习将获得更多的应用空间。