首頁 >科技週邊 >人工智慧 >視網膜影像分類的深度集成學習演算法

視網膜影像分類的深度集成學習演算法

王林
王林轉載
2023-04-12 10:37:09968瀏覽

譯者 | 朱先忠

審校| 孫淑娟

視網膜影像分類的深度集成學習演算法

圖1 :原作者自己設計的Iluminado計畫的封面

2019年世界衛生組織估計,全球共有約22億視力障礙者,其中至少有10億人本來可以預防或仍在治療。就眼部護理領域而言,全世界面臨許多挑戰,包括預防、治療和復健服務的覆蓋範圍和品質不平等。缺乏訓練有素的眼部護理人員,眼部護理服務與主要衛生系統的整合也很差。我的目標是激發人們的行動來共同應對這些挑戰。本文中展示的項目是我目前正在進行的數據科學頂峰項目Iluminado的一部分。

Capstone專案的設計目標

我創建本文專案的目的是想訓練一個深度學習整合模型,最終實現該模型對於低收入家庭來說非常容易獲得,並且可以以低成本執行初始疾病風險診斷。透過使用我的模型程序,眼科醫生就可以根據視網膜眼底攝影確定是否需要立即進行幹預。

專案資料集來源

OphthAI提供了一個名為視網膜眼底多疾病影像資料集(Retinal Fundus Multi-Disease Image Dataset,簡稱「RFMiD」)的公共可用影像資料集,該資料集包含3200張眼底影像,這些影像由三台不同的眼底相機拍攝,並由兩名資深視網膜專家根據已裁決的共識進行註釋。

這些影像是從2009-2010年期間進行的數千次檢查中提取的,既選擇了一些高品質的影像也包含不少低品質的影像,從而使數據集更具挑戰性。

資料集共分為三個部分,包括訓練集(60%或1920張影像)、評估集(20%或640張影像)和測試集(20%和640張)。平均而言,訓練集、評估集和測試集中的患有疾病的比例分別為60±7%、20±7%和20±5%。此資料集的基本目的是解決日常臨床實踐中出現的各種眼部疾病,共確定了45類疾病/病理。這些標籤可以分別在三個CSV檔案中找到,它們是RFMiD_Training_Labels.CSV、RFMiD_Validation_Labels.SSV和RFMiD_Testing_Labels.CSV。

影像來源

下面這張圖是用一種被稱為眼底照相機的工具拍攝的。眼底照相機是一種專門的低倍顯微鏡,連接在一台閃光相機上,用來拍攝眼底,也就是眼睛後方的視網膜層。

現在,大多數眼底相機都是手持式的,因此患者只需直視鏡頭。其中,明亮的閃光部分錶示已拍攝眼底圖。

手持攝影機是有其優點的,因為它們可以被攜帶到不同的位置,並且可以容納有特殊需求的患者,例如輪椅使用者。此外,任何接受過所需培訓的員工都可以操作攝像頭,從而能夠使服務水平低下的的糖尿病患者可以快速、安全、高效地進行年度檢查。

眼底視網膜影像系統拍照狀況:

視網膜影像分類的深度集成學習演算法

圖2:基於各自視覺特徵拍攝的影像:(a)糖尿病視網膜病變(DR)、(b)老年黃斑部病變(ARMD)及(c)中度霾(MH)。

最終診斷在哪裡進行?

最初的篩檢過程可以透過深度學習來輔助,但最終診斷由眼科醫師使用裂隙燈檢查進行。

這個過程也被稱為生物顯微鏡診斷,它涉及對活細胞的檢查。醫生可以進行顯微鏡檢查,以確定病人的眼睛是否有任何異常。

視網膜影像分類的深度集成學習演算法

#

圖3:裂隙燈檢查圖示

#深度學習在視網膜影像分類中的應用

與傳統的機器學習演算法不同,深度卷積神經網路(CNN)可以使用多層模型的方法來實現從原始資料中自動提取和分類特徵。

最近,學術界發表了大量文章,都是有關使用卷積神經網路(CNN)來識別各種眼部疾病的,如糖尿病視網膜病變和結果異常(AUROC >0.9)的青光眼等。

資料指標

AUROC分數將ROC曲線匯總為一個數字,該數字描述了模型在同時處理多個閾值時的表現。值得注意的是,AUROC分數為1代表是一個完美的分數,而AUROC得分為0.5對應於隨機猜測。

視網膜影像分類的深度集成學習演算法

圖4:ROC曲線示意圖展示

所用方法-交叉熵損失函數

交叉熵通常在機器學習中用作損失函數。交叉熵是資訊理論領域的一種度量,它建立在熵定義的基礎上,通常用於計算兩個機率分佈之間的差異,而交叉熵可以被認為是計算兩個分佈之間的總熵。

交叉熵也與邏輯損失有關,稱為對數損失。儘管這兩種度量方法來自不同的來源,但當用作分類模型的損失函數時,這兩種方法計算的數量相同,可以互換使用。

