任福龍,曹 鵬,萬 超,趙大哲
(1.東北大學 計算機科學與工程學院,沈陽 110089; 2.東北大學 軟件架構國家重點實驗室,沈陽 110179;3.中國醫科大學附屬第一醫院 眼科,沈陽 110001)(*通信作者電子郵箱hundred2005@126.com)
近年來糖尿病已發展成為世界流行的重大疾病,而糖尿病視網膜病變(Diabetic Retinopathy, DR)(簡稱糖網)是糖尿病最為嚴重的并發癥之一。糖網以其發病早、發病率高、波及廣,已成為西方國家成年人致盲的首位原因[1]。目前我國約有1億人正受到糖尿病的威脅,由糖尿病引起的視力下降和失明的發病率正與日俱增。臨床上,糖網的早期病變可通過眼底圖像中視網膜病變的醫學征兆進行檢測,而對于糖尿病患者而言,盡早的診斷和治療是控制糖網病情發展的關鍵,因此,利用眼底圖像進行及早的、定期的糖網篩查是防治糖網病變的唯一有效手段。
糖尿病患者由于長期的血糖過高,導致視網膜毛細血管形狀和結構發生改變,毛細血管壁因受損造成膨出從而形成微動脈瘤(MicroAneurysms, MAs)。MAs作為糖網最早期的病變表現,在眼底圖像中表現為紅色小圓點,直徑在10~100 μm,也是眼底圖像上能觀測到的最小病變。而之后下一個呈現的病變是出血斑(Hemorrhages, HEMs)。HEMs是脆弱的毛細血管破裂所致,在眼底表現為灰度不均勻、大小不一的紅或暗紅色區域,其直徑一般大于125 μm[2],這也是與MAs的主要區分特征。MAs和HEMs統稱為紅色病灶[3],圖1顯示一幅標記眼底結構和紅色病灶的圖像實例。在糖網的臨床分級標準中,紅色病灶作為糖網早期的病灶,它們的出現與否以及數目決定了疾病的嚴重級別,因此,糖網分級的準確性主要依賴于紅色病灶檢測的精度。近年來,針對糖網的自動分級診斷,國內外許多學者進行了研究并提出相關算法[3-6]。盡管達到了較高的敏感性,但由于病灶在眼底圖像上呈現的尺寸差異、對比度差以及部分組織(如血管片段等)在顏色特征和形狀特征方面與紅色病灶很相似,而易被誤解為病變區域等因素,造成病變的檢測中不可避免地產生了大量的假陽性,如何降低假陽性一直是病變檢測中的難點。在解決糖網檢測假陽性過多的過程中,有兩個關鍵問題亟待解決。
1)標注信息不完備。
假陽性去除的通常方法是利用有標記的樣本構建監督學習的分類模型,來有效區分真假陽性;但現有的糖網公開數據集存在標注信息不完備的問題。如DIARETDB1(http://www.it.lut.fi/project/imageret/diaretdb1)數據集只有病灶標注卻缺失糖網分級信息,而MESSIDOR(http://messidor.crihan.fr/index-en.php)數據集只提供了糖網分級信息,并沒有提供病灶的標注。由于不同的數據集采集方式、采集來源等因素差異,如果利用其他有病灶標注的數據集構建監督性的分類模型,對MESSIDOR數據集產生的疑似病灶區域進行分類,將會面臨不同數據集的數據分布不一致的問題,很難達到很高的準確率。
2)類別分布不均衡。
初始檢測產生的疑似病灶區域的正負類別的樣本數量存在差異,又會面臨不均衡數據的分類問題[7],造成分類模型傾向于多數類別的預測而忽略少數類別,最終也會影響分類器的分類性能。
半監督學習[8-9]允許訓練集和目標集的樣本之間存在差異,能夠利用訓練數據中有類別標記的樣本和無類別標記的樣本進行訓練,有效地預測訓練數據中無類別標記樣本的類標記;而基于代價敏感的分類模型是解決不平衡數據分類問題的一種有效手段,它在分類時為不同類別的錯誤分配不同的代價,使高代價錯誤產生的數量和錯誤分類的代價總和最小[10]。此外,單一分類模型很難實現在整個樣本空間上的準確分類,研究表明半監督集成學習充分利用了集成學習的優勢,能明顯改進單一分類器的性能,讓每一個分類模型都在其優勢空間區域內發揮作用,提高模型的準確性[11-13]。綜合以上思路,本文將半監督學習技術與代價敏感的方法相結合,并引入到集成學習的Bagging框架中以提高算法的泛化能力和精準性,最終構建基于代價敏感的半監督Bagging(Cost-Sensitive based Semi-supervised Bagging, CS-SemiBagging)模型。通過對MESSIDOR數據集提供的1 200幅眼底圖像進行糖網分級評估,獲得準確率為90.2%,敏感性為87.4%,特異性為96.7%,F1-score為0.873的結果。結果表明了本文提出的方法在糖網分級中的有效性。
在樣本類別分布不平衡的環境下,本文研究的基于代價敏感的半監督Bagging模型的構建流程如圖2所示。整個流程主要包括3個階段:1)建立基于代價敏感的支持向量機模型作為基分類器;2)利用半監督技術預測無標記樣本的偽類別標記,并基于高置信度的策略進行采樣;3)以Bagging方式構建多個不同的訓練樣本集,分別在其上訓練多個基分類器,將各基分類器集成為強分類器,并通過投票方式得到最終的分類結果。

