眼底疾病诊断的组成
眼底疾病诊断包括了传统机器学习算法和深度学习算法,其中传统机器学习算法用于眼底疾病诊断主要依赖于先验知识和手工设计的特征提取算子,其主要步骤包括数据获取、数据预处理、图像的特征选择和提取、决策规则和分类器设计。不同于传统机器学习,深度学习不需要人工选取图像的特征,深度学习模型可以自动从图像中学习解决问题的最优特征表达。深度学习算法的主要步骤包括数据获取、数据预处理、网络和损失函数设计、参数学习与优化。其中数据获取和数据预处理的方法与传统机器学习类似,网络和损失函数设计则包括了卷积神经网络的各种超参数(如网络的深度、宽度、卷积核大小、卷积步长等)设置和网络训练的目标函数选择,参数学习与优化指的是网络训练阶段的学习率、优化方法、迭代次数等训练超参数的设置。
总之,眼底疾病诊断的组成主要分为眼底图像预处理、人工智能算法的选择以及质量评估指标。
(一)眼底图像预处理
常用的眼底彩照预处理方法有直方图均衡化、阴影矫正、高斯掩模卷积、中值滤波和血管去除等。其中直方图均衡化用来增强对比度,阴影矫正用来归一化图像亮度,高斯掩模卷积和中值滤波用来削减图像噪声,而血管去除用来减少对某些疾病损伤检测的干扰。具体预处理方法的使用极大地依赖于不同的应用场景和目的。在完成上述预处理后,通常还会对图像进行裁剪缩放,并在训练模型时采用数据扩增操作。
1.裁剪和缩放
因为工作中使用到的眼底图像可能来自不同的数据集,所以可能存在数据集中不同图像的分辨率差异较大等问题,因此,在将图像送入到分类系统之前需要对其尺寸进行统一的裁剪和缩放。根据所拥有的数据集情况去进行具体的裁剪和缩放工作,本书中所使用实例的具体操作步骤如下。
(1)选取适当阈值对眼底图像进行二值化,获得图像中的圆形区域半径R。
(2)对眼底图像进行裁剪,得到一个以圆形区域圆心为中心、边长为2R的正方形图像。
(3)将得到的正方形眼底图像统一缩放至同一尺寸。
2.数据扩增
在训练深度卷积神经网络的过程中,数据量不足容易引起模型的过拟合。为了避免出现过拟合现象,我们需要对训练数据进行数据扩增。数据扩增的方法如下。
(1)对图像随机进行水平和竖直方向的翻转。
(2)将图像随机旋转某一角度,旋转后的留白部分使用黑色像素点代替。
(3)将图像尺度缩放,缩放因子a取值在0~1范围,将图片进行[1-a,1+a]内随机值缩放。
(4)将图像在水平、垂直和通道上进行微量偏移。
图3-4显示了不同眼底图像经过裁剪和缩放、数据扩增之后得到的结果。其中数据扩增步骤会随机选择是否对送入的经过裁剪和缩放的眼底图像进行(1)~(4)步。
图3-4 眼底图像归一化处理结果图
(二)常见的人工智能算法
人工智能算法的三大基石分别是算法、数据和计算能力,算法作为其中之一,具有非常重要的作用,因此,接下来会介绍一下人工智能涉及的算法。人工智能算法按照模型训练方式的不同可以分为监督学习、无监督学习、半监督学习和强化学习。
监督学习:就是将已经标注好标签的数据集送入到预先设计好的模型中进行训练,通过不断的训练我们可以得到一个适合于数据的最终模型,该模型能够对未进行训练过的数据具有很好的预测结果。在监督学习中不仅包含样本,还包含这些样本对应的标签,即样本和标签是成对存在的。常见的监督学习算法包括人工神经网络(artificial neural network,ANN)类、贝叶斯类、决策树类和线性分类器类。人工神经网络类包括反向传播、玻尔兹曼机、卷积神经网络、回归神经网络等。贝叶斯类包括朴素贝叶斯、高斯贝叶斯、多项朴素贝叶斯、贝叶斯网络等。决策树分类包括分类和回归树、卡方自动交互检测、决策残端、随机森林等。线性分类器包括Fisher的线性判别、多项逻辑回归、朴素贝叶斯分类器、支持向量机等。
半监督学习:是指使用标注好标签和未进行标注的样本进行学习。由于标注好标签的样本较少,为了有效地利用大量的无标签样本,半监督学习需要采用合适的半监督假设将学习模型和无标签样本的数据分布联系起来。研究表明,半监督学习方法的性能依赖于所有的半监督假设。目前的机器学习技术大多基于独立同分布假设,即数据样本独立地采样于同一分布。除了常见的独立同分布假设,为了取得泛化的结果,监督学习技术大多基于平滑假设,即相似或者相邻的样本点的标记也应该相似,而在半监督学习中这种平滑假设则体现为两个较为常见的假设:聚类假设与流型假设。半监督算法仅在数据的结构保持不变的假设下起作用,没有这样的假设,不可能从有限的训练集推广到无限的不可见的集合。半监督学习算法包括生成模型、低密度分离、基于图形的方法、联合训练等。
无监督学习:就是将事先不知道标签的样本通过某种方法处理后,能够将相似的样本划分为同一类。监督学习是一种目的明确的训练方式,即事先有明确的目标。而无监督学习则是没有明确目的的训练方式。无监督学习作为一种机器学习的训练方式,它本质上是一个统计手段,在没有标签的数据里发现潜在结构的一种训练方式。常见的无监督学习算法包括人工神经网络类、关联规则学习类、分层聚类算法、聚类分析和异常检测类。人工神经网络类包括生成对抗网络、前馈神经网络、逻辑学习机、自组织映射等。关联规则学习类包括先验算法、Eclat算法、FP-Growth算法等。分层聚类算法包括单连锁聚类、概念聚类等。聚类分析包括模糊聚类、K均值聚类、均值漂移算法。异常检测类包括K-最近邻算法、局部异常因子算法等。
强化学习:是指人通过动作对环境产生了一定的影响,而后环境向人反馈这一动作引起的状态变化,人又通过得到的这个反馈来审视他最初实行的那个动作所带来的结果,从而根据获取的结果来更新做出动作的策略。强化学习强调如何基于环境而行动,以取得最大化的预期利益,其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或者惩罚的刺激下,逐步形成对刺激的预期,从而产生能获得最大利益的习惯性行为。常见的强化学习算法包括Q学习、状态-行动-奖励-状态-行动、策略梯度算法、基于模型强化学习、时序差分学习等。
(三)质量评估指标
在如眼底疾病诊断等分类任务中,真阳性(true positive,TP)表示预测为某一类,实际也为某一类。假阳性(false positive,FP)表示预测为某一类,实际为其他类。假阴性(false negative,FN)表示预测为其他类,实际为某一类。真阴性(true negative,TN)表示预测为其他类,实际也为其他类。由此可以引出真阳性率(TPR)、假阳性率(FPR)与准确率(precision ratio,P)、召回率(recall ratio,R)等衡量诊断性能的评价指标。同时还可以引入受试者操作特征曲线(receiver operating characteristic curve,ROC),ROC曲线上每个点反映着对同一信号刺激的感受性。横轴为假阳性率(FPR),纵轴为真阳性率(TPR)。两者定义分别如公式(3-8)、公式(3-9)所示。
由此可知,在ROC曲线中:TPR=1,FPR=0。ROC曲线有个很好的特性:当测试集中正负样本的分布变换的时候,ROC曲线能够保持不变。当用ROC曲线衡量网络的性能时,若一个网络的ROC曲线被另一个网络的完全包住,那么这个网络性能优于后者;若两者曲线出现交叉,则还需根据ROC曲线下的面积来判别两者之间的性能优劣。