深度神經網絡可視化技術

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

深度神經網絡(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 平臺,算法與可視化技術,助力深度學習應用的推廣與落地,致力於推動整個人工智能產業的發展進程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章