人工智能黑盒揭祕:深度神經網絡可視化技術

人工智能黑盒揭祕:深度神經網絡可視化技術

深度學習模型表述的難點與意義

深度神經網絡(Deep Neural Network,DNN)作為當前人工智能應用的首選模型,在圖像識別,語音識別,自然語言處理,計算生物,金融大數據等領域成效顯著。但深度神經網絡又被稱為“黑盒”模型,多層隱藏結構,數據 / 特徵矢量化,海量決策關鍵元等因素讓模型使用者犯難:模型決策的依據是什麼?應該相信模型麼?特別是對於金融,醫藥,生物等關鍵型任務,深度學習模型的弱解釋性成為人工智能項目落地的最大障礙。

雲腦科技自主研發的 Deepro 深度學習平臺利用可視化技術,集成了最前沿的各類深度神經網絡可視化組件,分析與顯化內部隱藏結構與模型輸出的關係,解決“黑盒”難題。

深度神經網絡的可視化

作為理解人工智能系統的主要技術,模型可視化是一個由來已久而且寬泛的話題。模型可視化與數據可視化屬於不同的範疇,數據可視化通過降維,主成分分析等技術來分析數據的結構,模型可視化針對的是對機器學習模型本身的理解。深度神經網絡又是最為複雜的機器學習模型,其可解釋性與可視化性更加具有挑戰性。網絡模型為什麼起作用,它是否足夠好,圖像識別是如何抽象出“貓”這個概念的?本段分析了幾種典型深度神經網絡可視化技術,詳盡展示了前沿的可視化原理以及解釋性效果。

雲腦 Deepro 採用的 CNN 可視化

作為最有效的神經網絡之一,CNN(Convolutional Neural Network, 卷積神經網絡)解決了大量複雜的機器學習實際問題。CNN 被廣泛應用於圖像識別,語音識別,語義識別等系統。最近的研究表明 CNN 在包含自動駕駛在內的自動複雜智能系統中也大展身手。CNN 結構通常由一個或多個卷積層和頂端的全連通層組成,同時也包括關聯權重和池化層(pooling layer)。這一結構使得卷積神經網絡能夠利用輸入數據的二維結構。 相比較其他深度、前饋神經網絡,CNN 需要的參數更少,能夠更好的利用 GPU 作大規模並行處理,使之成為一種頗具吸引力的深度學習結構。

人工智能黑盒揭祕:深度神經網絡可視化技術

舉個 CNN 的栗子

CNN 帶來了高精度的預測模型,但是同時也留下重要的問題,在複雜的多層非線性網絡結構中,究竟是什麼讓訓練好的 CNN 模型給出近乎完美的預測答案?從 CNN 被大規模研究使用以來,學者們持續不斷的探索可以理解和解釋 CNN 的方法,其中可視化技術被證明是解釋 CNN 內部結構最有效的方法之一。CNN 可視化技術包括,獨立單元激活的可視化,圖案和區域生成法,維度縮減空間表示法等。

獨立單元激活的可視化

理解 CNN 內部網絡的操作需要追蹤多層網絡中每一層的特徵狀態,而中間層的狀態可以通過一種叫做 DeconvNet(Deconvolutional Network,去卷積網絡)的技術反向映射回輸入層的圖像像素空間。DeconvNet 可以理解成另一個 CNN,利用同樣的網絡結構,包括卷積元,池化等,但相對於 CNN 是反向的。DeconvNet 主要作用是把 CNN 從像素學會的特徵給還原成像素。一個多層 CNN 網絡中每一層都會對應一個 DeconvNet,這樣做的好處是得到的 DeconvNet 也是連續的,可以從任意一個輸出層或者中間層反推到輸入層的對應像素。

人工智能黑盒揭祕:深度神經網絡可視化技術

CNN 與 DeconvNet

