選自 ArXiv,做者:Bo-Jian Hou, Zhi-Hua Zhou,機器之心編譯,參與:思源、曉坤。算法
除了數值計算,你真的知道神經網絡內部在作什麼嗎?咱們一直理解深度模型都靠裏面的運算流,但對因而不是具備物理意義、語義意義都仍是懵懵懂懂。尤爲是在循環神經網絡中,咱們只知道每個時間步它都在利用之前的記憶抽取當前語義信息,但具體到怎麼以及什麼的時候,咱們就無能爲力了。在本文中,南京大學的周志華等研究者嘗試利用有限狀態機探索 RNN 的內在機制,這種具備物理意義的模型能夠將 RNN 的內部流程展示出來,並幫助咱們窺探 RNN 到底都幹了些什麼。網絡
結構化學習(Structure learning)的主要任務是處理結構化的輸出,它不像分類問題那樣爲每一個獨立的樣本預測一個值。這裏所說的結構能夠是圖、序列、樹形結構和向量等。通常用於結構化輸出的機器學習算法有各類機率圖模型、感知機和 SVM 等。在過去的數十年裏,結構化學習已經普遍應用於目標追蹤、目標定位和語義解析等任務,而多標籤學習和聚類等不少問題一樣與結構化學習有很強的關聯。框架
通常來講,結構化學習會使用結構化標註做爲監督信息,並藉助相應的算法來預測這些結構化信息而實現優良的性能。然而,隨着機器學習算法變得愈來愈複雜,它們的可解釋性則變得愈來愈重要,這裏的可解釋性指的是如何理解學習過程的內在機制或內部流程。在這篇論文中,周志華等研究者重點關注深度學習模型,並探索如何學習這些模型的結構以提高模型可解釋性。機器學習
探索深度學習模型的可解釋性一般都比較困難,然而對於 RNN 等特定類型的深度學習模型,咱們仍是有方法解決的。循環神經網絡(RNN)做爲深度神經網絡中的主要組成部分,它們在各類序列數據任務中有很是普遍的應用,特別是那些帶有門控機制的變體,例如帶有一個門控的 MGU、帶有兩個門控的 GRU 和三個門控的 LSTM。工具
除了咱們熟悉的 RNN 之外,還有另外一種工具也能捕捉序列數據,即有限狀態機(Finite State Automaton/FSA)。FSA 由有限狀態和狀態之間的轉換組成,它將從一個狀態轉換爲另外一個狀態以響應外部序列輸入。FSA 的轉換過程有點相似於 RNN,由於它們都是一個一個接收序列中的輸入元素,並在相應的狀態間傳遞。與 RNN 不一樣的是,FSA 的內部機制更容易被解釋,由於咱們更容易模擬它的過程。此外,FSA 在狀態間的轉換具備物理意義,而 RNN 只有數值計算的意義。性能
FSA 的這些特性令周志華團隊探索從 RNN 中學習一個 FSA 模型,並利用 FSA 的自然可解釋性能力來理解 RNN 的內部機制,所以周志華等研究者採用 FSA 做爲他們尋求的可解釋結構。此外,這一項研究與以前關於結構化學習的探索不一樣。以前的方法主要關注結構化的預測或分類結果,這一篇文章主要關注中間隱藏層的輸出結構,這樣才能更好地理解 RNN 的內在機制。學習
爲了從 RNN 中學習 FSA,並使用 FSA 解釋 RNN 的內在機制,咱們須要知道如何學習 FSA 以及具體解釋 RNN 中的什麼。對於如何學習 FSA,研究者發現非門控的經典 RNN 隱藏狀態傾向於構造一些集羣。可是仍然存在一些重要的未解決問題,其中之一是咱們不知道構造集羣的傾向在門控 RNN 中是否也存在。咱們一樣須要考慮效率問題,由於門控 RNN 變體一般用於大型數據集中。對於具體解釋 RNN 中的什麼,研究者分析了門控機制在 LSTM、GRU 和 MGU 等模型中的做用,特別是不一樣門控 RNN 中門的數量及其影響。鑑於 FSA 中狀態之間的轉換是有物理意義的,所以咱們能夠從與 RNN 對應的 FSA 轉換推斷出語義意義。測試
在這篇論文中,周志華等研究者嘗試從 RNN 學習 FSA,他們首先驗證了除不帶門控的經典 RNN 外,其它門控 RNN 變體的隱藏狀態一樣也具備自然的集羣屬性。而後他們提出了兩種方法,其一是高效的聚類方法 k-means++。另一種方法根據若相同序列中隱藏狀態相近,在幾何空間內也相近的現象而提出,這一方法被命名爲 k-means-x。隨後研究者經過設計五個必要的元素來學習 FSA,即字母表、一組狀態、初始狀態、一組接受狀態和狀態轉換,他們最後將這些方法應用到了模擬數據和真實數據中。設計
對於人工模擬數據,研究者首先表示咱們能夠理解在運行過程學習到的 FSA。而後他們展現了準確率和集羣數量之間的關係,並表示門控機制對於門控 RNN 是必要的,而且門越少越好。這在必定程度上解釋了爲何只有一個門控的 MGU 在某種程度上優於其它門控 RNN。3d
對於情感分析這一真實數據,研究者發如今數值計算的背後,RNN 的隱藏狀態確實具備區分語義差別性的能力。由於在對應的 FSA 中,致使正類/負類輸出的詞確實在作一些正面或負面的人類情感理解。
論文:Learning with Interpretable Structure from RNN
摘要:在結構化學習中,輸出一般是一個結構,能夠做爲監督信息用於獲取良好的性能。考慮到深度學習可解釋性在近年來受到了愈來愈多的關注,若是咱們能重深度學習模型中學到可解釋的結構,將是頗有幫助的。在本文中,咱們聚焦於循環神經網絡(RNN),它的內部機制目前仍然是沒有獲得清晰的理解。咱們發現處理序列數據的有限狀態機(FSA)有更加可解釋的內部機制,而且能夠從 RNN 學習出來做爲可解釋結構。咱們提出了兩種不一樣的聚類方法來從 RNN 學習 FSA。咱們首先給出 FSA 的圖形,以展現它的可解釋性。從 FSA 的角度,咱們分析了 RNN 的性能如何受到門控數量的影響,以及數值隱藏狀態轉換背後的語義含義。咱們的結果代表有簡單門控結構的 RNN 例如最小門控單元(MGU)的表現更好,而且 FSA 中的轉換能夠獲得和對應單詞相關的特定分類結果,該過程對於人類而言是可理解的。
本文的方法
在這一部分,咱們介紹提出方法的直覺來源和方法框架。咱們將 RNN 的隱藏狀態表示爲一個向量或一個點。所以當多個序列被輸入到 RNN 時,會積累大量的隱藏狀態點,而且它們傾向於構成集羣。爲了驗證該結論,咱們展現了在 MGU、SRU、GRU 和 LSTM 上的隱藏狀態點的分佈,如圖 1(a)到(d)所示。
圖 1:隱藏狀態點由 t-SNE 方法降維成 2 個維度,咱們能夠看到隱藏狀態點傾向於構成集羣。
圖 2 展現了整個框架。咱們首先在訓練數據集上訓練 RNN,而後再對應驗證數據 V 的全部隱藏狀態 H 上執行聚類,最後學習一個關於 V 的 FSA。再獲得 FSA 後,咱們可使用它來測試未標記數據或直接畫出圖示。再訓練 RNN 的第一步,咱們利用了和 [ZWZZ16] 相同的策略,在這裏忽略了細節。以後,咱們會詳細介紹隱藏狀態聚類和 FSA 學習步驟(參見原文)。
完整的從 RNN 學習 FSA 的過程如算法 1 所示。咱們將該方法稱爲 LISOR,並展現了兩種不一樣的聚類算法。基於 k-means++的被稱爲「LISOR-k」,基於 k-means-x 的被稱爲「LISOR-x」。經過利用構成隱藏狀態點的聚類傾向,LISOR-k 和 LISOR-x 均可以從 RNN 學習到良好泛化的 FSA。
實驗結果
在這一部分,咱們在人工和真實任務上進行了實驗,並可視化了從對應 RNN 模型學習到的 FSA。除此以外,在兩個任務中,咱們討論了咱們如何從 FSA 解釋 RNN 模型,以及展現使用學習到的 FSA 來作分類的準確率。
第一我的工任務是在一組長度爲 4 的序列中(只包含 0 和 1)識別序列「0110」(任務「0110」). 這是一個簡單的只包含 16 個不一樣案例的任務。咱們在訓練集中包含了 1000 個實例,經過重複實例來提升準確率。咱們使用包含全部可能值且沒有重複的長度爲 4 的 0-1 序列來學習 FSA,並隨機生成 100 個實例來作測試。
第二我的工任務是肯定一個序列是否包含三個連續的 0(任務「000」)。這裏對於序列的長度沒有限制,所以該任務有無限的實例空間,而且比任務「0110」更困難。咱們隨機生成 3000 個 0-1 訓練實例,其長度是隨機肯定的。咱們還生成了 500 個驗證明例和 500 個測試實例。
如表 2 所示,咱們能夠看到在從 MGU 學習到的 FSA 的平均集羣數量老是能以最小的集羣數量達到準確率 1.0。集羣數量爲 65 意味着 FSA 的準確率在直到 n_c 爲 64 時都沒法達到 1.0。每次試驗的最小集羣數量和平均最小集羣數量加粗表示。
圖 4:在任務「000」訓練 4 個 RNN 時學習獲得的 FSA 結構圖示。集羣數量 k 由 FSA 首次達到準確率 0.7 時的集羣數量決定。