用可組合的構建塊豐富使用者介面?谷歌提出「可解釋性」的最新詮釋
本文轉自雷克世界(ID:raicworld)
編譯 | 嗯~阿童木呀
隨著在神經網路領域不斷取得新的發展成果,有一個相對應的需求也亟待解決,即能夠對其決策進行解釋,包括建立它們在現實世界中行為方式的置信度、檢測模型偏差以及科學好奇心。為了做到這一點,我們需要構建深度抽象,並在豐富的介面中對它們進行修飾(或例項化)。可以說,除了極少數例外,現有的研究在關於可解釋性這一點上並沒有多少建樹。
機器學習社群主要致力於開發功能強大的方法,如特徵視覺化、歸因和降維,用於對神經網路進行解釋和理解。然而,這些技術被當作孤立的研究線索進行研究,並且有關對它們進行修飾的研究也被忽略了。
另一方面,人機交社群已經開始探索神經網路豐富的使用者介面,但他們還沒有對這些抽象概念進行更深入的研究。就這些抽象概念的使用程度而言,它已經是以相當標準的方式進行的了。結果,我們留下了很多並不實用的介面(例如顯著圖(saliency maps)或相關的抽象神經元),而將以一些有價值的東西遺棄了。更糟糕的是,許多可解釋性技術還沒有完全應用到抽象中,因為沒有這樣一種壓力存在從而使它們成為可推廣的或可組合的。
在本文中,我們將現有的可解釋性方法視為豐富使用者介面的基礎和可組合性構建塊。
我們發現,這些不同的技術現在匯聚在一個統一的語法中,在最終的介面中實現互補角色。而且,這個語法使得我們能夠系統性地對可解釋性介面空間進行探索,使我們能夠評估它們是否與特定的目標相符合。我們將展示一些介面,它們顯示了網路所檢測到的資訊,並解釋了網路是如何對其理解進行開發的,同時保持人類規模的大量資訊。例如,我們將看到一個注視著拉布拉多獵犬的網路是如何檢測到它鬆軟的耳朵,以及它是如何影響其分類的。
在本文中,我們使用影像分類模型—GoogLeNet對我們的介面概念進行演示,因為它的神經元在語義上看起來異乎尋常。雖然在本文中我們已經對任務和網路進行了特定的選擇,但我們提出的基本抽象和對它們進行組合的模式仍然可以應用於其他領域的神經網路。
▌理解隱藏層
近期關於可解釋性的大部分研究都涉及神經網路的輸入和輸出層。可以說,之所以會出現這樣的結果主要是由於這些層具有明確的含義:在計算機視覺中,輸入層代表輸入影像中每個畫素的紅色、綠色和藍色通道的值,而輸出層由類標籤和他們相關的概率組成。
然而,神經網路的強大之處在於它們的隱藏層,在每一層,網路都會發現新的輸入表示。在計算機視覺中,我們使用神經網路在影像中的每個位置執行相同的特徵檢測器。我們可以將每一層的已學習表示看作一個三維立方體。立方體中的每個單位都是一個啟用,或者神經元的數量。x軸和y軸對應影像中的位置,z軸是正在執行的通道(或檢測器)。
計算機視覺中神經網路每個隱藏層上所開發的的啟用立方體,立方體的不同切片使得我們能夠瞄準單個神經元、空間位置或通道的啟用。
理解這些啟用是很困難的,因為我們通常把它們當作抽象向量進行處理。
然而,通過特徵視覺化,我們可以將這個抽象向量轉換成更有意義的“語義詞典”(semantic dictionary)。
為了製作一個語義詞典,我們將每個神經元啟用與該神經元的視覺化進行配對,並根據啟用的大小對它們進行排序。啟用與特徵視覺化的結合改變了我們與基礎數學物件之間的關係。啟用現在對映到圖示的表示中,而不是抽象的索引中,其中很多表現形式類似於人類的創意,如“鬆軟的耳朵”、“狗鼻子”或“皮毛”。
語義詞典的強大之處不僅僅是在於它們擺脫了無意義的索引,還因為它們用典型的樣本表達了神經網路的已學習抽象。通過影像分類,神經網路學習了一組視覺抽象,因此影像是用於表示它們的最為自然的符號。如果我們使用音訊,那麼更為自然的符號很可能是音訊剪輯。這一點很重要,因為當神經元看起來符合人類的想法時,很容易將它們縮減為單詞。
但是,這樣做是一項有損耗的操作,即使對於相似的抽象來說,網路也可能學到了更深層次的細微差別。例如,GoogLeNet中具有多個鬆軟耳朵檢測器,它們可以檢測到耳朵的下垂度、長度和周圍環境的細微差別。也有可能存在視覺上相似的抽象,但我們對其缺乏良好的自然語言描述:例如,在陽光打到水面時,拍攝特定的閃光燈柱。
此外,網路可能會學習到對我們來說異乎尋常的新抽象概念,其中,自然語言會使我們完全失敗!一般來說,相較於人類的語言來說,典型的樣本是用來對神經網路所學習的外來抽象進行表示的一種更為自然的方式。
通過為隱藏層賦予意義,語義詞典為我們現有的可解釋性技術奠定了基礎,使其成為可組合的構建塊。就像它們的基礎向量一樣,我們可以對它們進行降維。在其他情況下,語義詞典使得我們進一步推進這些技術的發展。例如,除了我們目前使用輸入和輸出層執行的單向歸因(one-way attribution)外,語義詞典還使得我們能夠對特定的隱藏層進行屬性轉換。原則上,這項研究可以在沒有語義詞典的情況下完成,但是結果意味著什麼還不清楚。
▌網路看到了什麼?
用於檢測鬆軟的耳朵、狗鼻子、貓頭、毛茸茸的腿和草的檢測器。儘管有草地檢測器,但效果不是很好。
語義詞典為我們提供了一個關於啟用的細粒度觀察:每個單個神經元能夠檢測到什麼?在這種表示的基礎上,我們也可以將啟用向量作為一個整體進行考慮。我們可以對給定空間位置處發射的神經元組合進行視覺化,而不是對單個神經元進行視覺化。(具體來說,我們對影像進行優化,以最大化啟用點與原始啟用向量的點積。)
將這種技術應用於所有的啟用向量,使我們不僅可以看到網路在每個位置所檢測到的內容,而且還可以瞭解網路對整個輸入影像的理解程度。
而且,通過跨越層進行研究(例如“mixed3a”、“mixed4d”),我們可以觀察網路的理解是如何演變的:從檢測早期層中的邊緣,到後者中更復雜的形狀和物件部分。
MIXED3A
MIXED4A
MIXED4D
然而,這些視覺化忽略了一個關鍵資訊:啟用的大小。通過按照啟用向量的大小對每個單位的面積進行縮放,我們可以指出網路在該位置所檢測到的特徵強度:
MIXED3A
MIXED4A
MIXED4D
MIXED5A
▌如何組裝概念?
特徵視覺化有助於我們回答網路所檢測到的內容是什麼,但它並不能回答網路是如何對這些單獨的片段進行組合以做出最後的決策,或者為什麼做出這些決策。
歸因(Attribution)是一組通過解釋神經元之間的關係來回答這些問題的技術。有很多種歸因方法,但到目前為止,似乎沒有一個明確的正確答案。事實上,我們有理由認為我們目前的所有答案都不是完全正確的。我們認為有很多關於歸因方法的重要研究,但就本文而言,關於歸因的精確方法並不重要。我們使用一種相當簡單的方法,關係的線性近似(linearly approximating the relationship),可以很容易地用任何其他技術替代。未來對歸因的技術改進,理所當然地會對基於它們所構建的介面進行相應改善。
具有顯著圖的空間歸因
最常見的歸因介面稱為顯著圖(saliency map,一種簡單的熱圖,對引起輸出分類的輸入影像的畫素進行突出顯示。我們發現目前這種方法存在兩個缺陷。
首先,不清楚單一畫素是否是歸因的基本單位。每個畫素的含義與其他畫素糾纏在一起,對於簡單的可視轉換(例如,亮度、對比度等)不具有魯棒性,並且與輸出類等高階概念有很大的距離。其次,傳統的顯著圖是一種非常有限的介面型別,它們一次只顯示一個類的歸因,並且不允許你對單個點進行更深入地探究。由於它們沒有明確處理隱藏層,因此很難全面探索其設計空間。
通道歸因(channel attribution)
通過將歸因應用於隱藏層的空間位置,顯著圖對我們的啟用立方體進行徹底切割。。
切割立方體的另一種方法是通過通道而不是空間位置。這樣做可以讓我們執行通道歸因:每個檢測器對最終輸出的貢獻有多大?(這種方法類似於Kim等人所做的同時期研究工作,他們將歸因與已學習的通道組合結合在一起)。
可解釋性介面的空間
本文所介紹的介面思想將諸如特徵視覺化和歸因等構建塊結合在一起。將這些片段結合在一起不是一個任意的過程,而是遵循基於介面目標的結構。例如,如果介面強調網路所能識別的內容,則優先考慮它的理解如何進行發展的,或者專注於如何讓事情按照人類規模進行發展。為了評估這些目標,並理解這種權衡,我們需要能夠對可能的替代方案進行系統地考慮。
我們可以將介面視為各個元素的聯合。
▌這些介面的可信度如何?
為了可解釋性介面更加具有有效性,我們必須相信它們所告訴我們的故事。我們認為目前所使用的一系列構建模組存在兩個問題。首先,在不同的輸入影像中,神經元是否具有相對一致的含義,並且是否通過特徵視覺化進行準確地表示了呢?語義詞典以及建立在它們之上的介面,都是以這個問題的真實性為前提的。其次,歸因是否有意義,我們是否能夠相信目前擁有的任何歸因方法?
模型行為是非常複雜的,我們目前的構建模組只能使我們展示它的特定方面。未來可解釋性研究的一個重要方向是開發能更廣泛地覆蓋模型行為的技術。但是,即使有了這些改進,我們也認為可靠性的關鍵標誌將是不會誤導的介面。與展示的顯示資訊互動不應導致使用者隱含地繪製關於模型的不正確評估。毫無疑問,我們在這篇文章中所介紹的介面在這方面仍然有很大的改進空間。在機器學習和人機互動的交叉研究中,解決這些問題是很有必要的。
▌總結
存在著一個豐富的設計空間用於與列舉演算法進行互動,而且我們相信與神經網路進行互動的空間也同樣豐富。我們還有很多研究工作要做,以建立強大和值得信賴的可解釋性介面。如果我們取得了成功,可解釋性將成為一個強有力的工具,使我們能夠實現有意義的人類監督,並建立公平、安全和一致的人工智慧系統。
注:本文僅翻譯了原文的一部分內容,完整內容請參看原文
原文來源:distill
作者:Chris Olah、Arvind Satyanarayan、Ian Johnson、Shan Carter、Ludwig Schubert、Katherine Ye、Alexander Mordvintsev
原文連結:https://distill.pub/2018/building-blocks/
2018年3月30-31日,第二屆中國區塊鏈技術暨應用大會將於北京喜來登長城飯店盛大開場,50+區塊鏈技術領導人物,100+區塊鏈投資商業大咖,100+技術&財經媒體,1000+區塊鏈技術愛好者,強強聯合,共同探討最in區塊鏈技術,豪華乾貨禮包享不停。八折門票火熱搶購中!2018,未來已來,帶你玩轉區塊鏈。
AI科技大本營使用者群(計算機視覺、機器學習、深度學習、NLP、Python、AI硬體、AI+金融方向)正在招募中,後臺回覆:讀者群,聯絡營長,新增營長請備註姓名,研究方向。
☟☟☟點選 | 閱讀原文 | 檢視大會詳情相關文章
- 谷歌大腦提出概念啟用向量,助力神經網路可解釋性研究谷歌神經網路
- 談談機器學習模型的可解釋性機器學習模型
- 首席說|NLP場景應用中的可解釋性
- Vue.js可複用性 & 組合Vue.js
- 機器學習模型可解釋性的詳盡介紹機器學習模型
- 【機器學習】李宏毅——Explainable ML(可解釋性的機器學習)機器學習AI
- 阿里可解釋性推薦演算法應用阿里演算法
- 機器學習可解釋性工具箱XAI機器學習AI
- 深度學習模型可解釋性初探深度學習模型
- 幽默:可組合性是軟體的複利
- [php]apache的許可權解釋PHPApache
- XAI有什麼用?探索LLM時代利用可解釋性的10種策略AI
- 一組圖詮釋CNN及RNN的區別CNNRNN
- 第5章:可複用性的軟體構建方法 5.1可複用性的度量,形態和外部觀察
- 人工智慧下一個前沿:可解釋性人工智慧
- 相信你的模型:初探機器學習可解釋性研究進展模型機器學習
- 積分梯度-受監管行業的 AI 可解釋性梯度行業AI
- 第5章:可複用性的軟體構建方法 5.2面向複用的構造
- 深度學習的可解釋性研究(一):讓模型「說人話」深度學習模型
- 第6章:可維護性軟體構建方法 6.3可維護性構建技術
- 關於介面可維護性的一些建議
- 用簡單易懂的例子解釋隱馬爾可夫模型隱馬爾可夫模型
- java抽象類與介面的詳細詮釋Java抽象
- 構建可讀性更高的 ASP.NET Core 路由ASP.NET路由
- 雲上的可觀察性資料中臺,如何構建?
- 資料科學的下一個「超能力」:模型可解釋性資料科學模型
- Android Rxjava:圖解不一樣的詮釋AndroidRxJava圖解
- 用Spring組合自定義的註釋 - mscharhagSpring
- KDD 2019論文解讀:多分類下的模型可解釋性模型
- IEEE可解釋AI體系架構標準P2894正式釋出AI架構
- P型別詮釋----個人見解型別
- 構建可擴充套件的應用(一) (轉)套件
- 提高程式碼可讀性的 10 個註釋技巧
- 第6章:可維護性軟體構建方法 6.1可維護性的度量和構造原則
- 深度學習可解釋性差到底是什麼意思?深度學習
- 關於under any table/view 許可權的解釋View
- 面向可複用性和可維護性的設計模式設計模式
- Google新作:注意力機制是否真的能夠提供模型的可解釋性?Go模型