設定好 DeconvNet 後,如果對 CNN 網絡的某一個激活元感興趣,只需保留該單元而把其它單元設為 0 值後提交給 DeconvNet。DeconvNet 進行反池化,非線性化,去卷積化等操作,每一層 DeconvNet 重複此操作後直至到達最初的像素空間。

人工智能黑盒揭祕:深度神經網絡可視化技術

CNN 隱藏層的可視化

該圖展示了 CNN 在 ImageNet 訓練後得到的模型中每一層 CNN 中最強的激活特徵單元(灰度圖片),以及該激活單元通過 DeconvNet 後生成的像素圖(彩色圖片)。通過 DeconvNet 可以非常清楚的理解每一層 CNN 的作用。

通過 DeconvNet 分析得出,CNN 第一層訓練學習的是以“邊”為單位的基本元,第二層學習了“角”,“圓”等其他圖像元,之後的第三層則開始學習複雜圖案,而且會把相似的圖案歸類到一起。限於篇幅的原因後面更深的 CNN 層圖片就不放出了,通過 DeconvNet 可以分析出 CNN 第四層開始出現物體的特徵,比如“狗的臉部”,“鳥的腿部”等,第五層開始出現整個物體,以及物體的不同姿勢和形態。

DeconvNet 清楚的證明了 CNN 高效的學習能力:通過學習圖像中物體從小至大的特徵而歸納出物體的整體特徵。由此得出結論 CNN 網絡中海量的內部隱藏特徵元並不是隨機或者不可解釋的。該結論極大的增加了使用者對於 CNN 模型的理解,從而進一步信任模型的結果。DeconvNet 技術除了可以觀察解釋 CNN 內部結構外,還可以用來排除模型建立和調試時遇到的問題,以及通過分析內部結果來得到更好的模型。研究表明 CNN 模型一大優勢就是預測精確度與內部隱藏層的局部結構有很強的關聯。

圖案和區域生成法

除了從 CNN 內部結構著手的 DeconvNet,圖案和區域生成法也是有效的模型可視化手段。通過進行數值優化技術來生成圖案,CNN 預測的結果可以被更好的可視化並帶有解釋性。以常見的圖像分類問題來舉例,CNN 在大量圖像數據集上訓練得出一個分類器模型:給定的一張圖像會被標註為一個或多個類別,比如一張貓的照片會標記為貓或某種貓。對於一個特定的標註類,圖案生成法通過數值優化生成可以表述為 CNN 分類分數的圖像,也就是把 CNN 理解分類的過程給“畫”了出來,如下圖所示。

人工智能黑盒揭祕:深度神經網絡可視化技術

CNN 所理解的:洗衣機,鍵盤,狐狸,鵝,鴕鳥,轎車

從生成的圖像中可以看出 CNN 對於圖像分類的判斷與人對圖像的判斷有一定的相似之處,物體的部分特徵可以表述出來。但是 CNN 又學會了自有和特有的判定條件,而有一些條件從人類的角度上來看可能是顯而易見的錯誤,比如上圖中鵝有多於兩條腿等。通過圖像生成可視化可以幫助理解 CNN 模型,從而進行更好的排錯和優化。

圖像生成法的另一類應用是圖像的區域識別。區域識別是圖像識別應用中廣泛需求的技術,在安防人臉識別,自動駕駛環境識別等應用中是識別準確的關鍵步驟。圖像生成法先建立 CNN 分類與圖像空間的映射關係,通過反向梯度傳導來更新映射關係中的權重,最終得到一個完整的類顯著映射集。給定一個 CNN 指定分類和原始輸入圖像,該映射集可以生成特徵圖案。

人工智能黑盒揭祕:深度神經網絡可視化技術

映射集生成灰度圖案,白色部分是 CNN 標註的顯著區域

利用單次反向梯度傳導就可以快速得到上圖中的映射集,從而可以顯示出 CNN 判斷分類的特徵和區域。比如通過生成法可以理解 CNN 學習的過程同時包含從圖像中找到小狗的位置,並加以判斷這是一隻小狗。用生成法產生的映射集可以進一步結合 GraphCut 顏色分割技術來進行圖像區域識別和物體分割。 通過生成法產生的映射集劃定了圖像的大體邊界,加上顏色分割技術的細節修正可以快速高效的識別物體區域。

