如何評估AI在醫學影像識別中的應用效果?

基於人工智能(AI)技術的醫學影像識別越來越受到社會各界的重視。而人工智能技術的進步,往往被歸納爲幾個性能指標,這樣一來,AI技術的性能指標自然也就成爲大家談論和關注的焦點之一。實踐中存在多種衡量AI算法性能的指標,本文嘗試解釋其中常見的幾種指標的含義,以及它們在不同場景下的適用性和侷限性,希望能夠幫助大家更好地理解指標背後AI技術的進展。

醫療影像識別中有哪些常用指標?

爲簡化討論,本文均以“二分類問題”爲例,即對影像判斷的結果只有兩種:要麼是陽性(positive),要麼是陰性(negative)。這樣的簡化也符合大部分醫學影像識別問題的實際情況。

二分類問題,如果不能被AI模型完美解決,那麼模型預測結果的錯誤大概有兩類:一類是把陰性誤報爲陽性(把沒病說成了有病),另一類是把該報告的陽性漏掉(即把有病看成了沒病)。優化模型的過程,是同時減少這兩類錯誤的過程,至少是在兩類錯誤之間進行適當折中的過程。不顧一類錯誤,而單純減少另一類錯誤,一般是沒有意義的。比如,我們爲了不犯“漏”的錯誤,最簡單的辦法就是把所有的圖像都報告稱陽性(有病)。

1. 常用術語解釋

在二分類的條件下,AI的預測結果存在下列4種情形:

  • 真陽性(True Positive,TP):預測爲陽性,實際爲陽性;

  • 真陰性(True Negative,TN):預測爲陰性,實際爲陰性;

  • 假陽性(False Positive,FP):預測爲陽性,實際爲陰性;

  • 假陰性(False Negative,FN):預測爲陰性,實際爲陽性。

其中,FP也稱爲誤報(False alarm),FN也稱爲漏報(miss detection)。

上文4種名稱中的“真”(True)和“假”(False)表示預測結果是否正確。名稱中的“陽性”(Positive)和“陰性”(Negative)表示預測結果。例如,對於一個特定的測試樣本,真陽性的含義爲“AI預測正確,且AI預測結果爲陽性”,那麼就可以推斷到:預測爲陽性,實際結果爲陽性。假陰性的含義爲“AI錯判爲陰性”,那麼就可以推斷到:預測爲陰性,實際結果爲陽性。

通常我們會用一個矩陣來展示預測結果和實際情況的差異,稱爲混淆矩陣 (confusion matrix)。二分類的混淆矩陣爲2x2的,見表1。爲表述方便起見,接下來我們就以TP代指真陽性的數量,TN代指真陰性的數量,FP代指假陽性的數量,FN代指假陰性的數量。

image

2. 可以由混淆矩陣得到的指標

image

表2中涉及到的指標,取值範圍均是0至1。由於上述兩類錯誤的存在,通常這些指標需要成對地報告,成對地去考察。

例如,如果我們只關心AI模型的靈敏度(Sensitivity),那麼我們就只需要把所有的樣本預測爲陽性,那麼Sensitivity就等於1。顯然,這不是一個好的模型,因爲它會將陰性樣本誤報爲陽性,使得它的特異度(Specificity)爲0。因此,需要同時報告Sensitivity和Specificity。

精確率(Precision)和召回率(Recall)、真陽性率(TPR)和假陽性率(FPR)也存在類似的此消彼長的關係,我們不再對這些指標單獨討論。準確率(Accuracy)通常也會和其它指標一起報告,我們會在下文各指標使用場景具體講到。

當同時報告兩個指標(例如Sensitivity和Specificity)時,我們通常還會報告二者的“平均值”,使得模型的指標歸爲一個點,以便比較兩個模型的好壞。這裏我們通常使用二者的調和平均數,稱爲F1-measure。選調和平均數的原因是調和平均數相比於算數平均數和幾何平均數,更加偏向小的那個數。給定兩個指標,它們的各種平均數之間存在如下關係:

調和平均數 ≤ 幾何平均數 ≤ 算數平均數

當且僅當兩個指標相等時,上述等式成立。這就要求我們找到這樣一個模型,使得兩個指標儘量均衡。

3. 不能由混淆矩陣得到的指標

一個AI模型通常不是直接得到陽性或者陰性的結果的。它輸出的是陽性(或者陰性)的得分(也可被稱爲陽性的“概率”或者“置信度”,儘管它實際上和概率或者置信度並無關係)。通常是得分越大,表明模型越肯定這是一個陽性病例。爲了把得分轉化爲陽性-陰性的二分類,我們會認爲設置一個決策閾值(decision threshold)。當模型關於某個樣本的陽性得分大於該閾值時,該樣本被預測爲陽性,反之則爲陰性。

例如,當閾值設爲0.5時,模型輸出的樣本1的得分爲0.7,則樣本1被預測爲陽性。模型輸出的樣本2的得分爲0.1,則樣本2會被預測爲陰性。上述二分類的過程實質上就是將模型給出的連續得分量化爲陽性、陰性這兩個離散值之一。閾值一旦確定,就可以計算相應的混淆矩陣。

因此,上一節講到的所有指標,都是可能隨着閾值變動而改變的。例如,將閾值由0.5提高到0.6時,預測爲陽性的樣本有很大可能會減少,由此導致誤報減少而漏報增多,相應的指標也隨之變動,具體表現爲Sensitivity下降而Specificity提升。

爲方便起見,我們假設所有的得分均在0和1之間。

(1)ROC曲線和AUC

