<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 深度學習的循環神經網絡算法之旅 > 原文: [https://machinelearningmastery.com/recurrent-neural-network-algorithms-for-deep-learning/](https://machinelearningmastery.com/recurrent-neural-network-algorithms-for-deep-learning/) 循環神經網絡(RNN)是一種人工神經網絡,其向網絡添加額外的權重以在網絡圖中創建循環以努力維持內部狀態。 向神經網絡添加狀態的承諾是,他們將能夠明確地學習和利用序列預測問題中的上下文,例如訂單或時間組件的問題。 在這篇文章中,您將參觀用于深度學習的循環神經網絡。 閱讀這篇文章后,你會知道: * 頂級循環神經網絡如何用于深度學習,例如LSTM,GRU和NTM。 * 頂級RNN如何與人工神經網絡中更廣泛的復發研究相關。 * 對RNN的研究如何在一系列具有挑戰性的問題上取得了最先進的表現。 請注意,我們不會涵蓋所有可能的循環神經網絡。相反,我們將關注用于深度學習的循環神經網絡(LSTM,GRU和NTM)以及理解它們所需的上下文。 讓我們開始吧。 ![A Tour of Recurrent Neural Network Algorithms for Deep Learning](img/8fe6f2e7a64c5028f82a996620d1f1be.jpg) 深度學習的循環神經網絡算法之旅 照片由 [Santiago Medem](https://www.flickr.com/photos/fotos_medem/3398311871/) 拍攝,保留一些權利。 ## 概觀 我們將從為循環神經網絡領域設置場景開始。 接下來,我們將深入研究用于深度學習的LSTM,GRU和NTM。 然后,我們將花一些時間在與使用RNN進行深度學習相關的高級主題上。 * 循環神經網絡 * 完全經常性網絡 * 循環神經網絡 * 神經歷史壓縮機 * 長期短期記憶網絡 * 門控遞歸單元神經網絡 * 神經圖靈機 ## 循環神經網絡 讓我們設置場景。 流行的觀點表明,重復會給網絡拓撲帶來內存。 考慮這一點的更好方法是訓練集包含帶有當前訓練示例的一組輸入的示例。這是“常規的,例如傳統的多層感知器。 ```py X(i) -> y(i) ``` 但是訓練示例補充了前一個示例中的一組輸入。這是“非常規的”,例如[循環神經網絡](https://en.wikipedia.org/wiki/Recurrent_neural_network)。 ```py [X(i-1), X(i)] -> y(i) ``` 與所有前饋網絡范例一樣,問題是如何將輸入層連接到輸出層,包括反饋激活,然后訓練構造以收斂。 現在讓我們來看看不同類型的循環神經網絡,從非常簡單的概念開始。 ### 完全經常性網絡 多層感知器的分層拓撲被保留,但每個元素都與架構中的每個其他元素具有加權連接,??并且與其自身具有單個反饋連接。 并非所有連接都經過訓練,并且誤差導數的極端非線性意味著傳統的反向傳播將不起作用,因此采用[時間反向傳播](https://en.wikipedia.org/wiki/Backpropagation_through_time)接近或隨機梯度下降。 另請參閱Bill Wilson的 [Tensor產品網絡](http://www.cse.unsw.edu.au/~billw/cs9444/tensor-stuff/tensor-intro-04.html)(1991)。 ### 循環神經網絡 循環神經網絡是[遞歸網絡](https://en.wikipedia.org/wiki/Recursive_neural_network)的線性架構變體。 遞歸促進了分層特征空間中的分支,并且隨著訓練的進行,所得到的網絡體系結構模仿了這一點。 使用梯度下降通過子梯度方法實現訓練。 這在R. Socher等人, [Parsing Natural Scenes and Natural Language with Recursive Neural Networks](http://machinelearning.wustl.edu/mlpapers/paper_files/ICML2011Socher_125.pdf) ,2011中有詳細描述。 ### 神經歷史壓縮機 Schmidhuber在1991年首次報告了一個非常深入的學習器,他能夠通過無人監督的RNN層次結構預訓練,對數百個神經層進行信用分配。 每個RNN都經過無人監督訓練,以預測下一個輸入。然后,僅向前饋送生成錯誤的輸入,將新信息傳送到層級中的下一個RNN,然后以較慢的自組織時間尺度處理。 結果表明,沒有信息丟失,只是壓縮了。 RNN堆棧是數據的“深層生成模型”。可以從壓縮形式重建數據。 參見J. Schmidhuber等人,[神經網絡中的深度學習:概述](http://www2.econ.iastate.edu/tesfatsi/DeepLearningInNeuralNetworksOverview.JSchmidhuber2015.pdf),2014。 隨著誤差通過大拓撲向后傳播,非線性導數的極值計算增加,反向傳播失敗,即使不是不可能,信用分配也很困難。 ## 長期短期記憶網絡 對于傳統的反向傳播時間(BPTT)或實時循環學習(RTTL),在時間上向后流動的誤差信號往往會爆炸或消失。 反向傳播誤差的時間演變指數地取決于權重的大小。重量爆炸可能導致重量振蕩,而在消失導致學習彌合長時間滯后并花費大量時間,或根本不起作用。 * LSTM是一種新穎的循環網絡架構訓練,具有適當的基于梯度的學習算法。 * LSTM旨在克服錯誤回流問題。它可以學習橋接超過1000步的時間間隔。 * 這在存在嘈雜,不可壓縮的輸入序列時是真實的,而不會損失短時滯能力。 錯誤的回流問題通過一種有效的基于梯度的算法克服,該算法用于通過特殊單元的內部狀態執行常量(因此既不爆炸也不消失)的錯誤流。這些單位減少了“輸入權重沖突”和“輸出權重沖突”的影響。 **輸入權重沖突**:如果輸入非零,則必須使用相同的輸入權重來存儲某些輸入并忽略其他輸入,然后通常會收到相互沖突的權重更新信號。 這些信號將嘗試使重量參與存儲輸入和保護輸入。這種沖突使得學習變得困難,并且需要更多上下文敏感的機制來通過輸入權重來控制“寫入操作”。 **輸出權重沖突**:只要單元的輸出不為零,來自該單元的輸出連接的權重將吸引在序列處理期間產生的沖突的權重更新信號。 這些信號將試圖使輸出權重參與訪問存儲在處理單元中的信息,并且在不同時間保護后續單元不被正向饋送的單元的輸出擾動。 這些沖突并非特定于長期滯后,同樣會影響短期滯后。值得注意的是,隨著滯后增加,必須保護存儲的信息免受擾動,特別是在學習的高級階段。 **網絡架構**:不同類型的單元可以傳達有關網絡當前狀態的有用信息。例如,輸入門(輸出門)可以使用來自其他存儲器單元的輸入來決定是否在其存儲器單元中存儲(訪問)某些信息。 存儲器單元包含門。蓋茨特定于他們調解的聯系。輸入門用于補救輸入權重沖突,而輸出門工作則消除輸出權重沖突。 **門**:具體來說,為了減輕輸入和輸出權重沖突和擾動,引入了乘法輸入門單元,以保護存儲內容免受無關輸入的干擾,乘法輸出門單元保護其他單元免受擾動通過當前無關的存儲內容存儲。 ![Example of LSTM Architecture](img/a3571d20abf7b4253443ae388723421d.jpg) 具有8個輸入單元,4個輸出單元和2個大小為2\. in1的存儲器單元塊的LSTM網絡的示例標記輸入門,out1標記輸出門,并且cell1 = block1標記塊1的第一存儲器單元。 摘自1997年的長短記憶。 與多層感知器相比,LSTM中的連接性是復雜的,因為處理元件的多樣性和反饋連接的包含。 **存儲器單元塊**:共享相同輸入門和相同輸出門的存儲器單元形成稱為“存儲器單元塊”的結構。 存儲單元塊便于信息存儲;與傳統神經網絡一樣,在單個單元內編碼分布式輸入并不容易。大小為1的存儲器單元塊只是一個簡單的存儲器單元。 **學習**:實時循環學習(RTRL)的一種變體,它考慮了由輸入和輸出門引起的改變的乘法動力學,用于確保通過內存狀態存儲單元錯誤傳播的非衰減誤差到達“存儲器單元網絡輸入”不會及時傳播回來。 **猜測**:這種隨機方法可以勝過許多術語滯后算法。已經確定,通過簡單的隨機權重猜測可以比通過所提出的算法更快地解決在先前工作中使用的許多長時滯后任務。 參見S.Hochreiter和J. Schmidhuber, [Long-Short Term Memory](http://dl.acm.org/citation.cfm?id=1246450) ,1997。 LSTM循環神經網絡最有趣的應用是語言處理工作。有關全面的描述,請參閱Gers的工作。 * F. Gers和J. Schmidhuber, [LSTM Recurrent Networks學習簡單的上下文無關和上下文敏感語言](ftp://ftp.idsia.ch/pub/juergen/L-IEEE.pdf),2001。 * F. Gers,[循環神經網絡中的長短期記憶](http://www.felixgers.de/papers/phd.pdf),博士。論文,2001年。 ### LSTM限制 LSTM的高效截斷版本不會輕易解決類似“強烈延遲XOR”的問題。 每個存儲器單元塊需要輸入門和輸出門。在其他經常性方法中沒有必要。 通過存儲器單元內的“恒定誤差卡魯塞爾”的恒定誤差流產生與一次呈現整個輸入串的傳統前饋架構相同的效果。 與其他前饋方法一樣,LSTM與“攝政”概念一樣存在缺陷。如果需要精確計數時間步長,則可能需要額外的計數機制。 ### LSTM的優點 算法彌合長時間滯后的能力是架構內存單元中持續誤差反向傳播的結果。 LSTM可以近似噪聲問題域,分布式表示和連續值。 LSTM很好地概括了所考慮的問題域。這很重要,因為某些任務對于已經建立的循環網絡來說是難以處理的。 在問題域上對網絡參數進行微調似乎是不必要的。 就每個權重和時間步驟的更新復雜性而言,LSTM基本上等同于BPTT。 LSTM顯示出強大功能,在機器翻譯等領域實現了最先進的結果。 ## 門控遞歸單元神經網絡 門控循環神經網絡已成功應用于順序或時間數據。 最適合語音識別,自然語言處理和機器翻譯,與LSTM一起,它們在長序列問題域中表現良好。 在LSTM主題中考慮了門控,并且涉及門控網絡生成信號,該信號用于控制當前輸入和先前存儲器如何工作以更新當前激活,從而控制當前網絡狀態。 在整個學習階段,門自身被加權并根據算法選擇性地更新。 門網絡以增加的復雜性的形式引入了額外的計算開銷,因此增加了參數化。 LSTM RNN架構使用簡單RNN的計算作為內部存儲器單元(狀態)的中間候選者。門控遞歸單元(GRU)RNN將門控信號從LSTM RNN模型減少到兩個。兩個門被稱為更新門和復位門。 GRU(和LSTM)RNN中的選通機制在參數化方面是簡單RNN的復制品。對應于這些門的權重也使用BPTT隨機梯度下降來更新,因為它試圖使成本函數最小化。 每個參數更新將涉及與整個網絡的狀態有關的信息。這可能會產生不利影響。 門控的概念進一步探索并擴展了三種新的變量門控機制。 已經考慮的三個門控變量是GRU1,其中每個門僅使用先前的隱藏狀態和偏差來計算; GRU2,其中每個門僅使用先前的隱藏狀態計算;和GRU3,其中每個門僅使用偏差計算。使用GRU3觀察到參數的顯著減少,產生最小數量。 使用來自手寫數字的MNIST數據庫和IMDB電影評論數據集的數據對三種變體和GRU RNN進行基準測試。 從MNIST數據集生成兩個序列長度,并且從IMDB數據集生成一個序列長度。 門的主要驅動信號似乎是(周期性)狀態,因為它包含有關其他信號的基本信息。 隨機梯度下降的使用隱含地攜帶關于網絡狀態的信息。這可以解釋在門信號中單獨使用偏置的相對成功,因為其自適應更新攜帶關于網絡狀態的信息。 門控變體通過有限的拓撲評估來探索門控的機制。 有關更多信息,請參閱 * R. Dey和F. M. Salem,[門控變換單元(GRU)神經網絡的門變量](https://arxiv.org/ftp/arxiv/papers/1701/1701.05923.pdf),2017。 * J. Chung,et al。,[關于序列建模的門控循環神經網絡的實證評估](https://pdfs.semanticscholar.org/2d9e/3f53fcdb548b0b3c4d4efb197f164fe0c381.pdf),2014。 ## 神經圖靈機 神經圖靈機通過將它們耦合到外部存儲器資源來擴展神經網絡的能力,它們可以通過注意過程與之交互。 組合系統類似于圖靈機或馮·諾依曼架構,但是端到端是可區分的,允許它通過梯度下降進行有效訓練。 初步結果表明,神經圖靈機可以推斷出簡單的算法,例如輸入和輸出示例中的復制,排序和關聯召回。 RNN在其他機器學習方法中脫穎而出,因為它們能夠在長時間內學習和執行復雜的數據轉換。此外,眾所周知,RNN是圖靈完備的,因此如果連接正確,則具有模擬任意過程的能力。 擴展了標準RNN的功能,以簡化算法任務的解決方案。這種豐富主要是通過一個大的,可尋址的存儲器,因此,類似于圖靈通過無限記憶磁帶豐富有限狀態機,并被稱為“神經圖靈機”(NTM)。 與圖靈機不同,NTM是一種可區分的計算機,可以通過梯度下降進行訓練,從而為學習程序提供實用的機制。 ![Neural Turing Machine Architecture](img/d9ad97517d0ca7b432fb0d5719ebce02.jpg) NTM Architecture通常如上所示。在每個更新周期期間,控制器網絡接收來自外部環境的輸入并作為響應發出輸出。它還通過一組并行讀寫磁頭讀取和寫入存儲器矩陣。虛線表示NTM電路與外界之間的劃分。 摘自神經圖靈機,2014年。 至關重要的是,該建筑的每個組成部分都是可區分的,因此可以直接用梯度下降進行訓練。這是通過定義“模糊”讀寫操作來實現的,這些操作與存儲器中的所有元素或多或少地相互作用(而不是像普通的圖靈機或數字計算機那樣尋址單個元素)。 For more information see: * A. Graves等, [Neural Turing Machines](https://arxiv.org/pdf/1410.5401.pdf) ,2014。 * R. Greve等人, [Evolving Neural Turing Machines for Reward-based Learning](http://sebastianrisi.com/wp-content/uploads/greve_gecco16.pdf) ,2016。 ### NTM實驗 復制任務測試NTM是否可以存儲和調用一長串任意信息。向網絡呈現隨機二進制向量的輸入序列,后跟定界符標志。 訓練網絡以復制8位隨機向量的序列,其中序列長度在1和20之間隨機化。目標序列只是輸入序列的副本(沒有定界符號)。 重復復制任務通過要求網絡將復制的序列輸出指定的次數然后發出序列結束標記來擴展復制。主要動機是看NTM是否可以學習一個簡單的嵌套函數。 網絡接收隨機二進制向量的隨機長度序列,隨后是指示所需拷貝數的標量值,其出現在單獨的輸入通道上。 關聯召回任務涉及組織由“間接”引起的數據,即當一個數據項指向另一個時。構造項目列表以便查詢其中一個項目要求網絡返回后續項目。 定義了由分隔符符號左右界定的二進制向量序列。在將多個項目傳播到網絡之后,通過顯示隨機項目來查詢網絡,并查看網絡是否可以生成下一個項目。 動態N-Grams任務測試NTM是否可以通過使用內存作為可重寫表來快速適應新的預測分布,它可以用來保持轉換統計的計數,從而模擬傳統的N-Gram模型。 考慮二進制序列上所有可能的6-Gram分布的集合。每個6-Gram分布可以表示為32個數字的表,指定下一個比特為1的概率,給定所有可能的長度為5的二進制歷史。通過使用當前查找表繪制200個連續位來生成特定訓練序列。網絡一次一位地觀察序列,然后被要求預測下一位。 優先級排序任務測試NTM的排序能力。隨機二進制向量序列與每個向量的標量優先級一起輸入到網絡。優先級從[-1,1]范圍內均勻繪制。目標序列包含根據其優先級排序的二元向量。 NTM將LSTM的前饋架構作為其組件之一。 ## 摘要 在這篇文章中,您發現了用于深度學習的循環神經網絡。 具體來說,你學到了: * 頂級循環神經網絡如何用于深度學習,例如LSTM,GRU和NTM。 * 頂級RNN如何與人工神經網絡中更廣泛的復發研究相關。 * RNN的研究如何在一系列具有挑戰性的問題上實現最先進的表現。 這是一個很重要的帖子。 您對深度學習的RNN有任何疑問嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看