圖2 CS-SemiBagging模型的構建流程
近年來,由類別分布不均衡數據的分類而引發的不平衡學習問題已成為了機器學習領域中的一個重要研究內容。本文采用基于代價敏感的支持向量機(Cost Sensitive Support Vector Machine, CS-SVM)作為集成學習中的基分類器。支持向量機是機器學習領域中解決非線性分類問題的一種有效手段,其目標函數為:
(1)
s.t.yi[(wTxi)+b]≥1-ξi;i=1,2,…,N,ξi≥0
其中:ξi為松弛因子,懲罰系數C>0。傳統SVM是基于所有類被錯分的代價相等。為了提高不均衡數據下分類器的性能,采用不同的懲罰參數C+和C-代替原來的參數C,使得分類時針對不同的類別采用不同的錯分代價以提高少數類別的識別能力,則式(1)可轉化為:
(2)
s.t.yi[(wTxi)+b]≥1-ξi,i=1,2,…,N,ξi≥0
其中:C+為正類誤分的代價,C-為負類誤分的代價。重新設置參數C+和C-,令C-=C,C+=C×Cf,其中,C為SVM的懲罰參數,Cf為錯分代價因子,則式(2)變為:
(3)
s.t.yi[(wTxi)+b]≥1-ξi;i=1,2,…,N,ξi≥0
通過求其對偶問題:
(4)

(5)
其中k(xi,x)=exp(γ‖xi-xj‖2)作為高斯核函數,γ為核參數。
半監督學習能夠在保持數據樣本分布的情況下對未標記樣本進行標記。在半監督學習中,給無標注樣本分類常常遵循兩個準則:1)無標記樣本的類別一定與其相似度高的標記樣本的類別一致;2)相似度高的無標記樣本一定屬于相同的類別[12]?;谶@兩個準則,本文在給無標記樣本分類時,通過準則1)在樣本空間與其最相似的K個有標記樣本,以及準則2)在決策空間與其最相似的K個無標記樣本的分類一致性來決定無標記樣本的偽類別標記。通過衡量無標記樣本與有標記樣本的相似度來判斷無標記樣本的類別標記,同時計算無標記樣本的置信度,選取高置信度的無標記樣本,可避免或減緩在半監督學習中錯誤地標記樣本對分類器分類性能的影響。


(6)

(7)

Bagging方法是一種通過組合隨機生成的訓練集而改進分類的集成算法,它通過隨機采樣方式抽取訓練子集,從而構造多個基分類器,最終組合生成強分類器。Bagging作為一種集成學習方法,要求各基分類器之間盡可能相互獨立,并且各基分類器之間盡可能有較大的差異[14],因此,本文通過變化訓練集中有標記樣本數量來增加基分類器間的差異,即在不同采樣率lp下對有標記樣本進行bootstrap采樣,并與訓練集中的無標記樣本一起進行半監督訓練,將訓練得到的多個基分類器組合為強分類器,并使用多數投票法得到最終的分類結果。
本文CS-SemiBagging算法流程描述如下。
1)樣本的采樣率LP={lp1,lp2,…,lpM},近鄰參數K,U中被采樣加入到標記樣本集的樣本占U中全部樣本的比率Tup,其可作為半監督學習收斂的條件。


4)form=1,2,…,M

②Repeat



