讀書筆記 神經網路與深度學習(五)迴圈神經網路

2021-09-25 03:00:49 字數 3790 閱讀 6519

建立乙個額外的延時單元,儲存歷史資訊。

延時神經網路在前饋網路中非輸出層都增加了乙個延時器,記錄最近幾次神經元的輸出。

這樣就具有了短期記憶能力。

自回歸模型是統計學上常用的一類時間序列模型,用乙個變數的歷史資訊來**自己。

有外部輸入的非線性自回歸模型是乙個擴充套件,每個時刻都有乙個外部輸入x,產生乙個輸出y。

迴圈神經網路通過使用帶自反饋的神經元,能夠處理任意長度的時序資料。

迴圈神經網路可以近似任意的非線性動力系統

只有乙個隱藏層的神經網路。

在乙個兩層的前饋神經網路中,連線存在相鄰的層與層之間,隱藏層的節點之間是無連線的。而簡單迴圈網路增加了從隱藏層到隱藏層的反饋連線。

假設在時刻t時,網路的輸入為xt,隱藏層狀態(即隱藏層神經元活性值)為ht 不僅和當前時刻的輸入xt 相關,也和上乙個時刻的隱藏層狀態ht−1 相關。

如果我們把每個時刻的狀態都看作是前饋神經網路的一層的話,迴圈神經網路可以看作是在時間維度上權值共享的神經網路。

由於迴圈神經網路具有短期記憶能力,相當於儲存裝置,因此其計算能力十分強大。前饋神經網路可以模擬任何連續函式,而迴圈神經網路可以模擬任何程式。

乙個完全連線的迴圈網路是任何非線性動力系統的近似器。

圖靈完備(turing completeness)是指一種資料操作規則,比如一種計算機程式語言,可以實現圖靈機(turing machine)的所有功能,解決所有的可計算問題. 目前主流的程式語言(比如c++,jpthon等)都是圖靈完備的。

迴圈神經網路可以應用到很多不同型別的機器學習任務。根據這些任務的特點可以分為以下幾種模式:序列到類別模式、同步的序列到序列模式、非同步的序列到序列模式。

序列到類別模式主要用於序列資料的分類問題:輸入為序列,輸出為類別。比如在文字分類中,輸入資料為單詞的序列,輸出為該文字的類別。

同步的序列到序列模式主要用於序列標註(sequence labeling)任務,即每一時刻都有輸入和輸出,輸入序列和輸出序列的長度相同。比如詞性標註(partof-speech tagging)中,每乙個單詞都需要標註其對應的詞性標籤。

非同步的序列到序列模式也稱為編碼器-解碼器模型,即輸入序列和輸出序列不需要有嚴格的對應關係,也不需要保持相同的長度。比如在機器翻譯中,輸入為源語言的單詞序列,輸出為目標語言的單詞序列。

迴圈神經網路的引數可以通過梯度下降方法來進行學習。

迴圈神經網路中存在乙個遞迴呼叫的函式 f(·),因此其計算引數梯度的方式和前饋神經網路不太相同。在迴圈神經網路中主要有兩種計算梯度的方式:隨時間反向傳播(bptt)和實時迴圈學習(rtrl)演算法。

隨時間反向傳播(backpropagation through time,bptt)演算法的主要思想是通過類似前饋神經網路的錯誤反向傳播演算法來進行計算梯度。

bptt 演算法將迴圈神經網路看作是乙個展開的多層前饋網路,其中「每一層」對應迴圈網路中的「每個時刻」。這樣,迴圈神經網路就可以按按照前饋網路中的反向傳播演算法進行計算引數梯度。在「展開」的前饋網路中,所有層的引數是共享的,因此引數的真實梯度是所有「展開層」的引數梯度之和。

與反向傳播的 bptt 演算法不同的是,實時迴圈學習(real-time recurrent

learning,rtrl)是通過前向傳播的方式來計算梯度 。

迴圈神經網路在學習過程中的主要問題是由於梯度消失或**問題,很難建模長時間間隔(long range)的狀態之間的依賴關係。

為了改善迴圈神經網路的長程依賴問題,一種非常好的解決方案是引入門控機制來控制資訊的累積速度,包括有選擇地加入新的資訊,並有選擇地遺忘之前累積的資訊。這一類網路可以稱為基於門控的迴圈神經網路(gated rnn)。

長短期記憶網路lstm是迴圈神經網路的乙個變體,可以有效地解決簡單迴圈神經網路的梯度**或消失問題。

lstm網路主要改進在一下兩個方面:

新的內部狀態:引入新的內部狀態ct專門進行線性的迴圈資訊傳遞,同時輸出資訊給隱藏層的外部狀態ht。

門控機制:lstm網路引入門控機制來控制資訊傳遞的路徑。(輸入門,遺忘門,輸出門)遺忘門ft 控制上乙個時刻的內部狀態ct−1 需要遺忘多少資訊。輸入門it 控制當前時刻的候選狀態c˜t 有多少資訊需要儲存。輸出門ot控制當前時刻的內部狀態ct有多少資訊需要輸出給外部狀態ht。