(有關具體詳情,請參考:https://machinelearningmastery.com/logistic-regression-with-maximum-likelihood-estimation/)

什麼是交叉熵?

交叉熵是給定隨機變數或事件集的兩個機率分佈之間差異的量測。您可能還記得,資訊量化了編碼和傳輸事件所需的位數。低機率事件往往包含更多的信息,而高機率事件則包含較少的信息。

在資訊理論中,我們喜歡描述事件的「驚訝」。事件發生的可能性越小,就越令人驚訝,這意味著它包含了更多的資訊。

  • 低機率事件(令人驚訝):更多資訊。
  • 高機率事件(不足為奇):資訊較少。

在給定事件P(x)的機率的情況下,就可以為事件x計算資訊h(x),如下所示:

#
h(x) = -log(P(x))

視網膜影像分類的深度集成學習演算法

圖4:完美的插圖(圖片來源:Vlastimil Martinek)

熵是從機率分佈傳輸隨機選擇的事件所需的位元數。偏態分佈具有較低的熵,而事件具有相等機率的分佈一般具有較大的熵。

視網膜影像分類的深度集成學習演算法

圖5:目標與預測機率之比的完美說明(圖片來源:Vlastimil Martinek)

偏態機率分佈具有較少的“意外”,反過來也具有較低的熵,因為可能的事件占主導地位。相對來說,平衡分佈更令人驚訝,而且熵更高,因為事件發生的可能性相同。

  • 偏態機率分佈(不足為奇):低熵。
  • 平衡機率分佈(令人驚訝):高熵。

熵H(x)可以針對具有x個離散狀態中的一組x的隨機變數及其機率P(x)計算,如下圖所示:

視網膜影像分類的深度集成學習演算法

圖6:多層交叉熵公式(圖片來源:Vlastimil Martinek)

多重類別分類-我們使用多分類交叉熵-屬於交叉熵的具體應用情形,其中的目標採用的是單熱編碼向量方案。 (有興趣的讀者可參考Vlastimil Martinek的文章)

視網膜影像分類的深度集成學習演算法

#圖7:熊貓與貓損失計算的完美分解圖(圖片來源:Vlastimil Martinek)

視網膜影像分類的深度集成學習演算法

#圖8:損失值的完美分解圖1(圖片來源:Vlastimil Martinek)

視網膜影像分類的深度集成學習演算法

圖9:損失值的完美分解圖2(圖片來源:Vlastimil Martinek)

視網膜影像分類的深度集成學習演算法

##圖9:關於機率和損失的視覺化展示(圖片來源:Vlastimil Martinek)

#二元交叉熵怎麼樣?

視網膜影像分類的深度集成學習演算法

圖10:分類交叉熵公式圖解(圖片來源:Vlastimil Martinek)

在我們的專案中選擇使用了二元分類-二元交叉熵方案,即目標為0或1的交叉熵方案。如果我們將目標分別轉換為[0,1]或[1,0]的熱編碼向量方式並進行預測,那麼我們就可以使用交叉熵公式來計算。

視網膜影像分類的深度集成學習演算法

圖11:二元交叉熵計算公式圖解(圖片來源:Vlastimil Martinek)

使用非對稱損失演算法處理不平衡資料

在一個典型的多標籤模型環境中,資料集的特徵可能存在不成比例數量的正標籤和負標籤的情況。此時,資料集傾向於負標籤的這種趨勢對於優化過程具有主導性影響,並最終導致正標籤的梯度強調不足,從而降低預測結果的準確性。

這也正是我目前選用的資料集所面臨的情況。

本文專案中採用了BenBaruch等人所發展的非對稱損失演算法(參考圖12),這是一種解決多標籤分類的方法,不過其中的類別也存在嚴重不平衡分佈情形。

我想到的辦法是:透過不對稱地修改交叉熵中的正負分量,從而減少負標籤部分的權重,最終實現突出上述處理起來較為困難的正標籤部分的權重。

視網膜影像分類的深度集成學習演算法

圖12:非對稱多標籤分類演算法(2020,作者:Ben-Baruch等)

待測試的體系架構

總體歸納一下,本文專案使用如圖所示的體系架構:

視網膜影像分類的深度集成學習演算法

圖13(圖片來源:Sixu)#

上述架構所採用的關鍵演算法主要包括:

  • #DenseNet-121
  • InceptionV3
  • Xception
  • MobileNetV2
  • VGG16

另外,上述有關演算法相關內容一定會在我完成本文Capstone專案後加以更新!有興趣的讀者敬請期待!

譯者介紹

朱先忠,51CTO社群編輯,51CTO專家部落格、講師,濰坊一所高校電腦教師,自由程式界老兵一枚。

原文標題:#Deep Ensemble Learning for Retinal Image Classification (CNN),作者:Cathy Kam

以上是視網膜影像分類的深度集成學習演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除