隨着閾值的降低,預測的陽性病例增加,預測的陰性病例減少,即TPR上升,FPR上升,以TPR爲縱座標,FPR爲橫座標畫出ROC曲線,如圖1所示。可以看出,ROC曲線是TPR關於FPR的不減函數。

image

回顧表1,可知TPR就是Sensitivity,而 FPR等於1-Specificity。因此,也可以認爲ROC曲線的橫座標是1-Specificity,縱座標是Sensitivity。

ROC曲線起始點對應的閾值爲1,即將所有樣本均預測爲陰性,此時陽性樣本全被誤報爲陰性(TP=0),而陰性樣本沒有被誤報(FP=0),因此有TPR=FPR=0。ROC曲線終點對應的閾值爲0,即所有樣本均預測爲陽性,此時TPR=FPR=1。

當模型1的ROC曲線被算法2的ROC曲線嚴格包圍時,意味着在相同的FPR(或Specificity)要求下,模型2的TPR(或Sensitivity)更高,可以認爲模型2優於模型1,如圖1中的模型1就優於隨機預測。

當不存在某條ROC曲線被另一條完全包圍時,如圖1中模型1和模型2的所示,我們通常使用ROC曲線下的面積作爲度量指標,稱之爲AUC。

(2)Precision-Recall曲線(P-R曲線)和Average Precision(AP)

除了ROC曲線,另一種常用的是Precision-Recall曲線,簡稱P-R曲線。隨着閾值的降低,預測的陽性病例增加,預測的陰性病例減少。模型將更多的它認爲“不那麼確定是陽性” 的樣本判斷爲陽性,通常 Precision 會降低。並且 Recall 不減。以Precision爲縱座標,Recall爲橫座標畫出P-R曲線,如圖2。

image

P-R曲線起點對應的閾值爲所有預測樣本得分的最大值,即只將模型認爲最有可能是陽性的那一個測試樣本預測爲陽性,其餘全預測爲陰性,如果這一個陽性預測正確,那麼Precision=1,Recall=1/所有陽性病例數,否則Precision=Recall=0。P-R曲線終點對應的閾值是0,即將所有樣本預測爲陽性,此時Precision=所有陽性病例數/總病例數,Recall=1。同樣我們使用P-R曲線下的面積作爲度量指標,稱爲AP。

AP和AUC與具體的閾值無關,可以認爲是對模型性能的一個總體估計,因此通常作爲更普適的指標來衡量模型的好壞。

不同指標在實際場景下的應用

我們用一個簡單的圖來幫助理解,如圖3,紅色代表陽性,綠色代表陰性,小人頭的顏色代表實際類別,手中拿的診斷顏色代表模型預測的類別。

image

1. 理想的AI模型

所有的陽性都被預測爲陽性,所有的陰性都被預測爲陰性。如圖4。

image

在這種情形下,Sensitive=Specificity=Precision=Recall=1。

2. 實際的AI模型

image

實際中,模型不可能做到完全正確。第一種情況,如圖5。圖5(a)中5個陽性中有4個被正確預測爲陽性,Sensitive=4/5=0.8。圖5(b)中5個陰性中有4個被正確預測爲陰性, Specificity=4/5=0.8。一共5個病例被預測爲陽性(藍框),其中4個正確,Precision=4/5=0.8。

第二種情況,如圖6所示,相對於第一種情況,我們將陰性的樣本量增加兩倍,Sensitive和Specificity不變。但是此時預測爲陽性的病例數爲7,其中只有4個正確,Precision=4/7=0.571。

image

如果我們的陰性樣本繼續增加,保持Sensitive和Specificity不變,Precision還將繼續下降。若將陰性樣本數量變爲第一種情況的100倍,保持Sensitive和Specificity不變,Precision=4/104=0.04。

當面對極不均衡數據時,通常是陰性樣本遠多於陽性樣本,我們發現Specificity常常會顯得虛高。就好像上述的例子,Sensitive和Specificity均爲0.8,但Precision僅有0.04,即預測出的陽性中,有96%都是假陽性,這樣就會帶來用戶的實際觀感非常差。Specificity虛高同時帶來的影響是AUC也會顯得虛高。同樣,這個例子中的 Accuracy 也會顯得很高,因爲裏面 TN 佔了很大比例。

更加極端的例子,在陰性樣本數量爲陽性樣本數量的 100 倍時,即使模型只預測陰性,它的Accuracy 也大於 0.99。所以在數據極其不均衡時,我們選取Precision、Recall和AP值能夠更好的反應模型的效果,同時也能更好的反應用戶實際使用的體驗。

實例解析

中山眼科發表了一篇糖網篩查的文章(http://care.diabetesjournals.org/content/early/2018/09/27/dc18-0147) ,文中提到模型的AUC=0.955,Sensitive=0.925,Specificity=0.985。

通過文中對數據集的描述,我們知道測試集總共有35,201張圖片(14,520隻眼),其中904隻眼是陽性,按照比例估算,得陽性的圖片約爲35201 * 904 / 14520 = 2192張,陰性圖片約爲35201-2192=33009張,所以TP=21920.925=2028,TN=330090.985=32514張,FP=33009-32514-495張,FN=2192-2028=164張。混淆矩陣如表3所示,可算得Precision=2028/(2028+495)=0.804。比Specificity有明顯差距。

image

總結

Sensitivity 和Specificity因爲統計上與測試數據的先驗分佈無關,統計上更加穩定,而被廣泛使用。但是當測試數據不平衡時(陰性遠多於陽性),Specificity不能很好地反應誤報數量的增加,同時AUC也會顯得虛高,這時引入Precision和AP值能更好的反應模型的效果和實際使用的觀感。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章