《VISUALIZING AND UNDERSTANDING RECURRENT NETWORKS 》論文閱讀筆記

本人原創,轉載標明來源。

1 論文主要內容

循環神經網絡(RNNs),特別是一種具有長短期記憶(LSTM)的變體,由於在涉及序列數據的廣泛機器學習問題中的成功應用而重新引起人們的興趣。 LSTM在實踐中表現出了非常好的結果,但我們對其性能的來源和限制仍知之甚少。爲了增強對LSTM的理解,論文作者使用字符級別的語言模型作爲可解釋試驗檯,分析了LSTM的表示、預測和錯誤類型。通過分析,本文揭示了可解釋單元的存在,這些單元可跟蹤長期依賴關係,例如行長,引號和括號。此外,通過與n- gram模型的全面比較,本文進一步量化了LSTM預測,發現在需要長距離推理的字符上LSTM表現明顯更好。最後,本文對剩餘錯誤進行了分析,並提出了需要進一步研究的方向。

2 價值座標

過去的一些分析都是靠最終測試集上的全局困惑度來評價 LSTM 的效果,並沒有在真實數據上進行分析,也不夠直觀。本文提出的LSTM分析方法克服了這些問題,加深了對LSTM性能提高原因和侷限性的理解。

雖然在修改或擴展基本LSTM 架構上做了大量工作,以前的研究卻很少關注對LSTM表示和預測的理解。本文的工作提供了對LSTM的預測及其對真實數據的學習表示的第一次經驗探索。通過對LSTM的可視化和深入理解,科研人員可以開展更深入的研究,不斷優化LSTM模型。

3 知識地圖

(1)當時對LSTM的理解狀況如何?有何限制?

(2)RNNLSTMGRU三種模型進行實驗對比,哪種模型效果更好?

(3)LSTM在實踐中性能得到非常好的提升,提升的原因是?

(4)本文LSTM內部機制有哪些?

(5)LSTMn-NN模型、n-gram模型相比,遠程交互的能力有什麼區別?

(6)LSTM進行錯誤分析,LSTM的錯誤類型有哪些?

(7)如何減少LSTM的錯誤,改善對某種類型的錯誤表現?

 

4 結構

  1. CNN目前得到了廣泛的應用,其應用領域有哪些?

CNN多應用在涉及序列數據的問題中,比如語言建模、手寫識別、文本生成、機器翻譯、語音識別、視頻分析、圖像描述等。

2.在之前的研究中,數據上有什麼侷限性?於此本文實驗有哪些改進?

過去的一些分析都是靠最終測試集上的全局困惑度來評價 LSTM 的效果,並沒有在真實數據上進行分析,也不夠直觀。因此,本文實驗採用的數據集都是真實數據,即《戰爭與和平》文本和《linux內核》代碼,分別爲 3,258,246 字和6,206,996 字。

3.簡單介紹下RNN、LSTM和GRU這三種模型?

RNN:標準 RNN 中的重複模塊包含單一的層,即tanh層。RNN遞歸形式爲

其中,每層上的參數矩陣爲每層的參數矩陣,維數爲[n×2n]。

LSTM: 一方面LSTMs被設計用來緩解消失梯度問題。除了隱藏的狀態向量外,LSTMs還維護一個內存向量。在每個時間步驟中,LSTM可以使用顯式選通機制選擇讀取、寫入或重置單元。更新的確切形式如下:

是一個[4n×2n]矩陣。三個向量I,f,o被認爲是二進制門,分別控制每個存儲單元是否更新,是否重置爲零,以及是否在隱藏向量中顯示其局部狀態。向量g排列在-1和1之間,用於額外修改存儲內容。

GRU:在2015年被提議作爲LSTM的一個更簡單的替代方案,其形式爲:

其中,的維數是[2n×2n],而的維數是[n×n]. GRU是先計算一個候選隱藏向量,然後與向量z內插得出結果。

 

