1. 程式人生 > >深度學習(十)之序列建模:迴圈和遞迴網路②

深度學習(十)之序列建模:迴圈和遞迴網路②

本文繼續簡述上一篇的內容:

10.6 遞迴神經網路

遞迴神經網路代表迴圈網路的另一個擴充套件,它被構造為深的樹狀結構而不是RNN的鏈狀結構,因此是不同型別的計算圖。遞迴網路的典型計算圖如下圖所示。

0?wx_fmt=png

遞迴網路已成功地應用於輸入是資料結構的神經網路,如自然語言處理和計算機視覺。

遞迴網路的一個明顯優勢是,對於具有相同程度τ的序列,深度可以急劇地從τ減少為σ(log τ),這可能有助於解決長期依賴。一個懸而未決的問題是如何以最佳的方式構造樹。一種選擇是使用不依賴於資料的樹結構,如平衡樹。

10.7 長期依賴的挑戰

學習迴圈網路長期依賴的數學挑戰。根本問題是,經過許多階段傳播後的梯度傾向於消失(大部分情況)或爆炸(很少,但對優化過程影響很大)。即使我們假設迴圈網路是引數穩定的(可儲存記憶,且梯度不爆炸),但長期依賴的可能來自比短期相互作用指數小的權重。

10.8 回聲狀態網路

0?wx_fmt=png 到 0?wx_fmt=png 的的權重對映以及從0?wx_fmt=png 到 0?wx_fmt=png 的輸入權重對映是迴圈網路中最難學習的引數。

為了避免這種困難的方法時設定迴圈隱藏單眼,使其能很好地捕捉過去輸入歷史,並且值學習了輸出權重。回聲狀態網路或ESN,以及流體狀態機分別獨立地提出了這種想法。

ESN和流體狀態機都被稱為儲層計算,因為隱藏單元形成了可能捕獲輸入歷史不同方面的臨時特徵池。儲層計算迴圈網路類似於核機器,這是思考它們的一種方式:它們將任意長度的序列(到時刻t的輸入歷史)對映為一個長度給定的向量,之後可以施加一個線性預測運算元(通常是一個線性迴歸)以解決感興趣的問題。訓練準則就可以很容易地設計為輸出權重的凸函式。

10.9 滲漏單元和其他多時間尺度的策略

處理長期依賴的一種方法時設計工作在多個時間尺度的模型,使模型的某些部分粒度時間尺度上操作並能處理小細節,而其他部分在粗時間尺度上操作並能把遙遠過去的資訊更有效地傳遞過來。存在多種同時構建粗細時間尺度的策略。這些策略包括在時間軸增加跳躍連線,“滲漏單元”使用不同時間常數整合訊號,並去除一些用於建模細粒度時間尺度的連線。

10.9.1 時間維度的跳躍連線

增加從遙遠過去的變數到目前變數的直接連線是得到粗時間尺度的一種方法。在普通的迴圈網路中,迴圈從時刻t的單元連線到時刻t+1單元。構造較長的延遲迴圈網路是可能的。

10.9.2 滲漏單元和一系列不同時間尺度

我們對某些v值應用更新0?wx_fmt=png 積累一個滑動平均值0?wx_fmt=png ,其中α是一個從0?wx_fmt=png

0?wx_fmt=png 線性自連線的例子。當α接近1時,滑動平均值能記住過去很長一段時間的資訊,而當α接近0時,關於過去的資訊被迅速丟棄。線性自連線的隱藏單元可以模擬滑動平均的行為。這種隱藏單元稱為滲漏單元。

我們可以通過兩種基本策略設定滲漏單元使用的時間常數。一直策略是手動將其固定為引數,例如在初始化時從某些分佈取樣他們的值。另一種策略是使時間常數為自由變數,並學習出來。在不同時間尺度使用這樣的滲漏單元似乎能幫助學習長期依賴。

10.9.刪除連結

處理長期依賴另一種方法時再多個時間尺度組織尺度組織RNN狀態的想法,資訊在較慢的時間尺度上更容易長距離流動。

這個想法與值幾錢討論的時間維度上的跳躍連線不同,因為它涉及主動刪除長度為1的理解並用更長的連線替換他們。以這種方式修改的單元被迫在長時間尺度上運作。

10.10 長短期記憶和其他門控RNN

實際應用中,最有效的序列模型稱為門控RNN。包括基於長短期記憶和基於門控迴圈單元的網路。

像滲漏單元單元應用,門控RNN想法也是基於生成通過時間的路徑,其中導數既不消失也不發生爆炸。滲漏單元通過手動選擇常量的連線權重或引數化的連線權重來達到這一目的。門控RNN將其推廣為在每個時間步都可能改變的連線權重。

10.10.1 LSTM

引入自喜歡的巧妙構思,以產生梯度長時間持續流動的路徑是初始長短期記憶(LSTM)。其中一個關鍵擴充套件是使自喜歡的權重重視上下文而定,若不是固定的。門控此自迴圈的權重,累積的時間尺度可以動態地改變。在這種情況下,即使是給定引數的LSTM,累積的時間尺度也可以因輸入序列而改變,因為時間引數是模型本身的輸出。

10.10.2 其他門控RNN

門控RNN其單元也被稱為門控迴圈單元或GRU。與LSTM的主要區別是,單個門控單元同時控制遺忘因子和更新狀態單元的決定。

10.11 外顯記憶

智慧需要知識並且可以通過訊息獲取知識,這已促使大型深度架構的發展。然而,知識是不同的並且種類繁多。有些知識是隱含的、潛意識的並且難以用語言表達——比如怎樣行走或狗與貓的樣子有什麼不同。其他知識可以是明確的、可陳述的以及可以相對簡單地使用詞語表達——每天常識性的知識,如“貓是一種動物”。

神經網路擅長儲存隱性知識,但是他們很難記住事實。被儲存在神經網路引數中之前,隨機梯度下降需要多次提供系統的輸入,即使如此,該輸入也不會被特別地儲存。為了解決這一難題,Weston引入了記憶網路,其中包括一組可以通過定址機制來訪問的記憶單元。記憶網路原本需要監督訊號指示他們如何使用自己的記憶單元。Graves引入的神經網路圖靈機,不需要明確的監督指示採取哪種行動而能學習從記憶單元讀寫任意內容,並通過使用基於內容的軟注意機制,允許端到端的訓練。這種軟定址機制已成為其他允許基於梯度優化的模擬演算法機制的相關架構的標準。

0?wx_fmt=png

外顯記憶的方法如上圖說明,其中我們可以看到與儲存器耦接的“任務神經網路”。雖然這一任務神經網路可以是前饋或迴圈的,但整個系統是一個迴圈網路。

迴圈神經網路提供了將深度學習擴充套件到序列的一種方法。它們是我們的深度學習工具箱中最後一個主要工具。