明明是只斑馬,AI為什么說它是一條狗?
分類模型在歸類圖像時有時會錯誤地判斷類別。
經(jīng)過學(xué)習(xí)的AI,還會搞砸一些預(yù)測,肯定是在其中的某個環(huán)節(jié)出現(xiàn)了紕漏。
斯坦福大學(xué)的兩位博士生和教授James Zou在一篇論文中,帶我們探究了分類模型犯錯的原因。
隨后,論文提出一種方法——反事實的概念性解釋(Conceptual Counterfactual Explanations),并評估了它的效果。
通過這種方法,我們就能重新定義模型的分類標(biāo)準(zhǔn),從而解釋AI犯錯的原因。
一起來看看吧。
AI為什么會犯錯?
想要提高分類模型后續(xù)預(yù)測的準(zhǔn)確性,就先得整明白這個模型在哪里出了岔子。
一般來說,AI搞砸預(yù)測是以下原因造成的:
首先是在模型實際預(yù)測的過程中,分類標(biāo)準(zhǔn)可能會與預(yù)訓(xùn)練時有些偏差,使得訓(xùn)練模型在實際預(yù)測的過程中效果不佳,進(jìn)而降低預(yù)測結(jié)果的準(zhǔn)確性。
比如說,病理學(xué)家使用預(yù)先訓(xùn)練好的模型來分類組織病理學(xué)圖像,但效果在他的圖像上卻不是很好。
這就可能是在他的圖像中,色調(diào)與原始訓(xùn)練數(shù)據(jù)中不同導(dǎo)致的。
其次,在模型學(xué)習(xí)的過程中,可能會學(xué)習(xí)到一種叫做“偽相關(guān)性”的東西,即將一些看似無關(guān)的要素與被識別的圖像關(guān)聯(lián)起來。
可以看這個例子:
在這個模型訓(xùn)練過程中,樣本里所有狗的照片里都有雪,這導(dǎo)致該模型將雪與狗聯(lián)系在一起,并錯誤地預(yù)測:沒有雪的狗不是狗。
這可能是用的數(shù)據(jù)集,都是在同一場景下收集的,會阻礙模型的泛化。
除此之外,也可能是在訓(xùn)練模型時,人為制造的一些偏差。
例如,某一皮膚科專家利用訓(xùn)練好的AI來分類圖像中的皮膚病,但其他同事使用的效果卻不盡如人意。
這可能是因為在訓(xùn)練的樣本中,皮膚的膚色單一、且年齡段分布窄。
了解了AI“犯錯”的原因后,我們要怎樣才能準(zhǔn)確地判斷模型哪里出現(xiàn)了錯誤呢?
AI犯錯,它來解釋
James Zou在論文中提出了一種叫反事實的概念性解釋(CCE)的方法。
具體來說,就是通過這種方法,來探究輸入數(shù)據(jù)與預(yù)測結(jié)果之間的聯(lián)系,最終找到模型的錯誤之處。
那CCE是怎么來解釋的呢?
定義概念庫
首先要做的,就是設(shè)置并細(xì)化一個概念庫C,即制作一個分類標(biāo)準(zhǔn)。
具體來說,概念庫C中的各個概念可以用來分類圖像,如裝置c1(街道、雪等)、圖片質(zhì)量c2(清晰、模糊等)······
這樣,就能獲得一組可解釋的概念庫C={c1,c2,…}。
然后,需要給其中的每個概念找對應(yīng)訓(xùn)練數(shù)據(jù)。
具體的,就是收集與其相符(Pci)和不符(Nci)的例子,一般來說數(shù)量上要一樣(Pci=Nci=100)。
對于每個概念,CCE都要學(xué)習(xí)它們的分類方法和“思維方式”。
分別通過兩種方法:
一個是通過學(xué)習(xí)支持向量機(jī)(SVM),來尋找可以區(qū)分兩種事物最優(yōu)方式的算法(線性分類器)。
另一個是學(xué)習(xí)相應(yīng)的概念激活向量(CAV),它可以用來解釋圖像被錯誤分類的具體原因。
就像下圖,都是斑馬的圖像,歸類錯誤的原因卻不一樣。
這一步只需要對每個想要評估的模型做一次,之后CAV便可以用來解釋任意數(shù)量的錯誤分類。
給定錯誤分類標(biāo)準(zhǔn)
我們可以通過改變不同概念在模型中的比重,對其分類標(biāo)準(zhǔn)進(jìn)行相應(yīng)的調(diào)整,這些調(diào)整要滿足以下原則:
1、正確性:如果一個分類標(biāo)準(zhǔn)達(dá)到了預(yù)期的結(jié)果,那么它就被認(rèn)為是正確的。
2、有效性:分類標(biāo)準(zhǔn)不能違反人類的基本認(rèn)知。
3、稀疏性:最終目標(biāo)是向用戶傳達(dá)模型的錯誤之處,太多的變量不利于有效傳達(dá)信息。
我們的目的是盡可能地使預(yù)測結(jié)果貼近訓(xùn)練結(jié)果,即最小化交叉熵?fù)p失。
因此就要不斷優(yōu)化模型預(yù)測的標(biāo)準(zhǔn),通過調(diào)整待修改的標(biāo)準(zhǔn),對其進(jìn)行加權(quán),最終達(dá)到糾正錯誤分類的效果。
了解之后,我們通過一個實際例子來看看,怎么用CCE“探測”分類模型出錯的地方。
在這里,分類模型錯誤地將斑馬圖像識別為非洲獵犬。
于是,我們首先生成這個模型將斑馬識別成狗的一系列標(biāo)準(zhǔn)。
然后,對這些標(biāo)準(zhǔn)進(jìn)行評分,如果評分為正,則代表在圖像中增加這個概念,將會提高正確分類的概率,反之亦然。
在這個例子中,如果增加stripes(條紋)這個概念,識別出它為斑馬的概率就會大一些。
在c)圖中,通過CCE分析也可以直觀地看到,“Polka Dots”(斑點(diǎn))和“Dog”(狗)是導(dǎo)致模型預(yù)測錯誤的原因。
CCE效果怎么樣?
看到這里,想必大家對CCE的原理都有了初步的認(rèn)識。
那它判斷得到底準(zhǔn)不準(zhǔn)確,效果究竟如何呢?
CCE的目的,主要是揭示模型在訓(xùn)練過程中學(xué)習(xí)到的“偽相關(guān)性”,用它就可以捕獲圖像中出現(xiàn)的其他“無關(guān)要素”和圖像的偽相關(guān)性。
測試發(fā)現(xiàn),在大多數(shù)情況下,該模型在超過90%的錯誤分類的測試樣本中識別出偽相關(guān)。
看看這個表格,相較于其他方法,使用CCE,識別出樣本中偽相關(guān)的概率最高。
CCE能夠精準(zhǔn)地識別出樣本中的偽相關(guān),可以看這個例子:
改變蘋果圖片的顏色(使圖片變灰),分類模型識別錯誤的概率增大時(黑線),CCE辨別出“綠色”為偽相關(guān)的分?jǐn)?shù)也就越高(綠線)。
除此之外,CCE也有用在醫(yī)學(xué)領(lǐng)域的潛力。
像Abubakar Abid等人就使用CCE,在皮膚病學(xué)(皮膚狀況分類)、胸片圖像中的心臟病學(xué)(氣胸分類)中都做了相關(guān)測試。
CCE使用學(xué)習(xí)到的偏差和圖像質(zhì)量條件來解釋模型犯錯,也已被專業(yè)的皮膚科醫(yī)生證實——這些因素,確實很大程度上是導(dǎo)致皮膚圖像難以分類的原因。
此外,CCE的速度也很快。
概念庫只需要使用簡單的支持向量機(jī)學(xué)習(xí)一次,每個測試示例在單個CPU上花費(fèi)的時間小于0.3s。
重要的是,它可以很簡單地應(yīng)用到任何深度網(wǎng)絡(luò),在不需要訓(xùn)練數(shù)據(jù)的情況下檢測到模型犯錯的原因。