如何评估AI在医学影像识别中的应用效果?
基于人工智能(AI)技術(shù)的醫(yī)學影像識別越來越受到社會各界的重視。而人工智能技術(shù)的進步,往往被歸納為幾個性能指標,這樣一來,AI技術(shù)的性能指標自然也就成為大家談?wù)摵完P(guān)注的焦點之一。實踐中存在多種衡量AI算法性能的指標,本文嘗試解釋其中常見的幾種指標的含義,以及它們在不同場景下的適用性和局限性,希望能夠幫助大家更好地理解指標背后AI技術(shù)的進展。
醫(yī)療影像識別中有哪些常用指標?
為簡化討論,本文均以“二分類問題”為例,即對影像判斷的結(jié)果只有兩種:要么是陽性(positive),要么是陰性(negative)。這樣的簡化也符合大部分醫(yī)學影像識別問題的實際情況。
二分類問題,如果不能被AI模型完美解決,那么模型預(yù)測結(jié)果的錯誤大概有兩類:一類是把陰性誤報為陽性(把沒病說成了有病),另一類是把該報告的陽性漏掉(即把有病看成了沒病)。優(yōu)化模型的過程,是同時減少這兩類錯誤的過程,至少是在兩類錯誤之間進行適當折中的過程。不顧一類錯誤,而單純減少另一類錯誤,一般是沒有意義的。比如,我們?yōu)榱瞬环浮奥钡腻e誤,最簡單的辦法就是把所有的圖像都報告稱陽性(有病)。
1. 常用術(shù)語解釋
在二分類的條件下,AI的預(yù)測結(jié)果存在下列4種情形:
真陽性(True Positive,TP):預(yù)測為陽性,實際為陽性;
真陰性(True Negative,TN):預(yù)測為陰性,實際為陰性;
假陽性(False Positive,FP):預(yù)測為陽性,實際為陰性;
假陰性(False Negative,FN):預(yù)測為陰性,實際為陽性。
其中,FP也稱為誤報(False alarm),FN也稱為漏報(miss detection)。
上文4種名稱中的“真”(True)和“假”(False)表示預(yù)測結(jié)果是否正確。名稱中的“陽性”(Positive)和“陰性”(Negative)表示預(yù)測結(jié)果。例如,對于一個特定的測試樣本,真陽性的含義為“AI預(yù)測正確,且AI預(yù)測結(jié)果為陽性”,那么就可以推斷到:預(yù)測為陽性,實際結(jié)果為陽性。假陰性的含義為“AI錯判為陰性”,那么就可以推斷到:預(yù)測為陰性,實際結(jié)果為陽性。
通常我們會用一個矩陣來展示預(yù)測結(jié)果和實際情況的差異,稱為混淆矩陣 (confusion matrix)。二分類的混淆矩陣為2x2的,見表1。為表述方便起見,接下來我們就以TP代指真陽性的數(shù)量,TN代指真陰性的數(shù)量,FP代指假陽性的數(shù)量,FN代指假陰性的數(shù)量。
2. 可以由混淆矩陣得到的指標
表2中涉及到的指標,取值范圍均是0至1。由于上述兩類錯誤的存在,通常這些指標需要成對地報告,成對地去考察。
例如,如果我們只關(guān)心AI模型的靈敏度(Sensitivity),那么我們就只需要把所有的樣本預(yù)測為陽性,那么Sensitivity就等于1。顯然,這不是一個好的模型,因為它會將陰性樣本誤報為陽性,使得它的特異度(Specificity)為0。因此,需要同時報告Sensitivity和Specificity。
精確率(Precision)和召回率(Recall)、真陽性率(TPR)和假陽性率(FPR)也存在類似的此消彼長的關(guān)系,我們不再對這些指標單獨討論。準確率(Accuracy)通常也會和其它指標一起報告,我們會在下文各指標使用場景具體講到。
當同時報告兩個指標(例如Sensitivity和Specificity)時,我們通常還會報告二者的“平均值”,使得模型的指標歸為一個點,以便比較兩個模型的好壞。這里我們通常使用二者的調(diào)和平均數(shù),稱為F1-measure。選調(diào)和平均數(shù)的原因是調(diào)和平均數(shù)相比于算數(shù)平均數(shù)和幾何平均數(shù),更加偏向小的那個數(shù)。給定兩個指標,它們的各種平均數(shù)之間存在如下關(guān)系:
調(diào)和平均數(shù) ≤ 幾何平均數(shù) ≤ 算數(shù)平均數(shù)
當且僅當兩個指標相等時,上述等式成立。這就要求我們找到這樣一個模型,使得兩個指標盡量均衡。
3. 不能由混淆矩陣得到的指標
一個AI模型通常不是直接得到陽性或者陰性的結(jié)果的。它輸出的是陽性(或者陰性)的得分(也可被稱為陽性的“概率”或者“置信度”,盡管它實際上和概率或者置信度并無關(guān)系)。通常是得分越大,表明模型越肯定這是一個陽性病例。為了把得分轉(zhuǎn)化為陽性-陰性的二分類,我們會認為設(shè)置一個決策閾值(decision threshold)。當模型關(guān)于某個樣本的陽性得分大于該閾值時,該樣本被預(yù)測為陽性,反之則為陰性。
例如,當閾值設(shè)為0.5時,模型輸出的樣本1的得分為0.7,則樣本1被預(yù)測為陽性。模型輸出的樣本2的得分為0.1,則樣本2會被預(yù)測為陰性。上述二分類的過程實質(zhì)上就是將模型給出的連續(xù)得分量化為陽性、陰性這兩個離散值之一。閾值一旦確定,就可以計算相應(yīng)的混淆矩陣。
因此,上一節(jié)講到的所有指標,都是可能隨著閾值變動而改變的。例如,將閾值由0.5提高到0.6時,預(yù)測為陽性的樣本有很大可能會減少,由此導(dǎo)致誤報減少而漏報增多,相應(yīng)的指標也隨之變動,具體表現(xiàn)為Sensitivity下降而Specificity提升。
為方便起見,我們假設(shè)所有的得分均在0和1之間。
(1)ROC曲線和AUC
隨著閾值的降低,預(yù)測的陽性病例增加,預(yù)測的陰性病例減少,即TPR上升,FPR上升,以TPR為縱坐標,FPR為橫坐標畫出ROC曲線,如圖1所示。可以看出,ROC曲線是TPR關(guān)于FPR的不減函數(shù)。
回顧表1,可知TPR就是Sensitivity,而 FPR等于1-Specificity。因此,也可以認為ROC曲線的橫坐標是1-Specificity,縱坐標是Sensitivity。
ROC曲線起始點對應(yīng)的閾值為1,即將所有樣本均預(yù)測為陰性,此時陽性樣本全被誤報為陰性(TP=0),而陰性樣本沒有被誤報(FP=0),因此有TPR=FPR=0。ROC曲線終點對應(yīng)的閾值為0,即所有樣本均預(yù)測為陽性,此時TPR=FPR=1。
當模型1的ROC曲線被算法2的ROC曲線嚴格包圍時,意味著在相同的FPR(或Specificity)要求下,模型2的TPR(或Sensitivity)更高,可以認為模型2優(yōu)于模型1,如圖1中的模型1就優(yōu)于隨機預(yù)測。
當不存在某條ROC曲線被另一條完全包圍時,如圖1中模型1和模型2的所示,我們通常使用ROC曲線下的面積作為度量指標,稱之為AUC。
(2)Precision-Recall曲線(P-R曲線)和Average Precision(AP)
除了ROC曲線,另一種常用的是Precision-Recall曲線,簡稱P-R曲線。隨著閾值的降低,預(yù)測的陽性病例增加,預(yù)測的陰性病例減少。模型將更多的它認為“不那么確定是陽性” 的樣本判斷為陽性,通常 Precision 會降低。并且 Recall 不減。以Precision為縱坐標,Recall為橫坐標畫出P-R曲線,如圖2。
P-R曲線起點對應(yīng)的閾值為所有預(yù)測樣本得分的最大值,即只將模型認為最有可能是陽性的那一個測試樣本預(yù)測為陽性,其余全預(yù)測為陰性,如果這一個陽性預(yù)測正確,那么Precision=1,Recall=1/所有陽性病例數(shù),否則Precision=Recall=0。P-R曲線終點對應(yīng)的閾值是0,即將所有樣本預(yù)測為陽性,此時Precision=所有陽性病例數(shù)/總病例數(shù),Recall=1。同樣我們使用P-R曲線下的面積作為度量指標,稱為AP。
AP和AUC與具體的閾值無關(guān),可以認為是對模型性能的一個總體估計,因此通常作為更普適的指標來衡量模型的好壞。
不同指標在實際場景下的應(yīng)用
我們用一個簡單的圖來幫助理解,如圖3,紅色代表陽性,綠色代表陰性,小人頭的顏色代表實際類別,手中拿的診斷顏色代表模型預(yù)測的類別。
1. 理想的AI模型
所有的陽性都被預(yù)測為陽性,所有的陰性都被預(yù)測為陰性。如圖4。
在這種情形下,Sensitive=Specificity=Precision=Recall=1。
2. 實際的AI模型
實際中,模型不可能做到完全正確。第一種情況,如圖5。圖5(a)中5個陽性中有4個被正確預(yù)測為陽性,Sensitive=4/5=0.8。圖5(b)中5個陰性中有4個被正確預(yù)測為陰性, Specificity=4/5=0.8。一共5個病例被預(yù)測為陽性(藍框),其中4個正確,Precision=4/5=0.8。
第二種情況,如圖6所示,相對于第一種情況,我們將陰性的樣本量增加兩倍,Sensitive和Specificity不變。但是此時預(yù)測為陽性的病例數(shù)為7,其中只有4個正確,Precision=4/7=0.571。
如果我們的陰性樣本繼續(xù)增加,保持Sensitive和Specificity不變,Precision還將繼續(xù)下降。若將陰性樣本數(shù)量變?yōu)榈谝环N情況的100倍,保持Sensitive和Specificity不變,Precision=4/104=0.04。
當面對極不均衡數(shù)據(jù)時,通常是陰性樣本遠多于陽性樣本,我們發(fā)現(xiàn)Specificity常常會顯得虛高。就好像上述的例子,Sensitive和Specificity均為0.8,但Precision僅有0.04,即預(yù)測出的陽性中,有96%都是假陽性,這樣就會帶來用戶的實際觀感非常差。Specificity虛高同時帶來的影響是AUC也會顯得虛高。同樣,這個例子中的 Accuracy 也會顯得很高,因為里面 TN 占了很大比例。
更加極端的例子,在陰性樣本數(shù)量為陽性樣本數(shù)量的 100 倍時,即使模型只預(yù)測陰性,它的Accuracy 也大于 0.99。所以在數(shù)據(jù)極其不均衡時,我們選取Precision、Recall和AP值能夠更好的反應(yīng)模型的效果,同時也能更好的反應(yīng)用戶實際使用的體驗。
實例解析
中山眼科發(fā)表了一篇糖網(wǎng)篩查的文章(http://care.diabetesjournals.org/content/early/2018/09/27/dc18-0147) ,文中提到模型的AUC=0.955,Sensitive=0.925,Specificity=0.985。
通過文中對數(shù)據(jù)集的描述,我們知道測試集總共有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有明顯差距。
總結(jié)
Sensitivity 和Specificity因為統(tǒng)計上與測試數(shù)據(jù)的先驗分布無關(guān),統(tǒng)計上更加穩(wěn)定,而被廣泛使用。但是當測試數(shù)據(jù)不平衡時(陰性遠多于陽性),Specificity不能很好地反應(yīng)誤報數(shù)量的增加,同時AUC也會顯得虛高,這時引入Precision和AP值能更好的反應(yīng)模型的效果和實際使用的觀感。
總結(jié)
以上是生活随笔為你收集整理的如何评估AI在医学影像识别中的应用效果?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

- 上一篇: Docker系列07—Dockerfil
- 下一篇: ElasticSearch之Centos