袁夢絢
(南京醫科大學附屬婦產醫院 南京 210004)
用深度學習的方法提高健康醫療行業的效率,一直是社會關注的焦點,也是近些年來各大公司爭相進入的熱點之一。醫療行業擁有天然的大數據,為深度學習在醫療行業的應用提供了非常廣泛的空間[1]。
目前深度學習方法可以自主學習圖像中不同深度的特征,取得了比用傳統方法提取特征更好的效果[2]。基于深度學習的方法與經驗,本文探索了使用前饋神經網絡,通過分析乳房塊FNA的數字化圖像,抽取反映細胞核的特征數據,預測乳腺癌是良性還是惡性。
本文使用深度學習方法對乳腺癌的良惡性預測取得了較好的結果,這種通過無創傷方式進行乳腺癌的預測具有潛在的價值[3]。
本文從569張FNA數字化圖像中,計算出反應細胞核每個特征的平均值、標準誤差、最大值,從而產生30個特征。所有特征的特征值使用4位有效數字重新編碼,分為惡性腫瘤和良性腫瘤兩類,包括357例良性,212例惡性。
圖1 顯示了數據集中惡性和良性特征的區域分布。惡性診斷是均勻分布的,而良性診斷具有正態分布。當其值超過750時,更容易做出惡性診斷。

圖1 數據集中惡性與良性特征的區域分布圖
本文將357例良性,212例惡性作為劃分數據集的原本。通過數據變形劃分訓練集和測試集。其中訓練集共456例,包括良性286例,惡性170例。測試集共113例,包括良性71例,惡性42例。
3.1.1 深度學習框架的選擇
本文使用TensorFlow框架,TensorFlow是一個采用數據流圖,用于數值計算的開源軟件庫[4]。圖2就是TensorFlow數據流圖,結點在圖中表示數學操作,線表示節點間相互聯系的多維數據數組,也就是張量[5]。

圖2 TensorFlow數據流圖
TensorFlow是Google在總結了前身DistBelief的經驗教訓上形成的,它不僅便攜、高效、可擴展,還能在不同的計算機上運行[6]。
3.1.2 前饋神經網絡
前饋神經網絡是最簡單樸素的神經網絡,又稱多層向前神經網絡[7]。如圖3所示是一個典型的前饋神經網絡模型。在前饋神經網絡中,各神經元從輸入層開始,接收前一級輸入,并輸出到下一級,直到輸出層。中間兩層稱為隱藏層,看不見其輸入或輸出的數據[8]。整個網絡中無反饋。

圖3 典型的前饋神經網絡模型
本文構建了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的算法。


本文方法也可以用于其他癌癥的預測,隨著國內外相關數據集不斷豐富和公開,模型訓練的樣本會不斷增加,可以使用不同方法針對數據集,來提高預測準確率。本文的數據集可以繼續擴展,基于本文的方法,可以更好地泛化模型[18]。
我們對模型進行5次迭代進行訓練預測模型最終訓練精度為96.27%,測試精度為99.92%。5次迭代結果如表1所示。

表1 迭代輪數與訓練精度和測試精度

表2 迭代輪數與訓練損失和測試損失
迭代次數與損失值和精度的對應關系如圖6所示。可見,隨著訓練次數的不斷增加,模型精度越來越高,損失值越來越小。5次迭代為更大規模的迭代提供了非常好的范本,使用本文的方法可以得到比較理想的結果。

圖6 訓練次數和精度、損失值的關系
乳腺癌早期的診斷對于患者后續治療具有重要意義,本文從乳房塊細針抽吸(FNA)數字化圖像分析數據,提取出30個特征。使用深度學習Ten?sorFlow框架,搭建前饋神經網絡得到了一系列結果。結果表明,本模型對乳腺癌良性惡性分類具有較好的效果,對醫療行業的乳腺癌預測方面具有潛在的應用價值。