4.首先從幾種循環網絡模型來展開分析,將CNN、LSTM和GRU進行對比實驗,實驗模型怎樣安排?實驗過程是?

將CNN、LSTM和GRU的層數分別設置爲1、2和3,隱藏層大小分別設置爲64、128、256和512,一共36個實驗模型。用上述模型在兩個數據集上訓練語言模型,最後在測試集上計算交叉熵損失,對比三類共 36 個模型之間的結果。

 

5.上面CNN、LSTM和GRU對比實驗的結論是什麼?

上圖是上一問中實驗的測試集結果。從圖中可以看出,模型層數至少爲2纔有比較好的性能。就隱藏層大小來說,在可行的範圍內,各個模型的隱藏層大小越大,交叉熵損失越小,模型能行越好。也就是說,多個隱藏層模型比單個隱藏層模型的效果要好。另外,圖中每一行的最優性能模型既有LSTM,也有GRU,但是很少是RNN。對比結果表明,LSTM 和 GRU 之間性能難分伯仲,但都顯著好於 RNN。

 

6.根據作者分析,LSTM的哪些設計細節是保存長距離信息的關鍵之處?

記憶元件(memory cells)、門機制(gate mechanism)和常量錯誤木馬(Constant Error Carousel-CEC)。LSTM共有三種門:輸入門(input gate)、輸出門(output gate)和遺忘門(forget gate)。門主要起到開關的作用,它可以選擇性的讓信息通過。門機制的存在,就使得LSTM能夠顯式地爲序列中長距離的依賴建模。LSTM把原本RNN的單元改造成一個叫做CEC的部件,這個部件保證了誤差將以常數的形式在網絡中流動,不會出現梯度爆炸或者梯度消失的問題。LSTM的基本單元稱爲記憶元件,它是在CEC的基礎上擴展而成的,LSTMs原則上可以使用記憶元件來記住遠程信息,並跟蹤當前正在處理的文本的各種屬性。

7.怎樣理解LSTM和GRU模型中的門控機制?(這是補充的論文外內容)

門可以實現選擇性地讓信息通過,主要是通過一個 sigmoid 的神經層 和一個逐點相乘的操作來實現的。LSTM中共有三種門:遺忘門(forget gate)、輸入門(input gate)和輸出門(output gate)。遺忘門是將細胞狀態中的信息選擇性的遺忘;輸入門是將新的信息選擇性的記錄到細胞狀態中;輸出門會把前面的信息保存到隱層中去。GRU 有兩個有兩個門,即一個重置門(reset gate)和一個更新門(update gate)。從直觀上來說,重置門決定了如何將新的輸入信息與前面的記憶相結合,更新門定義了前面記憶保存到當前時間步的量。

 

8.LSTM中三個GRU中兩個“門“的滲透統計圖說明了什麼?

 

 

在上圖中,如果門的激活度分別小於0.1或大於0.9,則爲左飽和或右飽和
。當遺忘門值超過0.9的比例很大時的細胞(cells),說明它能一直記住比較早之前的信息當輸入們值超過0.9的比例很大時的神經元,說明它對當前輸入比較敏感。當輸出門的值超過0.9的比例很大時的神經元,控制輸出大小。對LSTM來說,第一層其比例較密集地分佈在 0 附近,說明大部分都是在 0.1 到 0.9 之間,這是不飽和的情形。第二層和第三層一些細胞遺忘門值超過0.9的比例超級大,一直記着很早以前的信息。對GRU來說, 更新門對應於LSTM 中的輸入門與遺忘門,重置門直接作用於前面的隱藏狀態。第一層的更新門值普遍比較大而重置門值普遍比較小。說明GRU 的第一層幾乎不怎麼使用舊的信息,即使到高層後也更傾向於使用當前輸入。結合兩者來說,在多層的 LSTM/GRU 中,高層的細胞都開始分化,會有一部分傾向於接收新信息,有一部分則傾向於記住舊的信息。

 

 

 

