本文使用数据集是由国际光学工程学会(Society of Photo-Optical Instrumentation Engineers)提供的一个开源的甲状腺超声图像数据集。该数据集包含480张甲状腺超声图像,分属390个个体,其中良性样本61个,恶性样本288个。除去无效的数据后,共有349张图像,分属298个个体。每个样例包含一张超声图像和以个可扩展标记语言格式的描述文件。描述文件包含样例的编号、年龄、性别、结节成分、回声反射性、边缘状况、有无钙化、TI-RADS评分等信息。其中决定了样例良恶性的信息是TI-RADS评分。
甲状腺影像报告和数据系统(Thyroid Imaging Reporting and Data System, TI-RADS)是一个评分的分类系统,旨在通过超声图像分析确定甲状腺结节为恶性肿瘤的风险。在TI-RADS系统中,1代表正常的甲状腺,2代表出现典型的良性特征,3代表无可疑的特征,4代表开始出现可疑的特征,包括不规则边缘、低回声反射性(反映在图像则为低亮度)、高度大于宽度、钙化。4A表示出现一个可疑特征,4B表示出现两个,4C表示出现3或4个。5代表出现了全部5个可疑特征。TI-RADS评分在2和3的甲状腺超声图像,在病理学报告中证实为恶性的概率分别为0.9%和2.9%。因此,本文中,以下凡言及甲状腺超声图像的真实值为“良性”,指的便是TI-RADS的评分在2,3当中。
2.2 工作站环境
下记实验均在笔者的Dell Inspiron 15-7560移动计算机上实施,其装载有Intel ® Core i5-7500低电压双核CPU,8192MB随机存储,NVIDIA GeForce 940MX显卡,6055MB独立显存,搭载了64位Microsoft Windows 10 Edu N操作系统。这里采用的机器学习框架是Tensorflow。Tensorflow是目前使用最广泛的机器学习框架之一,使用它可以方便地构建深度神经网络。它提供面向Python的高级编程结构,也提供面向C++,Java等其他语言的底层接口,应用十分灵活。实验所用的Tensorflow版本是带有GPU加速的1.13.1,使用的Python版本是3.7.3。截至本文成稿时,所使用的均为最新的稳定发布。
2.3 预处理
迁移学习(transfer learning)是指将已有问题的解决模型应用在新的相关问题上。目前,在机器学习领域,迁移学习是一个相当热门的方向。而将机器学习应用于医学图像处理也是一个较新的思路。(TN Classification in Ultrasound Images by Fine-Tuning Deep CNN)一文首先提出在针对甲状腺超声图像分类时使用迁移学习。其使用了一个预训练的模型(即GoogLeNet)提取甲状腺超声图像的特征,再基于这些特征进行分类。由于预训练的模型在一个包含很多自然图像的庞大数据集ImageNet上具有良好的效果,可以认为其已经包含许多图像特征提取的知识,因此将其应用到甲状腺超声图像时,可以不用从零开始训练,只需“微调”(fine tuning)某些特定的参数即可。由于许多知识无需再从超声图像数据集中学习,这也缓解了对数据集的依赖。
该文献声称其微调了深度神经网络GoogLeNet。然而,GoogLeNet是一系列使用了类似核心架构(称为Inception结构)的神经网络的统称。谷歌的研究人员在2014年首次提出这样的架构,并于当年取得了ImageNet挑战赛的第一名。如今,Inception经过数个版本的发展,已臻完善。第一个版本Inception v1采用模块结构,提高模型的深度和宽度;第二个版本Inception v2提出了批量正则化(batch normalization);第三个版本Inception v3提出了卷积分解(factorization),将一个二维卷积分解为两个一维卷积;最近的版本Inception v4则结合了残差网络。由于文中没有提到使用的是何版本的GoogLeNet,因此,本文实验时采用了Inception v3的GoogLeNet。
实验时,首先调取在ImageNet上预训练的GoogLeNet网络的权重。去掉顶层的全连接后,加入适宜本问题的分类逻辑,锁定原GoogLeNet的权重后,进行一小段时间的训练。之后再将模型的前段保持锁定,解开模型的后端,使用较小的学习率进行一系列微调。
2.7 图像增强:简单的卷积神经网络
图像增强是甲状腺超声图像良恶性自动分析问题的关键。其一,具有良好标记的数据集较小,容易造成过拟合现象;其二,数据集中的图像质量亦参差不齐。(An Image Augmentation Method Using CNN for TN Classification by Transfer Learning)一文中首先提出,除了传统的图像增强方法,还可以使用卷积神经网络进行图像增强。该文献使用的神经网络的输入是两张具有同样标记的样本图像,即6个通道的输入,唯一的隐藏层包含16个通道,输出是一张3通道的“生成图像”。这样的网络理论上可以提取两张图像中的主要特征,生成一张具有这些特征的图像。如果某一类样本的数量为 N N N,则理论上可以生成的图像数量为 N 2 − N N^2 - N N2−N。
文献当中针对神经网络的使用很有启发性。然其损失函数的描述似有不妥。其实验结果见下部,关于其可靠性笔者按下不表。其与笔者所做实验结果的可比较性亦存疑。其使用的深度残差网络与迁移学习的方法也与笔者前述出入较大。
2.8 图像增强:生成对抗网络