浅谈深度学习处理医学上的数据问题

在医学成像中,数据存储是基于临床假设进行操作的。当你想提取一个图像时,你通常会看到一些其他与之极其类似的图像,此刻并没有办法来区分它们。一些水平或垂直翻转的图像,它们可能有反向的像素值。当处理一个庞大的数据集时,如何在没有医生查看所有这些畸变的情况下发现这些畸变?比如:在许多胸部x光片的两侧有黑色的边界,如果底部有超过50个黑色像素行,它就有可能旋转了90度。如果一如既往的认知的话,我们就会陷入失效模式。可以利用深度学习来建立模型来解决无法编码的问题。令人惊异的是,像旋转图像这样的问题是可以让机器学习的。因此,使用深度学习修复数据集是显而易见的答案。
在医疗数据中,许多问题其实很简单。解剖学、角度、照明、距离和背景都很稳定。在数据集中的普通胸部x光片中,有一些是旋转的。它们可以左右旋转90度左右,或180度(上下颠倒)。在视觉上,非常规研究与常规研究完全不同。比如“肩膀应该高于心脏”。解剖学是非常稳定的,它是一个可学习的卷积神经网络规则。
在旋转图像的情况下,所需要的只是几千个常规的胸部x光片,然后对它们进行随机旋转。在图像中使用numpy数组,将图像按照顺时针方向旋转90、180度或270度。在这种情况下,绕着第二个和第三个轴(axis)旋转,因为第一个轴是信道的数量(鉴于theano dim排序规则)。在这种情况下,数据集中几乎没有旋转的图像,所以意外“纠正”已经旋转图像的几率非常小。可以假设数据中没有数据,并且模型将会学习得很好。如果有更多非常规的图像,那么你最好手动选择常规和非常规图像。因为像旋转这样的问题很容易被识别,在一个小时内进行几千个标记,不需要太多的精力。建立了一个常规图像的数据集,对其中的一半进行旋转,并相应地标记它们。选择了4000训练案例(其中2000个是经过旋转的)和2000个验证集案例(其中有1000个是经过旋转的)。经验法则:1000个样本可能是好的,加上误差范围,而且它适合于RAM,很容易在计算机上进行训练。将图像缩小到256 x 256像素,并且使用一个经过预先训练的以keras作为基础网络的resnet50。使用经过预先训练的网络并没有真正的理由,因为几乎所有你使用的网络都会在一个简单的解决方案上聚合,但是它很简单,并且不会减慢任何速度(无论如何,训练时间都是快速的)。使用一组默认的参数,不为这个进行任何调优。
可以使用VGG-net,Densenet,需要检查结果查看图像,确保模型或过程做到了你想要它做的事情。
在整个数据集上运行模型、进行预测、然后排除旋转研究。由于数据中几乎没有旋转研究,可以简单地查看被预测为旋转的所有图像。如果相反的话,这就是一个有很多异常图像的问题(比如超过5%的数据),那么收集几百个随机案例和手工标记一个测试集将会更为高效。也可以通过适当的指标追踪模型的精确度。旋转检测器看起来像是部分解决了一些其他问题(如像素值反转)。要知道它做的有多好,需要检查它是否漏掉了其他不好的案例。可以测试这一点,因为像素值反转很容易生成数据。使用与旋转检测器相同的方法训练了一个快速的“反向检测器”,并取得了很好的结果。为了显示少量的标记数据是有用的,使用旋转检测器(n = 56)所发现的横向和不良区域的胶片,并在它们上面训练了一个新模型。由于没有很多这样的胶片所以试图做得更为详尽,甚至没有使用验证集。由于这些任务是可学习的,一旦它接近100%,它应该就会具有很好的泛化能力。
如果我从头开始构建这个数据集,解决这个问题会更加容易,因为我可以访问很多相关的非正面胸部图像。想要比现在做得更好,需要从当地的医院档案中提取来自各个身体区域的一组图像,模型总是会对关于幼儿的胶片显现崩溃的状态。这些儿科胶片在外观上与成人胶片有很大不同,且它们被旋转检测器、反向检测器和不良身体部位检测器识别为“异常”。
根据任务,放置不良和放大的胶片可能是一个问题,但是武断地定义一个“坏胶片”对于所有任务来说都是不可能的,这不是我想做的。总的来说,使用深度学习来解决简单的数据清理问题效果很好。已经确定了相当一部分的侧面胶片和其他身体部位的胶片,为它们构建特定的检测器。构建一个大型髋骨骨折数据集时,应用到了这些技术。特别是,排除了其他身体区域的图像,也排除了植入金属(如髋关节置换)的病例,放大了髋关节区域,同时舍弃了与问题无关的图像区域。排除金属是通过自动文本挖掘过程实现的。因为这些假体在出现时几乎总是被报道,找到了与植入相关的关键词。这些标记10分钟左右的时间就被创建了出来。在躯体部分检测和边界框预测错误的情况下,无法自动生成标记。即使是像边界框预测那样复杂的事物每个数据集仅需要1小时左右的时间即可完成。相比于实际标记骨折需要几个月的时间,额外标记一小时或两小时以获得清晰的数据集是非常小的代价。因为该系统目前可以接收任何临床图像,并且据我们所知,它可以自动排除无关或低质量胶片。这正是AI系统需要在“自然环境”中进行操作的方式。
在数据充足的前提下,深度神经网络在解决视觉问题方面的能力,与人类水平相差无几。同样显而易见却少有人提及的一点是,“数据充足”在很大程度上依赖于任务的难易程度。对于医学图像分析问题的一个子集而言,任务是非常简单的,这使得问题很容易用少量的数据来解决。一般而言,仅用不到一个小时的时间即可完成对图像的识别,但同样的任务,医生需要花费数小时的时间进行手工处理才可完成。

你可能感兴趣的:(深度学习)