公眾信任是人工智能高效使用的重要條件。-? [馬克沃爾特爵士]
僅在過去的五年中犬绒,人工智能研究人員在圖像識別旺入,自然語言理解和棋盤游戲等領(lǐng)域取得了重大突破。由于公司正在考慮將關(guān)鍵決策移交給醫(yī)療保健和金融等行業(yè)的人工智能凯力,因此缺乏對復(fù)雜機器學(xué)習(xí)模型的理解存在很大問題茵瘾。這種缺乏理解可能導(dǎo)致模型傳播偏見,我們在刑事司法咐鹤,政治拗秘,零售,面部識別和語言理解中看到了很多這樣的例子祈惶。
所有這些都對信任產(chǎn)生了不利影響雕旨,根據(jù)我的經(jīng)驗,這是公司抵制企業(yè)部署AI的主要原因之一捧请。解釋或解釋AI是研究的熱門話題凡涩,因為現(xiàn)代機器學(xué)習(xí)算法是黑盒子,沒有人真正理解它們的工作原理疹蛉。此外活箕,歐盟法規(guī)現(xiàn)在根據(jù)GDPR“解釋權(quán)”解釋AI 。在這篇博客文章中可款,我將介紹一些可以添加到數(shù)據(jù)科學(xué)庫中的技術(shù)育韩,以提高模型理解克蚂。
團隊數(shù)據(jù)科學(xué)過程
首先,您在構(gòu)建和部署AI應(yīng)用程序時遵循了哪些流程筋讨?在Microsoft埃叭,我們遵循稱為團隊數(shù)據(jù)科學(xué)流程(TDSP)的敏捷和迭代方法,該流程從CRISP-DM和KDD等流程中獲取靈感悉罕。在這篇文章中赤屋,我將放大該過程的建模和部署階段。
在開發(fā)模型時蛮粮,第一步是學(xué)習(xí)益缎。您訓(xùn)練模型以檢測歷史數(shù)據(jù)中的模式,這需要經(jīng)過多次迭代的訓(xùn)練和驗證才能選擇最佳模型然想。獲得學(xué)習(xí)型模型后莺奔,下一步就是測試。這意味著在模型之前沒有看到的盲數(shù)據(jù)集上評估模型变泄。我寫了一篇關(guān)于衡量模型優(yōu)度的博客文章令哟,您可以應(yīng)用這些技術(shù)來量化商業(yè)價值并與業(yè)務(wù)利益相關(guān)者分享。在證明業(yè)務(wù)價值之后妨蛹,下一個合乎邏輯的步驟通常是部署將模型投入生產(chǎn)屏富。部署后,一個非常常見的問題是模型沒有按預(yù)期執(zhí)行蛙卤。這有兩個主要原因:
數(shù)據(jù)/概念漂移:當(dāng)數(shù)據(jù)分布隨時間變化或用于訓(xùn)練模型的歷史數(shù)據(jù)存在偏差且不代表實際生產(chǎn)數(shù)據(jù)時狠半,就會發(fā)生這種情況。
數(shù)據(jù)泄漏:當(dāng)訓(xùn)練和驗證數(shù)據(jù)中的特征或?qū)傩詿o意泄漏否則不會出現(xiàn)在推理時間的信息時颤难,就會發(fā)生這種情況神年。一個典型的例子是 2008年的 KDD競賽,即早期乳腺癌檢測行嗤,其中一個特征(患者ID)被發(fā)現(xiàn)與目標類密切相關(guān)已日。
在野外部署模型之前,我們可以通過引入模型理解的額外步驟來規(guī)避這些問題栅屏。通過解釋模型飘千,我們可以獲得更深入的理解并解決偏差,泄漏和信任等問題栈雳。
但是护奈,什么是可解釋性?
可解釋性是指人類能夠一致地估計模型預(yù)測的程度哥纫,人類能夠理解并遵循模型預(yù)測的程度逆济,以及最終人類在模型出錯時能夠檢測到的程度。
可解釋性對不同的人意味著不同的東西:
對于數(shù)據(jù)科學(xué)家來說磺箕,這意味著要更好地理解模型奖慌,看看模型表現(xiàn)好壞的情況以及原因。這種理解有助于數(shù)據(jù)科學(xué)家構(gòu)建更強大的模型松靡。
對于業(yè)務(wù)利益相關(guān)者而言简僧,這意味著要深入了解為什么人工智能系統(tǒng)做出特定決定以確保公平性并保護其用戶和品牌。
對于用戶來說雕欺,這意味著要理解模型做出決策的原因岛马,并在模型出錯時允許有意義的挑戰(zhàn)。
對于專家或監(jiān)管機構(gòu)來說屠列,它意味著審核AI系統(tǒng)并遵循決策路徑啦逆,尤其是在出現(xiàn)問題時。
在談?wù)摽山忉屝院湍P屠斫鈺r笛洛,注意這些不同的人物角色很重要夏志。
模型透明度
模型的可解釋性可以通過學(xué)習(xí)的響應(yīng)函數(shù)與輸入特征的復(fù)雜程度來表征。上圖顯示了三種不同類型的響應(yīng)函數(shù):
線性苛让,單調(diào):這些是最可解釋的函數(shù)沟蔑,因為對輸入要素的更改會導(dǎo)致目標變量在單個方向(正或負)上成比例變化。這允許我們計算相對特征重要性度量和原因代碼狱杰。原因代碼有助于理解為什么學(xué)習(xí)模型預(yù)測特定輸入的高或低瘦材。它為我們提供了輸入特征預(yù)測影響的定性度量,即它是強仿畸,弱食棕,正還是負。
非線性错沽,單調(diào):機器學(xué)習(xí)算法學(xué)習(xí)的大多數(shù)響應(yīng)函數(shù)都是非線性的簿晓。單調(diào)性可確保輸入要素的相對變化導(dǎo)致目標變量在單個方向上發(fā)生變化。非線性甥捺,單調(diào)函數(shù)也是可解釋的抢蚀,因為它允許我們計算相對特征重要性度量和原因代碼。
非線性镰禾,非單調(diào):這些是現(xiàn)代機器學(xué)習(xí)算法學(xué)習(xí)的最常見的函數(shù)皿曲,并且是最難解釋的。這是因為輸入變量的變化會導(dǎo)致目標變量在任何方向上以不同的速率發(fā)生變化吴侦。我們可以為這些函數(shù)計算的唯一可解釋的度量是相對特征重要性屋休。解釋這些功能是本文的重點。
超越功能重要性
現(xiàn)在讓我們看一個具體的例子备韧。問題是預(yù)測美國高中生的數(shù)學(xué)劫樟,閱讀和寫作成績。我們獲得的歷史數(shù)據(jù)包括性別,種族/民族(匿名)叠艳,家長教育水平奶陈,學(xué)生是否吃了標準/免費/補貼午餐和測試準備水平。鑒于這些數(shù)據(jù)附较,我訓(xùn)練了一個多級隨機森林模型吃粒。
為了解釋模型學(xué)到了什么,最簡單的技術(shù)之一是查看相對特征的重要性拒课。特征重要性衡量給定特征對預(yù)測結(jié)果的影響有多大徐勃。從上圖可以看出,兩個最重要的特征是 - 父母的教育水平和種族/民族早像。這是有用的信息僻肖,但它沒有告訴我們?nèi)魏侮P(guān)于不同教育程度如何影響成績以及種族和教育如何相互作用的信息。
輸入卢鹦,部分依賴關(guān)系圖(PDP)臀脏!
PDP向我們展示了特征對預(yù)測結(jié)果的邊際效應(yīng)。在Python中法挨,您可以使用scikit-learn中的實現(xiàn)谁榜,這限制了漸變增強回歸量/分類器。由Jiangchun Lee開發(fā)的PDPBox更好的實現(xiàn)凡纳。該庫的靈感來自ICEBox窃植,它是R的PDP實現(xiàn),并支持所有scikit-learn機器學(xué)習(xí)模型荐糜。
現(xiàn)在讓我們看看PDP的實際應(yīng)用巷怜。上圖顯示了不同教育水平對預(yù)測數(shù)學(xué)A和F成績的影響。當(dāng)你在x軸上從左到右時暴氏,父母的教育水平會提高延塑,從高中開始一直到碩士學(xué)位。您會注意到答渔,隨著父母教育水平的提高关带,對預(yù)測A級的影響會增加。你看到F級的下降趨勢相似沼撕,即父母受教育程度越高宋雏,對預(yù)測F級的影響就越小。這種分析表明务豺,父母的教育水平是一個有效的特征磨总。
現(xiàn)在讓我們看一下預(yù)測數(shù)學(xué)A級的特征相互作用。我在這里選了兩個最重要的功能笼沥。父母的教育水平在y軸上蚪燕,當(dāng)你從下到上時娶牌,教育水平會提高。學(xué)生的匿名種族或種族在x軸上顯示馆纳,其中不同的點代表不同的種族 - 本研究中有5個不同的群體诗良。請注意熱圖中的顏色 - 紫色/藍色代表預(yù)測A級的低影響,綠色/黃色代表高影響厕诡。
將第0組邊緣化累榜,您可以看到隨著父母教育水平的提高,對預(yù)測A級的影響也會增加灵嫌。這是有道理的,因為它表明教育水平對等級的影響比對種族的影響更大葛作。因此寿羞,該模型很好地學(xué)習(xí)了這種相關(guān)性。但是第5組的情況如何呢赂蠢?看起來無論教育水平如何绪穆,如果學(xué)生屬于第5組,那么這對預(yù)測A級有很大的影響虱岂。這對我來說看起來很可疑
可能存在采樣偏差的數(shù)據(jù)存在問題
模型的問題
社會的系統(tǒng)性問題
事實證明玖院,這里使用的Kaggle數(shù)據(jù)集是人為的錯誤,第5組沒有正確表示第岖。無論如何难菌,重點是通過僅僅考慮特征重要性,這些見解都不可能蔑滓。
決策樹上的側(cè)欄
我想揭穿一個關(guān)于決策樹的常見誤解 - 它們是極其可解釋的郊酒。讓我們再看一個具體的例子。問題是根據(jù)4個特征 - 花瓣長度和寬度键袱,以及萼片的長度和寬度來預(yù)測給定的鳶尾花是Setosa燎窘,Versicolor還是Virginica。我為這個分類任務(wù) 訓(xùn)練了一個簡單的決策樹蹄咖,你可以很容易地在scikit-learn中看到訓(xùn)練好的模型褐健,如上所示。當(dāng)您沿著樹中的不同分支走下去時澜汤,您可以看到這些特征如何影響模型的決策蚜迅,并且外行人很容易理解它。
現(xiàn)在讓我們來看一個更具挑戰(zhàn)性的問題银亲。醫(yī)院希望使用AI系統(tǒng)來早期發(fā)現(xiàn)乳腺癌慢叨。這是一個模型理解至關(guān)重要的例子,因為它是生死攸關(guān)的情況务蝠。在數(shù)據(jù)集中拍谐,我們給出了30種不同的功能。我再次為這個二進制分類任務(wù)訓(xùn)練了一個簡單的決策樹。從下面的可視化中轩拨,您可以看到隨著特征數(shù)量的增加践瓷,決策樹的復(fù)雜性也會增加,并且解釋起來會變得更加困難亡蓉。
您可以說我們可以通過降維來減小特征空間的大小晕翠,這是完全有效的。但你必須明白砍濒,你在這里做了一個權(quán)衡 - 你為了簡單而犧牲了準確性淋肾。這可能不是特別針對這種關(guān)鍵決策采取的正確策略。因此爸邢,決策樹不是解決可解釋性問題的靈丹妙藥樊卓。
后期解釋
讓我們回到乳腺癌檢測問題。由于準確性對于這樣一個關(guān)鍵任務(wù)很重要杠河,如果我們訓(xùn)練了更復(fù)雜的樹木(如隨機森林或梯度提升樹)甚至是黑盒神經(jīng)網(wǎng)絡(luò)碌尔,那該怎么辦?我們?nèi)绾谓忉屵@些復(fù)雜的模型券敌?
假設(shè)您訓(xùn)練的復(fù)雜模型學(xué)習(xí)如上所示的決策函數(shù)唾戚,以將惡性細胞(紅色)與良性細胞(藍色)分開。解釋此復(fù)雜模型的方法是選擇要解釋的實例待诅。然后訓(xùn)練一個更簡單的線性模型叹坦,該模型近似于該實例周圍的復(fù)雜模型咱士。這意味著我們使用更簡單的模型通過查看圍繞它的類似情況來解釋該實例立由。因此,學(xué)習(xí)的表示在當(dāng)?shù)厥侵覍嵉男蚶鳎皇侨蛐缘娜衲ぁ_@種事后解釋技術(shù)稱為LIME,它代表局部可解釋模型無關(guān)的解釋弛房。它是在2016 年提出的并且自從(Github上的5343顆星道盏,截至05年3月5日)以來獲得了很多人氣。
現(xiàn)在讓我們從不同的角度來看看它文捶。我們已經(jīng)獲得了我們想要分類的不同乳腺癌細胞的數(shù)據(jù)荷逞,在方框圖中表示為x。我們正在訓(xùn)練的是學(xué)會了一門復(fù)雜的函數(shù)模型?F用于分隔惡性案件的良性病變粹排。然后种远,我們訓(xùn)練一個簡單的線性代理模型g,通過近似該點周圍的復(fù)雜函數(shù)來解釋一個實例x’顽耳。這個簡單模型學(xué)到的參數(shù)就是解釋坠敷。這在下面以數(shù)學(xué)方式顯示妙同。
Scott M. Lundberg等人在NeurIPS 2017上提出了一個框架,該框架統(tǒng)一了包括LIME在內(nèi)的各種附加特征歸因方法膝迎。在該論文中粥帚,SHAP(代表SHapley Additive exPlanation)值被用作特征重要性的統(tǒng)一度量。2017年發(fā)布了SHAP的Python實現(xiàn)限次,統(tǒng)一了LIME和其他技術(shù)芒涡,如DeepLIFT和樹解釋器。該圖書館自發(fā)布以來也越來越受歡迎(截至03年3月3日卖漫,Github上有3909顆星)费尽。您可以按如下方式安裝SHAP。
現(xiàn)在針對乳腺癌檢測問題懊亡,我已經(jīng)訓(xùn)練了一個隨機森林分類器依啰,在保持測試集上獲得100%的平均精度 - 見下面的PR曲線。
為了解釋這個模型店枣,我選擇了一個惡意案例來運行SHAP樹解釋器。該模型預(yù)測該病例是惡性的叹誉,概率為0.9鸯两。該數(shù)據(jù)集中的惡性基礎(chǔ)率為0.6251。SHAP提供的解釋如下所示 - 其中正面影響用紅色表示长豁,負面影響用藍色表示钧唐。您可以看到不同的特征值如何將基本預(yù)測推高到90%的確定性。具有最大正面影響的特征是 - 最差區(qū)域匠襟,最差凹點和平均凹點钝侠。
對于良性情況也可以獲得類似的解釋。我挑選了一個良性細胞酸舍,模型以100%的確定性預(yù)測帅韧,即0%的可能性是惡性的。您可以從下面的解釋中看到各種特征值如何將惡性腫瘤的基本概率從0.6251降低到0.具有最大負面影響的特征是 - 最差凹點啃勉,平均周長和最差半徑忽舟。這種解釋很好,因為它使我們更深入地了解模型如何達到最終預(yù)測淮阐。
上面的解釋可以使用下面的代碼片段生成 - 整個源代碼可以在這里找到叮阅。
您還可以使用SHAP可視化每個功能在預(yù)測目標類中的平均影響。這由左下方的圖表顯示泣特。你可以看到兩個最重要的特征是 - 最差的凹點和平均凹點浩姥。右圖顯示了這兩個特征在預(yù)測惡性類別中的相互作用。
SHAP還可用于解釋黑盒深度學(xué)習(xí)模型状您。下面是SHAP解釋在MNIST數(shù)據(jù)集上訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)的示例勒叠。SHAP DeepLIFT實現(xiàn)用于解釋預(yù)測兜挨。紅色像素表示對預(yù)測數(shù)字的影響很大。值得注意的是缴饭,DeepExplainer模型已經(jīng)找到了一些很好的解釋 - 例如暑劝,數(shù)字0的空白中間和數(shù)字4的兩條垂直線之間沒有連接.SHAP存儲庫中有更多很酷的例子。
MOAR工具颗搂!
我在本文中幾乎沒有涉及到表面担猛,并且您可以應(yīng)用更多可解釋性技術(shù),例如:
使用RNN語言模型生成文本說明
使用顯著性圖來解釋模型所關(guān)注的內(nèi)容
使用代表性學(xué)習(xí)并使用t-SNE等技術(shù)對其進行定性可視化
我在這個Github頁面上添加了很多資源以供進一步閱讀丢氢。
透明度面臨的挑戰(zhàn)
我想以一個警告結(jié)束傅联。在阿德里安·韋勒(Adrian Weller)的一篇有趣的論文中,他認為人工智能透明度應(yīng)該是實現(xiàn)目標的手段疚察,而不是目標本身蒸走。韋勒博士借鑒多智能體博弈論,表明更多的透明度可能導(dǎo)致所有人的不利全球結(jié)果貌嫡,并可能使AI被惡意行為者濫用比驻。毫無疑問,AI系統(tǒng)必須是安全的岛抄,并且必須防范對抗性攻擊别惦。這又是另一個活躍的研究領(lǐng)域,值得一篇單獨的博文夫椭!