表1 MESSIDOR的糖網分級標準
為了驗證本文方法在眼底圖像上糖網分級的效果,本文選用兩個國際公開的數據集:DIARETDB1和MESSIDOR數據集。DIARETDB1數據集包含了89幅分辨率為1 500×1 152的眼底圖像,每幅圖像都提供了糖網的病灶標注(包括微動脈瘤、出血斑、棉絮斑和硬性滲出),這個數據集主要作為紅色病灶分類實驗中有標記樣本的來源;而MESSIDOR數據集用于糖網分級結果的驗證,它提供了糖網分級標準(分為4級,如表1所示),包含了分辨率分別為1 400×960、2 240×1 488和2 304×1 536的1 200幅眼底圖像。其中:0級的圖像有547幅,1級圖像有153幅,2級圖像有246幅,3級圖像有254幅。為了評估算法的性能,本文采用了準確率(Accuracy)、敏感性(Sensitivity)、特異性(Specificity)以及F1分數(F1-score)4種評價指標,并采用10倍交叉驗證進行評估。評價指標通過真陽(True Positive, TP)、假陽(False Positive, FP)、真陰(True Negative, TN)、假陰(False Negative, FN)、精度(Precision, P)和召回率(Recall, R)進行計算,具體定義如下:
Sensitivity=TP/(TP+FN)
Specificity=TN/(TN+FP)
Accuracy=(TP+TN)/(TP+FP+TN+FN)
F1-score=2*P*R/(P+R)
P=TP/(TP+FP)
R=TP/(TP+FN)
如果疑似病灶區域50%以上的像素落在參考標準的區域內,則被認為真陽。在CS-SemiBagging模型中懲罰參數C設為10,代價因子Cf設為正負樣本的數量比例,核函數中的γ設為1,有標記樣本的采樣率LP={30%,40%,50%,60%,70%,80%,90%,100%},而近鄰參數K和無標記樣本采樣率Tup均采用內部交叉驗證得到其最優值作為最終參數值。

表2 特征列表
圖3為在DIARETDB1數據集上進行紅色病灶檢測的例子,圖中的白色圓圈表示病灶的參考標準。由于紅色病灶和血管在綠色通道圖像中具有較好的對比度,所以將原始灰度圖像(如圖3(a))轉換為綠色通道的灰度圖像(如圖3(b))?;诰G色通道的灰度圖像,采用之前工作中的圖像處理方法[7],包括Top-hat變換方法、高斯濾波、區域生長等一系列操作,獲得主要的血管分割結果(如圖3(c))和疑似病灶區域(如圖3(d))。
為了獲得具有足夠區分度的特征來描述疑似病灶區域,本文從顏色、形狀和紋理方面對每個疑似病灶的感興趣區域(Region Of Interest, ROI)提取多維(22維)特征(如表2所示)。由于微動脈瘤和出血斑等紅色病灶在眼底圖像上表現為紅色或暗紅色,其在綠色通道圖像上具有更高的亮度值和對比度,并且由于LAB色彩空間的亮度信息分離度高于其他色彩空間,LAB色彩空間的A通道表示從紅色到綠色的信息范圍,其上紅色的病灶也體現了較高的亮度值,所以特征f1到f12分別從RGB、綠色通道和LAB的A通道圖像上提取ROI的顏色特征,以增加紅色病灶的區分度。特征f13到f17體現了微動脈瘤的形狀信息,真正的微動脈瘤的形狀上近似圓形,其外接矩形的長軸和短軸更加接近,并具有更高的緊湊度,此外,微動脈瘤的直徑在100 μm左右,而出血斑的直徑要大于125 μm,因此,ROI的面積特征能夠更好地區分微動脈瘤與出血斑。特征f18到f22描述紅色病灶的紋理信息,眼底圖像上暗色的紅色病灶區域一般具有相對明顯的邊界,其邊界上具有較高的梯度值,并且區域內部具有較小的灰度變化,其外接矩形內具有較低的熵值。

圖3 紅色病灶的檢測
在對每個疑似病灶區域提取底層視覺特征后,構建本文提出的CS-SemiBagging模型,并訓練優化模型進行病灶的分類,在具體的MAs與HEMs的分類上,本文采用了兩階段二分類的策略(如圖4所示),在第一階段中將疑似病灶區域分類為紅色病灶與非病灶區域,以去除假陽性,第二階段中將紅色病灶分類為MAs與HEMs,圖3(e)和圖3(f)分別為MAs與HEMs的檢測結果。最終依據MAs與HEMs的數目并參照糖網分級的標準(如表1)進行糖網分級。
在CS-SemiBagging模型中,需要對近鄰參數K和無標記樣本采樣率Tup進行參數調優和有效性驗證。
2.4.1 近鄰參數K對性能的影響
參數K表示在模型的每一次半監督學習的迭代過程中,計算每個無標記樣本的相似度矩陣時選取的近鄰數。本文分別令K=5,10,15,20,25,并暫時令Tup=50%,K值的選擇與糖網分級的性能之間的關系如圖5所示。實驗表明:隨著K值的增加,模型的分類性能會先提升再下降,最后趨于平穩。這是因為K值的增加使選取的無標記樣本的近鄰樣本數增多,則根據樣本的置信度和偽類別標注的計算公式,樣本置信度的可信度得到提升的同時,樣本被錯誤標記的可能性也逐漸減小,因此,模型的分類性能會升高。由于近鄰樣本數的增加也會引入噪聲數據,當噪聲數據達到一定量時,導致了樣本的偽類別標注的準確度和置信度的可信度下降,進而降低了模型的分類性能。另外,由于實驗中無標記樣本采樣率Tup不變,即引入訓練中的無標記樣本的數量一定,所以當K值達到一定數值后,模型的性能不會再有大的變化。實驗中K值在10時獲得最優的結果。