目前主流的lstm網路用的三個門來動態地控制內部狀態的應該遺忘多少歷史資訊,輸入多少新資訊,以及輸出多少資訊。我們可以對門控機制進行改進並獲得lstm網路的不同變體。如無遺忘門的lstm網路 、peephole 連線、耦合輸入門和遺忘門。

門控迴圈單元(gated recurrent unit,gru)網路是一種比lstm網路更加簡單的迴圈神經網路。

引入門控機制來控制資訊更新的方式。和lstm 不同,gru不引入額外的記憶單元,gru網路也是在原基礎上引入乙個更新門(update gate)來控制當前狀態需要從歷史狀態中保留多少資訊(不經過非線性變換),以及需要從候選狀態中接受多少新資訊。

在lstm網路中,輸入門和遺忘門是互補關係,具有一定的冗餘性。gru網路直接使用乙個門來控制輸入和遺忘之間的平衡。

如果將深度定義為網路中資訊傳遞路徑長度的話,迴圈神經網路可以看作是既「深」又「淺」的網路。一方面來說,如果我們把迴圈網路按時間展開,長時間間隔的狀態之間的路徑很長,迴圈網路可以看作是乙個非常深的網路了。從另一方面來說,如果同一時刻網路輸入到輸出之間的路徑xt → yt,這個網路是非常淺的。因此,我們可以增加迴圈神經網路的深度從而增強迴圈神經網路的能力。

1種常見的做法是將多個迴圈網路堆疊起來,稱為堆疊迴圈神經網路(stackedrecurrent neural network,srnn)。乙個堆疊的簡單迴圈網路(stacked srn)也稱為迴圈網路迴圈多層感知器(recurrent multi-layer perceptron,rmlp)。

在有些任務中,乙個時刻的輸出不但和過去時刻的資訊有關,也和後續時刻的資訊有關。比如給定乙個句子,其中乙個詞的詞性由它的上下文決定,即包含左右兩邊的資訊。因此,在這些任務中,我們可以增加乙個按照時間的逆序來傳遞資訊的網路層,來增強網路的能力。

雙向迴圈神經網路(bidirectional recurrent neural network,bi-rnn)由兩層迴圈神經網路組成,它們的輸入相同,只是資訊傳遞的方向不同。

遞迴神經網路(recursive neural network,recnn)是迴圈神經網路在有向無迴圈圖上的擴充套件 [pollack, 1990]。遞迴神經網路的一般結構為樹狀的層次結構。

圖網路(graph network,gn)是將訊息傳遞的思想擴充套件到圖結構資料上的神經網路。

迴圈神經網路可以建模時間序列資料之間的相關性。

常用的迴圈神經網路的引數學習演算法是bptt演算法[werbos, 1990],其計算時間和空間要求會隨時間線性增長。為了提高效率,當輸入序列的長度比較大時,可以使用帶截斷(truncated)的bptt演算法,只計算固定時間間隔內的梯度回傳。

乙個完全連線的迴圈神經網路有著強大的計算和表示能力,可以近似任何非線性動力系統以及圖靈機,解決所有的可計算問題。然而由於梯度**和梯度消失問題,簡單迴圈網路存在長期依賴問題。為了解決這個問題,人們對迴圈神經網路進行了很多的改進,其中最有效的改進方式為引入門控機制,比如lstm網路 [gers et al., 2000, hochreiter and schmidhuber, 1997]和gru網路[chung et al., 2014]。

lstm網路是目前為止最成功的迴圈神經網路模型,成功應用在很多領域,比如語音識別、機器翻譯[sutskever et al., 2014]、語音模型以及文字生成。lstm網路通過引入線性連線來緩解長距離依賴問題。雖然 lstm 網路取得了很大的成功,其結構的合理性一直受到廣泛關注。

此外,迴圈神經網路可以很容易地擴充套件到更廣義的圖結構資料上,稱為圖網路[scarselli et al., 2009]。

讀書筆記《神經網路與深度學習》

機器學習是人工只能的乙個分支,機器學習本身是乙個非常大的概念。輸入資料報括 歷史資料 正確期望值 錯誤期望值 輸入資料後有模型自行進行聚類 規則區分 乙個連續決策的過程,其數學本質是馬爾科夫決策過程。馬爾科夫過程 對於乙個系統,有乙個狀態轉移到另乙個狀態的過程中,存在著轉移概率,且轉移概率可以通過前...

讀書筆記 神經網路與深度學習(三)前饋神經網路

從機器學習的角度看,神經網路一般可以看做是乙個非線性模型。淨輸入z 在經過乙個非線性函式f 後,得到神經元的活性值 activation a,a f z 其中非線性函式f 稱為啟用函式 activation function 啟用函式 啟用函式在神經元中非常重要的。為了增強網路的表示能力和學習能力,...

西瓜書讀書筆記(五) 神經網路

全部筆記的彙總貼 機器學習 西瓜書 讀書筆記彙總貼 神經網路是由具有適應性的 簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所作出的互動反應。神經網路中最基本的成分是神經元 neuron 模型,許多的神經元按一定的層次結構連線起來,就得到了神經網路。感知機 percep...