人工智能黑盒揭祕:深度神經網絡可視化技術

原圖(左)映射生成圖(中 1 中 2)產生分割圖(右)

生成法利用 CNN 分類模型實現了區域識別。原圖中的物體不僅被標識為正確類別,同時也標註出物體的區域和邊界。整個過程又可以通過映射集可視化。

雲腦 Deepro 採用的 RNN 可視化

RNN(Recurrent Neural Network,循環神經網絡)可以和 CNN 並稱為當前兩大最熱門的深度神經網絡。RNN 可以描述動態時間行為,因為和前饋神經網絡(feedforward neural network)接受較特定結構的輸入不同,RNN 將狀態在自身網絡中循環傳遞,因此可以接受更廣泛的時間序列結構輸入。RNN 與其衍生的 LSTM,GRU 網絡被廣泛應用於時序數據問題中,包括語言模型,手寫識別,語音識別,機器翻譯,視頻識別等。

RNN 結構由來已久,Werbos 在 1988 年就提出用 RNN 學習時序任務。RNN 的循環元展開是深度神經網絡中最“深”的網絡結構,過深的網絡結構容易導致權重梯度成指數級爆炸或消失,從而使模型失去學習的能力。因此 RNN 發展出很多強化變種,其中最成功的要數 LSTM(Long Short Term Memory,長短期記憶)和 GRU(Gated Recurrent Unit)。LSTM 和 GRU 引入 Gate 機制來控制記憶/遺忘時間序列中的信息,從而使模型更加有效的學習更長(深)的時序數據。

人工智能黑盒揭祕:深度神經網絡可視化技術

和很多深度學習結構一樣,RNN 可以提供一個有效的預測模型,但是複雜的結構讓使用者望而卻步。時序數據有沒有規律,時間關鍵點在哪裡,哪些信息被記憶了,哪些被遺忘了,等等有諸多問題隱藏在黑箱之中。要想更好的理解 RNN,可視化技術是必不可少的,但是相比於 CNN 結構,RNN 可視化難度更大,網絡中間層的控制和相互依賴性更高。這裡列出一種基於 LSTM 的可視化技術,解釋元與激活門統計法。

LSTM 解釋元與激活門統計

從原理分析,LSTM 可以記錄較長時間的時序信息,以及持續追蹤當前時間的數據。但是在真實數據的模型上這種解釋元理論很難被直接證明。研究通過字母級別語言模型建立的任務,進行對 RNN,LSTM,GRU 定性分析,加以對 Gate 激活的統計和比較,可以可視化出 LSTM 中的長期有效記憶,給出了一個合理的解釋。

人工智能黑盒揭祕:深度神經網絡可視化技術

LSTM 可視化標記文本和代碼結構

舉例來說,LSTM 中某個單位元專注學習了文本輸入的行數,數值從行始開始遞減至行尾為 0,然後開始新的一行。另一個元記錄並保證了成對出現的引號,括號等標點符號。

LSTM 文本標記可以用來理解 RNN 的內部結構,也可以用來做模型分析以更好的優化模型。

人工智能黑盒揭祕:深度神經網絡可視化技術

LSTM 錯誤分類分析

同樣是字母級別語言模型實例,在上圖中預測的錯誤原因得到分析,錯誤的模型結果可以通過標記可視化分解為多類原因。N-gram 佔據 18% 的錯誤,意味著模型記錄的字母序列過短;生僻字佔據 9%,意味著需要增加訓練覆蓋率;空格,換行等標點佔據了 37% 的錯誤,意味著 LSTM 需要更長的時序輸入,或者需要加入斷章斷句等層次模型。可視化技術極大提高了模型的解釋性,為提升模型效果提供了最直接的方案。

人工智能模型可視化實例

醫療影像診斷網絡