圖4 微動脈瘤與出血斑的分類
2.4.2 參數Tup對性能的影響
參數Tup表示訓練集的U中被采樣加入到標記樣本集的樣本占U中全部樣本的比率,其也是半監督迭代訓練中模型的收斂條件。本文實驗中分別令Tup=30%,40%,50%,60%,70%,80%,90%,同時設置K值為10。實驗結果如圖6所示。實驗表明:Tup值的增加,即目標數據集中參與模型訓練的樣本數目的增加,也就會相應地提升目標數據集的分類性能,但由于不同數據集之間的差異,當被采樣的無標記樣本的總數目增加到一定量后,樣本的偽類別被錯誤標注的可能性將增加,同時樣本置信度的可信度也會下降,也就導致了模型的分類性能的下降。實驗中Tup值在70%時獲得最優的性能。

圖5 不同K值下CS-SemiBagging算法的性能

圖6 不同Tup值下CS-SemiBagging算法的性能
2.4.3 分類結果
圖7顯示了在患有糖網的眼底圖像上病灶(微動脈瘤和出血斑的)的檢測結果,其中白色圓圈標記了檢測到的微動脈瘤的位置,白色矩形標記了檢測到的出血斑的位置。從檢測結果中可以觀察到一些比較小的和鄰近血管的病灶都得到了很好的識別。在MESSIDOR數據集的1 200幅圖像上得到的糖網分級的詳細結果如表3所示。結果顯示雖然糖網0級的圖像所占總圖像數目的比例較高,但由于引入代價敏感的方法,使得實驗結果沒有嚴重地向糖網0級進行傾向。

圖7 糖網圖像上紅色病灶的檢測結果

Tab. 3 Results of DR grading on MESSIDOR dataset
為了比較本文的CS-SemiBagging方法與其他方法的性能,分別選擇了監督學習中的SVM和CS-SVM方法,以及半監督學習中的Self-training和Co-training方法進行測試,其中兩個半監督方法的基分類器均采用CS-SVM,其相關參數設置與CS-SemiBagging模型中的設置相同。此外,測試中也選擇了基于Radon變換的圖像分類方法[3]與本文方法進行比較,通過Radon變換可以計算圖像在某個角度下徑向線方向的投影,進而利用Radon變換數據標準差的差異來區分圖像上的線狀目標(血管片段)和點塊狀目標(微動脈瘤或出血斑)。各方法性能比較的結果如表4所示,從表4中可以看出基于機器學習的方法要好于Radon變換的圖像分類方法,這是由于紅色病灶在顏色、形狀、對比度等方面的多樣性決定了基于多特征描述的機器學習方法要比依賴于單一形狀特征描述的Radon變換方法更適合病灶假陽性的去除,如Radon變換方法對于形狀不一的出血斑病灶不能達到完全有效的識別,此外,Radon變換數據標準差的閾值決定了此方法的分類精度,而不同數據集間的差異嚴重影響了此閾值選擇的有效性,導致了此方法的性能不高。實驗結果中CS-SVM的性能要好于SVM的性能,這是考慮了不均衡數據的分類問題的結果。另外,半監督學習方法的性能要好于監督學習的方法,這是由于半監督學習能夠很好地解決不同數據集的數據分布不一致的問題,從而提高目標數據集分類性能的緣故。從結果中也可以看出CS-SemiBagging方法的性能要優于其他方法,這主要由于此方法除了考慮以上提到的兩個問題之外,還采用了多分類器集成學習思想的緣故,實驗結果也表明了本文提出的方法在糖網分級中的有效性和一定的優勢。

表4 不同糖網分級方法的比較
本文在糖網的分級診斷應用中提出了基于代價敏感的半監督集成學習的算法,將半監督學習技術與代價敏感的SVM方法相結合,并融入到集成學習的Bagging框架中,提升了分類的泛化能力和精準性,進而有效地實現對眼底圖像的糖網分級診斷。該算法一方面考慮了糖網病灶樣本的類別分布不平衡對分類性能的影響;另一方面在半監督技術上采用K近鄰樣本的一致性對無標記樣本進行偽類別標簽的標注和置信度計算,從而大幅度降低了無標記樣本采樣過程中引入噪聲的可能性。實驗結果表明本文提出的方法能夠很好地解決醫學圖像分類中病灶沒有標注的問題和假陽性去除中存在的不均衡數據分類問題,同時獲得了更好的結果。本文工作只是進行糖網病變程度的分級診斷,未來在本文研究的基礎上,如何利用半監督集成學習的方法進行其他眼底疾病如糖網黃斑水腫的風險分級等,將是今后的研究重點。