自AlphaGo戰勝人類頂尖圍棋手之後,人工智能這一概念真正成為了社會各界關注的焦點,也為各國政府所重視。一方麵可以給我們帶來諸多便利,比如可能為我們提供醫療、法律、金融等方麵的建議或決策,也可能直接操控汽車、無人機,甚至大規模殺傷性武器。但另一方麵,它也被用來“做壞事”甚至危害人類。如某些網站利用人工智能算法進行“大數據殺熟”,2017年也發生了全國首例利用人工智能技術進行網絡詐騙的案件。2015年德國大眾公司甚至發生了機器人“殺人事件”。歐盟已經要求所有算法解釋其輸出原理[3],這意味著不可解釋的算法模型將成為非法使用。
2.可解釋是人工智能發展選擇
在時下熱議的人工智能相關倫理、算法歧視、算法正確性、安全性等問題中,有一個問題被時常提起,即以深度學習算法為代表的人工智能算法的可解釋性問題。人類理性的發展曆程使我們相信,如果一個判斷或決策是可以被解釋的,我們將更容易了解其優點與不足,更容易評估其風險,知道其在多大程度上、在怎樣的場合中可以被信賴,以及我們可以從哪些方麵對其進行不斷改善,以盡量增進共識、減少風險,推動相應領域的不斷發展。這樣的思維範式或許是誕生在人工智能時代之前的稍顯過時的思維模式。或許隨著科技和社會的發展,未來會演化出新的思維範式,但目前這仍然是我們最成熟、最具共識、最可信賴的思維模式 。
二、可解釋性方法概述
17年ICML會議上來自穀歌的科學家給出一個關於可解釋性的定義是“Interpretation is the process of giving explanations to Human”。許多模型及應用不可解釋性的原因主要來源於對問題和任務了解得還不夠充分。那麼隻要在使用模型的過程中,隻要是能夠提供給我們關於數據或模型的可以理解的信息,有助於我們更充分的發現知識、理解和解決問題的方法,那麼都可以歸類為可解釋性方法。同時,這篇文章將可解釋性方法按進行的過程劃分為如下三類:在建模之前的可解釋性方法、建立本身具備可解釋性的模型和建模後使用可解釋性方法對模型作出解釋,下麵對這三大類方法分別作介紹。
三、建模前:在建模之前的可解釋性方法
在建模之前的可解釋性方法主要涉及一些數據預處理或數據展示的方法機器學習解決的是從數據中發現知識和規律的問題,如果我們對想要處理的數據特征所知甚少,指望對所要解決的問題本身有很好的理解是不現實的,在建模之前的可解釋性方法的關鍵在於幫助我們迅速而全麵地了解數據分布的特征,從而幫助我們考慮在建模過程中可能麵臨的問題並選擇一種最合理的模型來逼近問題所能達到的最優解。
數據可視化就是一類非常重要的建模前可解釋性方法。很多對數據挖掘稍微有些了解的人可能會認為數據可視化是數據挖掘工作的最後一步,大概就是通過設計一些好看又唬人的圖表或來展示你的分析挖掘成果。但實際上真正要研究一個數據問題之前,通過建立一係列方方麵麵的可視化方法來建立我們對數據的直觀理解是非常必須的,特別是當數據量非常大或者數據維度非常高的時候,比如一些時空高維數據,如果可以建立一些一些交互式的可視化方法將會極大地幫助我們從各個層次角度理解數據的分布。
四、建模中:建立本身具備可解釋性的模型
建立本身具備可解釋性的模型是最關鍵的一類可解釋性方法,同樣也是一類要求和限定很高的方法,具備可解釋性的模型大概可以分為以下幾種模型。
基於規則的模型,比如我們提到的非常經典的決策樹模型。這類模型中任何的一個決策都可以對應到一個邏輯規則表示。但當規則表示過多或者原始的特征本身就不是特別好解釋的時候,基於規則的方法有時候也不太適用。
基於單個特征的方法主要是一些非常經典的回歸模型,比如線性回歸、邏輯回歸、廣義線性回歸、廣義加性模型等。這類模型除了結構比較簡單之外,更重要的是回歸模型及其一些變種擁有非常堅實的統計學基礎,上百年來無數統計學家探討了在各種不同情況下的模型參數估計與修正、假設檢驗、邊界條件等等問題,使得他們在各種不同情況下都能使具有有非常好的可解釋性。
基於實例的方法主要是通過一些代表性的樣本來解釋聚類/分類結果的方法。比如可以為每一個聚類簇中選出代表性樣例和重要的子空間。
基於稀疏性的方法主要是利用信息的稀疏性特質,將模型盡可能地簡化表示。比如LDA方法,根據層次性的單詞信息形成了層次性的主題表達,這樣一些小的主題就可以被更泛化的主題所概括,從而可以使我們更容易理解特定主題所代表的含義。
基於單調性的方法在很多機器學習問題中,有一些輸入和輸出之間存在正相關/負相關關係,如果在模型訓練中我們可以找出這種單調性的關係就可以讓模型具有更高的可解釋性。比如醫生對患特定疾病的概率的估計主要由一些跟該疾病相關聯的高風險因素決定,找出單調性關係就可以幫助我們識別這些高風險因素。
五、建模後:使用可解釋性方法對模型作出解釋
建模後的可解釋性方法主要是針對具有黑箱性質的深度學習模型而言的, 深度學習的黑箱性主要來源於其高度非線性性質,每個神經元都是由上一層的線性組合再加上一個非線性函數的得到,人們無法像理解線性回歸的參數那樣通過統計學基礎假設來理解神經網絡中的參數含義及其重要程度、波動範圍。但實際上我們是知道這些參數的具體值以及整個訓練過程的,所以神經網絡模型本身其實並不是一個黑箱,其黑箱性在於我們沒辦法用人類可以理解的方式理解模型的具體含義和行為,而神經網絡的一個非常好的性質在於神經元的分層組合形式,這讓我們可以用物質組成的視角來理解神經網絡的運作方式。主要分為以下幾類的工作:隱層分析方法、模擬/代理模型、敏感性分析方法。
隱層分析方法:該方法通過對隱層運用一些可視化方法來將其轉化成人類可以理解的有實際含義的圖像以展示神經網絡中每層都學到的概念。我們都知道典型的CNN模型的一個完整卷積過程是由卷積-激活-池化(pooling)三個步驟組成的,也可以通過反池化-反激活-反卷積這樣的一個逆過程,並借助特征可視化幫助我們理解CNN的每一層究竟學到了什麼東西。此外,文獻[]提出了一種網絡切割的方法以提取CNN的語義概念。
模擬/代理模型:該類方法是針對黑箱模型,使用蒸餾(Model distillation)技術得到新的可解釋模型,訓練這兩個模型使他們的結果近似。但這類算法也存在很大的局限性,比如模型本身並不能被“蒸餾”,或者原始模型與蒸餾後的模型差異很大導致可解釋性模型的意義不再存在。
敏感性分析方法:用於定量描述模型輸入變量對輸出變量的重要性程度的方法。是令每個屬性在可能的範圍變動,研究和預測這些屬性的變化對模型輸出值的影響程度。我們將影響程度的大小稱為該屬性的敏感性係數,敏感性係數越大,就說明屬性對模型輸出的影響越大。一般來講對於神經網絡的敏感性分析方法可以分為變量敏感性分析、樣本敏感性分析兩種,變量敏感性分析用來檢驗輸入屬性變量對模型的影響程度,樣本敏感性分析用來研究具體樣本對模型的重要程度,也是敏感性分析研究的一個新方向。在金融領域,將敏感性分析與局部特征探索方法(主要是樹類模型),能夠有效解決金融領域普遍存在先驗知識不足問題。
機器人招商Disinfection Robot機器人公司機器人應用智能醫療物聯網機器人排名機器人企業機器人政策教育機器人迎賓機器人機器人開發獨角獸消毒機器人品牌消毒機器人合理用藥地圖 |