近年來深度神經網絡在生物與醫療影像領域的應用有著爆發式的增長。圖像識別,圖像分割極大的利用了大數據技術協助醫生作出診斷。作為更進一步的發展,自動診斷系統也嶄露頭角,連連創造驚喜。GOOGLE 的糖尿病視網膜病變診斷系統得出的算法準確度已經高於美國委員會認證的眼科醫生的檢查結果。IBM 的沃森腫瘤診斷機器人已經入住海內外多家腫瘤治療醫院,成為醫療 AI 商業化的標杆。

醫療診斷本質上是一個標準的深度學習分類問題,然而普通的深度神經網絡生成的模型隱藏了關鍵判斷依據,缺乏解釋性,無法被醫療系統和大眾接受。只有具有可視化可解釋性的模型才是醫療 AI 可用的模型。這裡介紹一種綜合網絡結構 MDNet,可以讀取醫療影像,生成診斷報告,同時可以根據症狀描述獲取對應的影像,並利用網絡注意力機制提供診斷的依據。實例採用 BCIDR 膀胱癌診斷報告數據集。

人工智能黑盒揭祕:深度神經網絡可視化技術

MDNet:影像通過 CNN 生成特徵後接入 AAS 模塊,最後通過 LSTM 生成診斷報告

為了更好的模型效果和更容易的解釋性,模型整合 CNN,AAS 與 LSTM 幾大模塊。圖像輸入部分利用最新的 ResNet 網絡作深層連接,並且利用 ensemble-connection 來連接 ResNet 的各個殘差部分便於模型表述。在圖像處理層與語言模型層之間的是 AAS 模塊,基於注意力機制原理來增加訓練的有效性。最終的診斷報告通過 LSTM 語言模型生成,其中有 LSTM 專注於挖掘訓練數據中有區別的病症描述,而其他 LSTM 共享該 LSTM 的結果。這樣做的好處是每一份數據的學習都可以增加診斷知識庫,從給最終生成報告提供幫助。

人工智能黑盒揭祕:深度神經網絡可視化技術

MDNet 診斷結果以及分析

如上圖所示,對於給定的 CT 照片,MDNet 可以給出膀胱癌的診斷報告。左圖表示診斷報告不僅給出了診斷結論,對於結論中每一個關鍵詞也可以劃出原圖中對應區域作為判斷依據。右圖標示了不同級別的癌症判斷,並且通過熱力圖展示了判斷對應的區域。MDNet 可以有效的協助醫療機構進行大量診斷排查工作,極大的加強腫瘤防治效果。

結語

李開復在題為《人工智能的黃金時代》的萬字演講中提到,深度學習有四點挑戰,分別是平臺化、數據、計算及可解釋性。人工智能的黃金時代已經到來,深度學習已經在圖像,語音,大數據,自動駕駛等諸多領域佔絕對優勢。相較而言,模型可解釋性的研究還處於起步階段。雲腦科技的小夥伴們潛心學習與研發更高效易用的 AI 平臺,算法與可視化技術,助力深度學習應用的推廣與落地,致力於推動整個人工智能產業的發展進程。

問答環節

問題:1、高維可視化一般是降維,還有其他處理的手段嗎?2、降維的手段一般有 PCA、t-SNA、自定義投影,這三種方式可視化後應重點關注哪些拓撲不變量。3、對 Google 的 embedding project 有什麼看法?

答:這 3 個問題一併回答了,所謂的可視化技術分為數據可視化與模型可視化兩個範疇,提問涉及的主要是數據可視化方面。通過降維,主成分分析等手段分析數據本身的結構,並且可視化到低緯空間,這也是非常有意義的數據分析方法。一些非監督學習也可以幫助數據可視化分析。今天分享的主題是深度學習模型的可視化,是針對一類深度神經網絡,分析其模型的組成部分,與數據的結構分佈並沒有關係。模型的可視化可以幫助確認模型的準確性,協助理解與優化模型。

