袁夢絢
(南京醫(yī)科大學附屬婦產(chǎn)醫(yī)院 南京 210004)
用深度學習的方法提高健康醫(yī)療行業(yè)的效率,一直是社會關注的焦點,也是近些年來各大公司爭相進入的熱點之一。醫(yī)療行業(yè)擁有天然的大數(shù)據(jù),為深度學習在醫(yī)療行業(yè)的應用提供了非常廣泛的空間[1]。
目前深度學習方法可以自主學習圖像中不同深度的特征,取得了比用傳統(tǒng)方法提取特征更好的效果[2]?;谏疃葘W習的方法與經(jīng)驗,本文探索了使用前饋神經(jīng)網(wǎng)絡,通過分析乳房塊FNA的數(shù)字化圖像,抽取反映細胞核的特征數(shù)據(jù),預測乳腺癌是良性還是惡性。
本文使用深度學習方法對乳腺癌的良惡性預測取得了較好的結果,這種通過無創(chuàng)傷方式進行乳腺癌的預測具有潛在的價值[3]。
本文從569張FNA數(shù)字化圖像中,計算出反應細胞核每個特征的平均值、標準誤差、最大值,從而產(chǎn)生30個特征。所有特征的特征值使用4位有效數(shù)字重新編碼,分為惡性腫瘤和良性腫瘤兩類,包括357例良性,212例惡性。
圖1 顯示了數(shù)據(jù)集中惡性和良性特征的區(qū)域分布。惡性診斷是均勻分布的,而良性診斷具有正態(tài)分布。當其值超過750時,更容易做出惡性診斷。
圖1 數(shù)據(jù)集中惡性與良性特征的區(qū)域分布圖
本文將357例良性,212例惡性作為劃分數(shù)據(jù)集的原本。通過數(shù)據(jù)變形劃分訓練集和測試集。其中訓練集共456例,包括良性286例,惡性170例。測試集共113例,包括良性71例,惡性42例。
3.1.1 深度學習框架的選擇
本文使用TensorFlow框架,TensorFlow是一個采用數(shù)據(jù)流圖,用于數(shù)值計算的開源軟件庫[4]。圖2就是TensorFlow數(shù)據(jù)流圖,結點在圖中表示數(shù)學操作,線表示節(jié)點間相互聯(lián)系的多維數(shù)據(jù)數(shù)組,也就是張量[5]。
圖2 TensorFlow數(shù)據(jù)流圖
TensorFlow是Google在總結了前身DistBelief的經(jīng)驗教訓上形成的,它不僅便攜、高效、可擴展,還能在不同的計算機上運行[6]。
3.1.2 前饋神經(jīng)網(wǎng)絡
前饋神經(jīng)網(wǎng)絡是最簡單樸素的神經(jīng)網(wǎng)絡,又稱多層向前神經(jīng)網(wǎng)絡[7]。如圖3所示是一個典型的前饋神經(jīng)網(wǎng)絡模型。在前饋神經(jīng)網(wǎng)絡中,各神經(jīng)元從輸入層開始,接收前一級輸入,并輸出到下一級,直到輸出層。中間兩層稱為隱藏層,看不見其輸入或輸出的數(shù)據(jù)[8]。整個網(wǎng)絡中無反饋。
圖3 典型的前饋神經(jīng)網(wǎng)絡模型
本文構建了1個輸入層、4個隱藏層、1個輸出層的前饋神經(jīng)網(wǎng)絡。
3.2.1 初始化
初始化對訓練有重大影響[9]。初始化能決定算法是否收斂,如果初始化不合適,初始值過大可能會在前向傳播時產(chǎn)生爆炸的值;初始值過小將導致丟失信息。
本文使用截斷的正態(tài)分布進行初始化[10],均值μ設為0.0,標準差σ設為0.15。如果產(chǎn)生的正態(tài)分布的值與均值的差值大于0.3(兩倍標準差),即產(chǎn)生的值在區(qū)間(μ-2σ,μ+2σ)之外那就重新生成。
3.2.2 批量化
深度學習的數(shù)據(jù)量大,高維也是其重要特征,這就說明了在訓練過程中不適合使用全量的方法,本文使用小批量梯度下降法進行批量化處理,每次訓練用訓練集的一部分,既能使用向量化、矩陣化優(yōu)化算法,又能比較快速地找到最小值[11]。其更新參數(shù)更快,有利于收斂,避免了局部最優(yōu)。小批量值k一般取值10~500之間。
假設每次取出樣本數(shù)為k,初始化參數(shù)向量w f(xi,w)為輸入xi時所預測的輸出,Loss是每個樣本的損失函數(shù),yi是輸入xi的期望輸出,則小批量梯度下降法計算公式為
小批量梯度下降法的算法具體如下。
3.2.3 激活函數(shù)的選擇
激活函數(shù)的主要作用是給神經(jīng)網(wǎng)絡提供非線性建模的能力,如果沒有激活函數(shù),神經(jīng)網(wǎng)絡再復雜也只能處理線性可分的問題[12]。
本文的隱藏層使用ReLU作為激活函數(shù)[13]:
ReLU的函數(shù)圖像如圖4所示。從圖中可以看出,在這個函數(shù)原點左側斜率為0,原點右側斜率為1,這是一個非線性的函數(shù)。當網(wǎng)絡層數(shù)比較多,ReLU不會發(fā)生梯度消失或爆炸的情況。
圖4 ReLU的函數(shù)圖像
本文的輸出層使用Sigmoid作為激活函數(shù)[14]:
Sigmoid的函數(shù)圖像如圖5所示。對乳腺癌預測為良性還是惡性,實際上是一個二分類問題,Sig?moid廣泛應用于二分類的輸出層,其可以將輸出映射到(0,1)區(qū)間內(nèi),函數(shù)單調(diào)連續(xù),求導非常容易。
圖5 Sigmoid函數(shù)圖像
3.2.4 損失函數(shù)的選擇
在深度學習訓練模型的過程中,其實就是一個優(yōu)化損失函數(shù)的過程。損失函數(shù)用來衡量模型的好壞,損失函數(shù)值越小說明模型和參數(shù)越符合訓練樣本[15]。
本文使用交叉熵作為損失函數(shù)[16],假設有n個訓練數(shù)據(jù),a是預測的輸出,y是期望輸出,則交叉熵損失函數(shù)為
3.2.5 優(yōu)化
傳統(tǒng)梯度下降算法對學習率這個超參數(shù)極其敏感,本文使用Adam自適應優(yōu)化算法,動態(tài)調(diào)整學習率,可以根據(jù)不同情況來自動調(diào)整[17]。
Adam利用梯度的一階矩估計和二階矩估計動態(tài)調(diào)整每個參數(shù)的學習率,在經(jīng)過偏置矯正后,每一次迭代學習都有一個確定的范圍,使得參數(shù)比較平穩(wěn)。以下給出了Adam的算法。
本文方法也可以用于其他癌癥的預測,隨著國內(nèi)外相關數(shù)據(jù)集不斷豐富和公開,模型訓練的樣本會不斷增加,可以使用不同方法針對數(shù)據(jù)集,來提高預測準確率。本文的數(shù)據(jù)集可以繼續(xù)擴展,基于本文的方法,可以更好地泛化模型[18]。
我們對模型進行5次迭代進行訓練預測模型最終訓練精度為96.27%,測試精度為99.92%。5次迭代結果如表1所示。
表1 迭代輪數(shù)與訓練精度和測試精度
表2 迭代輪數(shù)與訓練損失和測試損失
迭代次數(shù)與損失值和精度的對應關系如圖6所示。可見,隨著訓練次數(shù)的不斷增加,模型精度越來越高,損失值越來越小。5次迭代為更大規(guī)模的迭代提供了非常好的范本,使用本文的方法可以得到比較理想的結果。
圖6 訓練次數(shù)和精度、損失值的關系
乳腺癌早期的診斷對于患者后續(xù)治療具有重要意義,本文從乳房塊細針抽吸(FNA)數(shù)字化圖像分析數(shù)據(jù),提取出30個特征。使用深度學習Ten?sorFlow框架,搭建前饋神經(jīng)網(wǎng)絡得到了一系列結果。結果表明,本模型對乳腺癌良性惡性分類具有較好的效果,對醫(yī)療行業(yè)的乳腺癌預測方面具有潛在的應用價值。