基于深度学习的乳腺癌预测*
2021-12-01袁梦绚
袁梦绚
(南京医科大学附属妇产医院 南京 210004)
1 引言
用深度学习的方法提高健康医疗行业的效率,一直是社会关注的焦点,也是近些年来各大公司争相进入的热点之一。医疗行业拥有天然的大数据,为深度学习在医疗行业的应用提供了非常广泛的空间[1]。
目前深度学习方法可以自主学习图像中不同深度的特征,取得了比用传统方法提取特征更好的效果[2]。基于深度学习的方法与经验,本文探索了使用前馈神经网络,通过分析乳房块FNA的数字化图像,抽取反映细胞核的特征数据,预测乳腺癌是良性还是恶性。
本文使用深度学习方法对乳腺癌的良恶性预测取得了较好的结果,这种通过无创伤方式进行乳腺癌的预测具有潜在的价值[3]。
2 数据集
本文从569张FNA数字化图像中,计算出反应细胞核每个特征的平均值、标准误差、最大值,从而产生30个特征。所有特征的特征值使用4位有效数字重新编码,分为恶性肿瘤和良性肿瘤两类,包括357例良性,212例恶性。
2.1 数据集中数据的分布
图1 显示了数据集中恶性和良性特征的区域分布。恶性诊断是均匀分布的,而良性诊断具有正态分布。当其值超过750时,更容易做出恶性诊断。
图1 数据集中恶性与良性特征的区域分布图
2.2 数据集的处理
本文将357例良性,212例恶性作为划分数据集的原本。通过数据变形划分训练集和测试集。其中训练集共456例,包括良性286例,恶性170例。测试集共113例,包括良性71例,恶性42例。
3 预测方法与模型
3.1 预测方法
3.1.1 深度学习框架的选择
本文使用TensorFlow框架,TensorFlow是一个采用数据流图,用于数值计算的开源软件库[4]。图2就是TensorFlow数据流图,结点在图中表示数学操作,线表示节点间相互联系的多维数据数组,也就是张量[5]。
图2 TensorFlow数据流图
TensorFlow是Google在总结了前身DistBelief的经验教训上形成的,它不仅便携、高效、可扩展,还能在不同的计算机上运行[6]。
3.1.2 前馈神经网络
前馈神经网络是最简单朴素的神经网络,又称多层向前神经网络[7]。如图3所示是一个典型的前馈神经网络模型。在前馈神经网络中,各神经元从输入层开始,接收前一级输入,并输出到下一级,直到输出层。中间两层称为隐藏层,看不见其输入或输出的数据[8]。整个网络中无反馈。
图3 典型的前馈神经网络模型
3.2 模型设计
本文构建了1个输入层、4个隐藏层、1个输出层的前馈神经网络。
3.2.1 初始化
初始化对训练有重大影响[9]。初始化能决定算法是否收敛,如果初始化不合适,初始值过大可能会在前向传播时产生爆炸的值;初始值过小将导致丢失信息。
本文使用截断的正态分布进行初始化[10],均值μ设为0.0,标准差σ设为0.15。如果产生的正态分布的值与均值的差值大于0.3(两倍标准差),即产生的值在区间(μ-2σ,μ+2σ)之外那就重新生成。
3.2.2 批量化
深度学习的数据量大,高维也是其重要特征,这就说明了在训练过程中不适合使用全量的方法,本文使用小批量梯度下降法进行批量化处理,每次训练用训练集的一部分,既能使用向量化、矩阵化优化算法,又能比较快速地找到最小值[11]。其更新参数更快,有利于收敛,避免了局部最优。小批量值k一般取值10~500之间。
假设每次取出样本数为k,初始化参数向量w f(xi,w)为输入xi时所预测的输出,Loss是每个样本的损失函数,yi是输入xi的期望输出,则小批量梯度下降法计算公式为
小批量梯度下降法的算法具体如下。
3.2.3 激活函数的选择
激活函数的主要作用是给神经网络提供非线性建模的能力,如果没有激活函数,神经网络再复杂也只能处理线性可分的问题[12]。
本文的隐藏层使用ReLU作为激活函数[13]:
ReLU的函数图像如图4所示。从图中可以看出,在这个函数原点左侧斜率为0,原点右侧斜率为1,这是一个非线性的函数。当网络层数比较多,ReLU不会发生梯度消失或爆炸的情况。
图4 ReLU的函数图像
本文的输出层使用Sigmoid作为激活函数[14]:
Sigmoid的函数图像如图5所示。对乳腺癌预测为良性还是恶性,实际上是一个二分类问题,Sig⁃moid广泛应用于二分类的输出层,其可以将输出映射到(0,1)区间内,函数单调连续,求导非常容易。
图5 Sigmoid函数图像
3.2.4 损失函数的选择
在深度学习训练模型的过程中,其实就是一个优化损失函数的过程。损失函数用来衡量模型的好坏,损失函数值越小说明模型和参数越符合训练样本[15]。
本文使用交叉熵作为损失函数[16],假设有n个训练数据,a是预测的输出,y是期望输出,则交叉熵损失函数为
3.2.5 优化
传统梯度下降算法对学习率这个超参数极其敏感,本文使用Adam自适应优化算法,动态调整学习率,可以根据不同情况来自动调整[17]。
Adam利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,在经过偏置矫正后,每一次迭代学习都有一个确定的范围,使得参数比较平稳。以下给出了Adam的算法。
4 预测结果
本文方法也可以用于其他癌症的预测,随着国内外相关数据集不断丰富和公开,模型训练的样本会不断增加,可以使用不同方法针对数据集,来提高预测准确率。本文的数据集可以继续扩展,基于本文的方法,可以更好地泛化模型[18]。
我们对模型进行5次迭代进行训练预测模型最终训练精度为96.27%,测试精度为99.92%。5次迭代结果如表1所示。
表1 迭代轮数与训练精度和测试精度
表2 迭代轮数与训练损失和测试损失
迭代次数与损失值和精度的对应关系如图6所示。可见,随着训练次数的不断增加,模型精度越来越高,损失值越来越小。5次迭代为更大规模的迭代提供了非常好的范本,使用本文的方法可以得到比较理想的结果。
图6 训练次数和精度、损失值的关系
5 结语
乳腺癌早期的诊断对于患者后续治疗具有重要意义,本文从乳房块细针抽吸(FNA)数字化图像分析数据,提取出30个特征。使用深度学习Ten⁃sorFlow框架,搭建前馈神经网络得到了一系列结果。结果表明,本模型对乳腺癌良性恶性分类具有较好的效果,对医疗行业的乳腺癌预测方面具有潜在的应用价值。