馬修玉 何良華
摘要:基于深度學習的醫(yī)學圖像分析是智慧醫(yī)療的一個重要方向。但是通常情況下,醫(yī)學圖像數(shù)據(jù)集數(shù)據(jù)量很小,而且由于醫(yī)學圖像的標注困難,耗費大量人力物力,所以帶標簽的訓練數(shù)據(jù)很難獲取。如何使用極少的帶標簽數(shù)據(jù)和無標簽的數(shù)據(jù)得到一個較好的網(wǎng)絡模型是本文的主要研究內(nèi)容。該文提出基于深度聚類的自監(jiān)督網(wǎng)絡模型作為特征提取器,并且使用標簽傳播算法對特征進行分類,解決了只有極少量標簽(例如1張,5張或者10張)即小樣本情況下的醫(yī)學圖像分類問題,在BreakHis數(shù)據(jù)集上取得了比傳統(tǒng)機器學習算法更好的效果,并且接近于全監(jiān)督學習方法。
關鍵詞:深度學習;深度聚類;自監(jiān)督學習;小樣本學習;標簽傳播算法;醫(yī)學圖像分類
中圖分類號:TP311? ? ?文獻標識碼:A
文章編號:1009-3044(2022)03-0078-03
開放科學(資源服務)標識碼(OSID):
1 概述
深度學習算法,尤其是卷積神經(jīng)網(wǎng)絡在醫(yī)學圖像分析領域的廣泛使用使得診斷的準確性有了很大提升。雖然基于深度學習的方法能在這些任務上取得比傳統(tǒng)機器學習方法更好的效果,但是這些方法通常都需要大量已標注的數(shù)據(jù)集作為訓練數(shù)據(jù)。因此如何在已標注樣本很少的情況下(即小樣本情況),利用僅有的已標注數(shù)據(jù)以及無標簽數(shù)據(jù)解決醫(yī)學圖像分類成為一個很重要的問題。
最近,很多對標注數(shù)據(jù)需求量小或者不需要標注數(shù)據(jù)的方法受到人們關注,出現(xiàn)了很多無監(jiān)督學習的方法,自監(jiān)督學習就是其中最具代表性的一種。自監(jiān)督學習的思想非常簡單,就是輸入的是無標注的數(shù)據(jù),但是通過數(shù)據(jù)本身的結構或者特性,人為構造標簽出來。有了標簽之后,就可以類似監(jiān)督學習一樣進行訓練。傳統(tǒng)機器學習算法中,聚類算法是一種涉及數(shù)據(jù)點分組的機器學習技術,不需要數(shù)據(jù)標簽,屬于無監(jiān)督學習算法的一種。結合兩種思想本文主要做了以下工作:
1)提出基于深度聚類的自監(jiān)督網(wǎng)絡模型,利用無標簽數(shù)據(jù)訓練出較好的特征提取模型。
2)提出改進的標簽傳播算法,利用上述特征提取模型和有限的帶標注樣本進行分類,在BreakHis數(shù)據(jù)集上取得了很好的分類效果。
2 相關工作
2.1 自監(jiān)督學習
自監(jiān)督學習作為無監(jiān)督學習方法的一個子集,可以從大規(guī)模未標記數(shù)據(jù)中學習一般圖像和視頻特征,而不使用任何人為標注標簽。自監(jiān)督學習的方法通常是設置一些前置任務(如圖像上色、圖像修補、圖像拼接等),訓練網(wǎng)絡去解決前置任務,在完成這些任務的過程中,網(wǎng)絡就學習到了相應的特征。
何凱明在2019年提出了MoCo(Momentum Contrast)[1], 使用動量的方式更新encoder參數(shù),解決新舊候選樣本編碼不一致的問題;Chen Ting在2020年提出了SimCLR[2],在encoder之后增加了一個非線性映射
[ghi=W* ReLU (W* hi)]
效果直接比MoCo高出了7個點,并直逼監(jiān)督模型的結果;何凱明在改進自己的方法加入相同的非線性層后提出MoCov2,效果反超SimCLR;近些年來人們開始把自監(jiān)督學習用于醫(yī)學圖像分析,例如谷歌提出了大型自監(jiān)督模型改進醫(yī)學圖像分類[3]。
2.2 深度聚類與標簽傳播
聚類的目標就是根據(jù)某一相似性度量準則,將相似的數(shù)據(jù)分到同一類,盡管人們提出了很多的聚類算法,但是這些方法在高維數(shù)據(jù)上表現(xiàn)得很差。由于深度學習的發(fā)展,以及神經(jīng)網(wǎng)絡內(nèi)在的非線性變換的特點,深度神經(jīng)網(wǎng)絡可以將數(shù)據(jù)轉化成更易于分類的特征表示,通常把使用深度學習的聚類方法稱之為深度聚類(deep clustering)[4]。
標簽傳播算法[5]是一種基于圖的半監(jiān)督學習算法,它以一種迭代的方法通過帶標注數(shù)據(jù)推測無標注數(shù)據(jù)的標簽,其基本思路是用已標記節(jié)點的標簽信息去預測未標記節(jié)點的標簽信息,經(jīng)常被用于社區(qū)發(fā)現(xiàn)。
2.3小樣本學習
機器學習在數(shù)據(jù)密集型的領域取得了巨大的成功,但是在數(shù)據(jù)集比較小的時候通常效果更不太理想,最近人們提出了小樣本學習來解決這個問題?;诙攘繉W習的小樣本學習方法比如MathingNet[6],ProtoNet[7]等都取得了不錯的效果。
3 自監(jiān)督聚類模型
3.1 自監(jiān)督聚類模型
傳統(tǒng)的自監(jiān)督學習算法通常以大量的自然圖像比如ImageNet,作為訓練數(shù)據(jù)集,構造前置任務,模型能夠在訓練過程中學到底層的圖像特征。自監(jiān)督模型能夠使用無標簽數(shù)據(jù)進行訓練,從而得到很好的特征提取器。傳統(tǒng)的網(wǎng)絡自監(jiān)督訓練以每一張圖為一類,進行實例區(qū)分來訓練網(wǎng)絡。由于自然圖像分類通常類別數(shù)量很大,無法利用類別信息,而醫(yī)學圖像分類任務通常類別已知(比如乳腺癌可以分為良性和惡性),因此可以設計基于聚類的自監(jiān)督網(wǎng)絡模型。
本文提出基于深度聚類算法的自監(jiān)督網(wǎng)絡模型,如圖1所示。設計一個聚類隊列,在模型訓練的同時,以聚類算法更新隊列,使模型不僅能學習區(qū)分不同實例,而且能學習同類別的相似性。網(wǎng)絡采用兩個分支,其中一個分支以動量方式更新參數(shù),并且將輸出用來更新聚類隊列,同時設計一個隊列存儲C個類別的均值向量,在迭代訓練過程中采用k-means算法不斷地更新均值向量,具體步驟見算法1。自監(jiān)督訓練分支采用InfoNCE損失函數(shù)。
[LossNCE=-logexp (q?k+ / T)i=0Kexp (q?ki / T)]
[Loss=LossNCE+λ?Losssim]
結合聚類損失函數(shù)得到最終損失函數(shù)([λ]為平衡因子):
算法1: 自監(jiān)督聚類
輸入:特征向量 [q,? k]
輸出:聚類隊列[ q] ,? 訓練損失 [Losssim]
開始 :
[for q,? k in DataLoaer : ]
[j=argmax{ k ? avgi }Ni=1]
[enqueuej,? k ]
[avgj=? 1Kj i=1Kjkj, i]
[d=q?avgj]
[Losssim+=Id>thresold*d]
[return Losssim]
結束
3.2 標簽傳播算法
標簽傳播算法的基本理論是:每個節(jié)點根據(jù)相似度將自己的標簽傳播給相鄰的節(jié)點,對于傳播的一個節(jié)點,它通過計算與周圍節(jié)點的相似度,根據(jù)相似度大的節(jié)點的標簽來更新附近的標簽,最終相似度大的節(jié)點的標簽都會被分為同一標簽。本文先將輸入的特征向量進行正則化,映射到球面空間,再進行標簽傳播,詳細過程見算法2,其中[Xl= x1,? y1 …? xl,? yl] 為已標注數(shù)據(jù)集,[Yl=y1, … , yl ∈{1 … C}] 為類別標簽, 類別數(shù)量 [C] 已知,并且所有類別在已標注數(shù)據(jù)集中都有展示。[Xu= xl+1,? yl+1 …? xl+u,? yl+u] 為未標注數(shù)據(jù)集,[Yu=yl+1, … , yl+u ∈{1 … C}] 為待預測數(shù)據(jù),通常情況下,[l << u]。要解決的問題就是根據(jù) [Xl] ,[Yl] ,[Xu] 預測 [Yu] ,具體算法步驟見算法2。
算法2:? 標簽傳播
輸入:特征向量矩陣 [X],? 實標簽矩陣[ Yl∈l × C] , 軟標簽矩陣 [Yu∈u × C]? ,傳播矩陣 [ T∈l+u × (l+u)]。
輸出 :? 標簽矩陣 [Y ]。
步驟:
1. 正則化輸入特征向量 :?; ? ? ? [xi= xixi]
2. 計算相似度權重矩陣:? ? [wij=exp- dijσ2=exp (- d=1D(xdi - xdj) σ2)]
3. 計算標簽[ j] 傳播到標簽 [i] 的概率 : [Tij=? Pj →i= wijk=1l+uwkj]
4. 傳播:? ? ? [Y=cat(Yl, Yu)]? ? ? ? ? ? [Yt=? T × Yt-1]
5. 重置? [Y ]中已標記樣本的標簽: [Fl=? Yl]
6. 重復步驟 4 和 5 直至 [Y] 收斂。
筆者將第一階段訓練好的模型作為特征提取器,將支撐集(support set, 有標簽), 查詢集(query set,無標簽)同時送入模型作為輸入,得到其在特征空間的映射,然后再將其歸一化到球形特征空間,通過標簽傳播算法進行預測分類,整個流程如圖2所示。
4 實驗與結果分析
4.1 實驗數(shù)據(jù)集
實驗主要在BreakHis數(shù)據(jù)集上進行,BreakHis (Breast Cancer Histopathological Image) 包括82個病人,一共7909張乳腺癌病理圖片。數(shù)據(jù)集包含了四種放大倍數(shù)(40x,100x,? 200x, 400x)的顯微圖片,分為良性腫瘤,惡性腫瘤兩個大類。
4.2 實驗流程
本文主要以ResNet50 和 MoCo作為基線模型和提出的自監(jiān)督聚類模型MoCo + simLoss 作為對比。本文實驗基于Python3.7環(huán)境和PyTorch1.0框架,使用2塊NVIDIA GEFORCE 2080Ti GPU進行訓練和測試。所有實驗的輸入圖像長寬固定為224,batchsize 設置為64,訓練50 epoch,采用分類準確率來衡量算法的效果,數(shù)據(jù)增強方面則使用了隨機水平翻轉,隨機 HSV 變化,隨機縮放和隨機剪切。優(yōu)化算法采用動量為 0.9 隨機梯度下降(SGD)。
4.3 實驗結果
實驗結果表1表明,基于MoCo的自監(jiān)督網(wǎng)絡模型比ResNet50預訓練模型有很大的性能提升,說明自監(jiān)督在醫(yī)學圖像特征提取任務上的有效性并且加入自監(jiān)督聚類simLoss模塊能有效提升模型的性能;表2 驗證了標簽傳播算法的有效性,實驗結果表明標簽傳播算法比基于歐式距離的ProtoNet 和基于余弦距離的MatchingNet效果要好很多。
最后與傳統(tǒng)分類算法相比,實驗結果表3表明模型在 5-shot 以及 10-shot 的情況下已經(jīng)比傳統(tǒng)算法有更好的分類效果, 并且隨著每個類別的有標簽樣本的增多,模型分類效果越來越好。
5 總結
本文提出了基于自監(jiān)督聚類算法的醫(yī)學圖像分類模型,通過對比和消融實驗證明了本文提出的方法在小樣本情況下的醫(yī)學圖像分類問題上比傳統(tǒng)的機器學習算法和全監(jiān)督算法具有更好的效果。
參考文獻:
[1] He K, Fan H, Wu Y, et al. Momentum contrast for unsupervised visual representation learning[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 9729-9738.
[2] Chen T, Kornblith S, Norouzi M, et al. A simple framework for contrastive learning of visual representations[C]//International conference on machine learning. PMLR, 2020:1597-1607.
[3] Azizi S, Mustafa B, Ryan F, et al. Big self-supervised models advance medical image classification[J]. arXiv preprint arXiv:2101.05224, 2021.
[4] Min E X,Guo X F,Liu Q,et al.A survey of clustering with deep learning:from the perspective of network architecture[J].IEEE Access,2018,6:39501-39514.
[5] Zhu X.Learning from Labeled and Unlabeled Data with Label Propagation[J]. Tech Report, 2002.
[6] Vinyals O, Blundell C, Lillicrap T, et al. Matching networks for one shot learning[J]. Advances in neural information processing systems, 2016,29: 3630-3638.
[7] Snell J, Swersky K, Zemel R S. Prototypical networks for few-shot learning[J]. arXiv preprint arXiv:1703.05175, 2017.
【通聯(lián)編輯:梁書】