9.對比LSTMn-gram在追蹤遠距離信息上的能力區別?舉例分析

LSTM 追蹤遠距離信息和建模長程依賴的能力大大超過 n-gram 模型。


1.上圖分別在
《linux內核》數據集和《戰爭與和平》數據集上計算的分配給正確字符的平均概率統計圖,在這裏挑選了10個字符的情況展示。在左圖中,也就是在《Linux內核》數據集上,LSTM比20-gram模型在用於構造C程序的特殊字符(包括空格和括號)上顯示了更大的優勢。在《戰爭與和平》數據集上,有一個有趣的長期依賴性現象,大約每70個字符會出現一次回車字符。從右圖中可以看出LSTM非常擅長處理這種現象。

2.上圖表示在對《Linux內核》文本數據集上推理右大括號( “}”)的平均概率。根據上圖數據,可看出,在“{“與·”}“之間距離小於20時,LSTM與20-gram模型性能差異不大。之後20-gram模型性能幾乎保持不變,而LSTM性能大幅度提升,序列長度爲60時到達頂峯,但之後其性能增量會隨着時間的推移而緩慢衰減,難以追蹤依賴。

 

10.n-NN模型對比,在LSTM訓練迭代的過程中,對信息距離的敏感性是怎樣變化的?

如圖所示,本文將3LSTMn-NN模型的相似度進行對比,左圖是迭代過程中的平均KL散度線,右圖是迭代過程中的測試集損失線。在前期的訓練迭代中,LSTM的表現與1-NN模型相似,後偏離,再依次與2-NN、3-NN和4-NN模型相似。由實驗可得,LSTM的性能隨着長期依賴的增長而增強。總的來說,LSTM 在迭代訓練的過程中,首先建模了短程依賴,然後在此基礎上逐漸地學習到對長程依賴的建模能力。

 

 

 

11.LSTM在測試數據集《戰爭與和平》文本上的錯誤分類是?

1.n-gram 錯誤:1-9 階 n-gram 模型能預測正確但 LSTM 預測失敗的部分。

2.動態n-long記憶錯誤:在文本預測時,第一次出現的字符在後面第二次出現的可能性非常大。但是LSTM似乎沒有學習這個算法。

3罕見詞錯誤: 既由詞頻不大於 5 的詞導致的錯誤。這部分錯誤通過擴充數據集和 pretraining 是可以得到緩解的。

4詞建模錯誤: 在遇到空格、換行、引號等詞分隔符後,預測錯了下一個詞的第一個字符,和前面個動態長期記憶錯誤不一樣的是,這個相當於在前面的詞的基礎上要選擇一個詞,而前面那個相當於是已經知道是什麼詞了,但是要補全它,這兩者的信息量是完全不一樣的

5.標點符號預測錯。

6.最後剩餘的錯誤稱爲 boost error。

 

12.對LSTM減少錯誤有什麼建議嗎?

1. 可以通過增大訓練數據集或者採用無監督預訓練能提高 LSTM對罕見詞的效果,減少罕見詞錯誤。

2. 如果增大模型大小,將會顯著減小了n-gram 錯誤,但對其他類型的錯誤卻沒有明顯的改善,這說明僅僅增大模型大小是不夠的,可能需要設計更好、更新的結構。

 

13.本論文得出的結論是?

答:本文使用字符級語言模型作爲可解釋的測試平臺來分析循環神經網絡中的預測、訓練動態表示和錯誤類型。特別是,本文的質化可視化實驗、細胞激活統計以及與n-gram模型的比較表明,這些網絡學習到了真實世界數據的強大的、可解釋的遠程交互。本文的錯誤分析將交叉熵損失分解爲幾個可解釋的類別,並說明了目前的一些限制,提出進一步的研究領域。另外,本文發現擴大模型幾乎消除了n-gram類別中的錯誤,這表明可能需要進一步的架構創新來解決剩餘的錯誤。

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