問題:最近正好在看 lstm 的東西,但一直沒弄明白,lstm 的輸入到底是什麼樣子?對於 mlp,每次輸入的向量就好比 Excel 中的一行數據,但是 lstm 呢

答:lstm 或者 rnn 針對的是時序數據,常見的比如天氣變化,股票價格,隨著時間變動。如果變成向量輸入 mlp 就失去數據內部有關時間的前後關係信息。lstm 比較常用在自然語言處理,翻譯等方向,人類的語言自然是需要考慮上下文的,一整句話語序不同意思可能就不同了,而 rnn 和 lstm 都可以保持輸入數據的時間序列,從而真正的學出時序相關的規律。

問題:有個問題:請問雲腦公司的這些深度學習可視化技術是以服務的形式付費開放給用戶嘛,那麼有開源一些好玩的東西嗎,謝謝老師

答:雲腦科技提供 Deepro 深度學習平臺,主要應用在企業級大數據人工智能服務。我們的服務現在主要是以定製為主,主要包括金融,通信,能源與人力資源等行業。現在平臺包含的可視化技術還沒有直接針對個人用戶的開放,如果企業用戶有興趣歡迎隨時垂詢。

問題:國內目前將 AI 用於醫學圖像識別診斷的現狀如何?

答:醫療圖像識別是 AI 非常活躍的方向,相比較人臉識別,物品識別等應用,醫療圖像識別屬於高精度高風險應用,需要更加完善的技術支持,現在主要是與醫療機構配合診斷。今天分享的可視化與解釋性在醫療方向的應用與需求是走在最前沿的。一個可以分析結果的 AI 系統才可以算是完整的醫療 AI 系統。

問題:CNN 可視化是基於 matt zeiler 的那篇論文嘛?rnn 可視化初看下來不是很明白有沒有比較推薦的實施腳本 github 連接,謝謝

答:CNN 的 DeconvNet 介紹是基於 Matt 的論文,AlexNet 在 2012 年 ImageNet 奪冠改變整個世界對於深度學習的看法,Matt 的分析等於是用實驗證明了 CNN 的有效性,是分析 CNN 結構最主要的方法之一。RNN 的可視化可以參考 Andrej Karpathy 的 VISUALIZING AND UNDERSTANDING RECURRENT NETWORKS

問題:圖像遷移風格是深度學習可視化的一種應用嗎?比如類似 prisma. 雲腦有沒有相關研究分享?

答:這個問題很有趣。圖像遷移採用的 VAE 等技術可以理解為把網絡已經學會的圖像風格應用到新的圖像上。有一點像是 CNN 可視化中的圖案生成法。如果把圖像遷移到一張空白的新圖像上,可以看作是某種程度上的可視化。

問題:CNN 的可視化似乎都集中在幾年前,近幾年幾乎看不到 CNN 可視化的文章了,同時 CNN 的層數越來越多、結構也越來越複雜,我想知道 CNN 可視化未來的發展方向是什麼?最近沒有什麼 CNN 可視化的文章,是因為可視化太難做了,還是因為找不到什麼可以做的了?

答:CNN 確實是各種 ANN 裡可視化研究開始比較早的,近期的 CNN 可視化比較偏向於垂直領域的 CNN 應用可視化。確實 ResNet 的出現使得神經網絡達到百層,千層的深度,利用 layer by layer 的可視化分析可行性就很差了。我們的 AI 算法小組保持追蹤更高效的可視化方法研究,有興趣的話可以加好友一起學習

講師介紹

樊向軍:清華大學學士,日本東京大學與美國華盛頓州立大學雙碩士。第 33 屆亞洲、國際物理奧賽雙料金牌得主。在美國硅谷高通等公司有著多年超高性能計算仿真軟件設計開發經驗,獲得高通 Qualstar Diamond 傑出貢獻獎。目前作為雲腦科技算法團隊的主要成員,進行金融、通信、能源等大數據領域的核心人工智能算法研發與系統設計工作。

相關推薦

推薦中...