<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 編碼器 - 解碼器長短期存儲器網絡 > 原文: [https://machinelearningmastery.com/encoder-decoder-long-short-term-memory-networks/](https://machinelearningmastery.com/encoder-decoder-long-short-term-memory-networks/) ### 使用示例Python代碼,輕松介紹 序列到序列預測的編碼器 - 解碼器LSTM。 編碼器 - 解碼器LSTM是一種循環神經網絡,旨在解決序列到序列問題,有時稱為seq2seq。 序列到序列預測問題具有挑戰性,因為輸入和輸出序列中的項目數可以變化。例如,文本翻譯和學習執行程序是seq2seq問題的例子。 在這篇文章中,您將發現用于序列到序列預測的編碼器 - 解碼器LSTM架構。 完成這篇文章后,你會知道: * 序列到序列預測的挑戰。 * 編碼器 - 解碼器架構以及它旨在解決的LSTM中的限制。 * 如何使用Keras在Python中實現編碼器 - 解碼器LSTM模型架構。 讓我們開始吧。 ![Encoder-Decoder Long Short-Term Memory Networks](img/c1cac01eed6e2d603129617a1e7921a8.jpg) 編碼器 - 解碼器長短期記憶網絡 照片來自 [slashvee](https://www.flickr.com/photos/slashvee/14992713152/) ,保留一些權利。 ## 序列到序列預測問題 序列預測通常涉及預測實值序列中的下一個值或輸出輸入序列的類標簽。 這通常被構造為一個輸入時間步長到一個輸出時間步長(例如一對一)或多個輸入時間步長到一個輸出時間步長(多對一)類型序列預測問題的序列。 存在更具挑戰性的序列預測問題類型,其將序列作為輸入并且需要序列預測作為輸出。這些被稱為序列到序列預測問題,或簡稱為seq2seq。 使這些問題具有挑戰性的一個建模問題是輸入和輸出序列的長度可能變化。假設存在多個輸入時間步長和多個輸出時間步長,則這種形式的問題被稱為多對多類型序列預測問題。 ## 編碼器 - 解碼器LSTM架構 已證明非常有效的seq2seq預測問題的一種方法稱為編碼器 - 解碼器LSTM。 該架構由兩個模型組成:一個用于讀取輸入序列并將其編碼為固定長度向量,第二個用于解碼固定長度向量并輸出預測序列。這些模型的使用使該架構的名稱為Encoder-Decoder LSTM,專門針對seq2seq問題而設計。 > ... RNN編碼器 - 解碼器,由兩個循環神經網絡(RNN)組成,充當編碼器和解碼器對。編碼器將可變長度源序列映射到固定長度向量,并且解碼器將向量表示映射回可變長度目標序列。 - [使用RNN編碼器 - 解碼器進行統計機器翻譯的學習短語表示](https://arxiv.org/abs/1406.1078),2014。 編碼器 - 解碼器LSTM是為自然語言處理問題而開發的,它展示了最先進的表現,特別是在稱為統計機器翻譯的文本翻譯領域。 該架構的創新之處在于在模型的核心使用固定大小的內部表示,讀取輸入序列并讀取輸出序列。因此,該方法可以稱為序列嵌入。 在該架構的第一個應用之一中,英語到法語的翻譯,編碼的英語短語的內部表示是可視化的。這些圖揭示了用于翻譯任務的短語的定性有意義的學習結構。 > 所提出的RNN編碼器 - 解碼器自然地生成短語的連續空間表示。 [...]從可視化中,很明顯RNN編碼器 - 解碼器捕獲短語的語義和句法結構 — [Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation](https://arxiv.org/abs/1406.1078), 2014. 在翻譯任務中,當輸入序列被逆轉時,發現模型更有效。此外,該模型甚至在很長的輸入序列上也顯示出有效性。 > 我們能夠在長句子上做得好,因為我們顛倒了源句中的單詞順序,而不是訓練和測試集中的目標句子。通過這樣做,我們引入了許多短期依賴關系,使優化問題更加簡單。 ......扭轉源句中單詞的簡單技巧是這項工作的關鍵技術貢獻之一 - [用神經網絡進行序列學習的序列](https://arxiv.org/abs/1409.3215),2014。 該方法還用于圖像輸入,其中卷積神經網絡用作輸入圖像上的特征提取器,然后由解碼器LSTM讀取。 > ...我們建議遵循這個優雅的秘籍,用深度卷積神經網絡(CNN)代替編碼器RNN。 [...]使用CNN作為圖像編碼器“很自然,首先將其預訓練用于圖像分類任務,并使用最后一個隱藏層作為生成句子的RNN解碼器的輸入 - [Show and Tell:神經圖像標題生成器](https://arxiv.org/abs/1411.4555),2014。 ![Encoder-Decoder LSTM Model Architecture](img/4bcb998fc39d11b4abf0c21d80e57c76.jpg) 編碼器 - 解碼器LSTM模型體系結構 ## 編碼器 - 解碼器LSTM的應用 下面的列表突出了編碼器 - 解碼器LSTM架構的一些有趣應用。 * 機器翻譯,例如英語到法語的短語翻譯。 * 學習執行,例如計算小程序的結果。 * 圖像標題,例如生成圖像的文本描述。 * 會話建模,例如產生文本問題的答案。 * 運動分類,例如從一系列手勢生成一系列命令。 ## 在Keras中實現編碼器 - 解碼器LSTM 編碼器 - 解碼器LSTM可以直接在Keras深度學習庫中實現。 我們可以認為該模型由兩個關鍵部分組成:編碼器和解碼器。 首先,輸入序列一次向網絡顯示一個編碼字符。我們需要一個編碼級別來學習輸入序列中的步驟之間的關系,并開發這些關系的內部表示。 可以使用一個或多個LSTM層來實現編碼器模型。此模型的輸出是固定大小的向量,表示輸入序列的內部表示。該層中的存儲器單元數定義了該固定大小的向量的長度。 ```py model = Sequential() model.add(LSTM(..., input_shape=(...))) ``` 解碼器必須將輸入序列的學習內部表示轉換為正確的輸出序列。 一個或多個LSTM層也可用于實現解碼器模型。該模型從編碼器模型的固定大小輸出中讀取。 與Vanilla LSTM一樣,Dense層用作網絡的輸出。通過將Dense層包裝在TimeDistributed包裝器中,可以使用相同的權重輸出輸出序列中的每個時間步長。 ```py model.add(LSTM(..., return_sequences=True)) model.add(TimeDistributed(Dense(...))) ``` 但是有一個問題。 我們必須將編碼器連接到解碼器,它們不適合。 也就是說,編碼器將產生2維輸出矩陣,其中長度由層中的存儲器單元的數量來定義。解碼器是LSTM層,其期望[樣本,時間步長,特征]的3D輸入,以便產生由問題定義的某個不同長度的解碼序列。 如果您嘗試將這些碎片強制在一起,則會出現錯誤,指示解碼器的輸出為2D,并且需要向解碼器輸入3D。 我們可以使用RepeatVector層來解決這個問題。該層簡單地重復提供的2D輸入多次以創建3D輸出。 RepeatVector層可以像適配器一樣使用,以將網絡的編碼器和解碼器部分組合在一起。我們可以將RepeatVector配置為對輸出序列中的每個時間步重復一次固定長度向量。 ```py model.add(RepeatVector(...)) ``` 把這些放在一起,我們有: ```py model = Sequential() model.add(LSTM(..., input_shape=(...))) model.add(RepeatVector(...)) model.add(LSTM(..., return_sequences=True)) model.add(TimeDistributed(Dense(...))) ``` 總而言之,RepeatVector用作適配器,以使編碼器的固定大小的2D輸出適合解碼器所期望的不同長度和3D輸入。 TimeDistributed包裝器允許為輸出序列中的每個元素重用相同的輸出層。 ## 進一步閱讀 如果您要深入了解,本節將提供有關該主題的更多資源。 ### 文件 * [使用RNN編碼器 - 解碼器進行統計機器翻譯的學習短語表示](https://arxiv.org/abs/1406.1078),2014。 * [用神經網絡進行序列學習的序列](https://arxiv.org/abs/1409.3215),2014。 * [Show and Tell:神經圖像標題生成器](https://arxiv.org/abs/1411.4555),2014。 * [學習執行](http://arxiv.org/abs/1410.4615),2015年。 * [神經對話模型](https://arxiv.org/abs/1506.05869),2015。 ### Keras API * [RepeatVector Keras API](https://keras.io/layers/core/#repeatvector) 。 * [TimeDistributed Keras API](https://keras.io/layers/wrappers/#timedistributed) 。 ### 帖子 * [如何將編碼器 - 解碼器LSTM用于隨機整數的回波序列](http://machinelearningmastery.com/how-to-use-an-encoder-decoder-lstm-to-echo-sequences-of-random-integers/) * [學習使用編碼器 - 解碼器LSTM循環神經網絡](http://machinelearningmastery.com/learn-add-numbers-seq2seq-recurrent-neural-networks/)添加數字 * [長期短期記憶循環神經網絡](http://machinelearningmastery.com/attention-long-short-term-memory-recurrent-neural-networks/)的注意事項 ## 摘要 在這篇文章中,您發現了用于序列到序列預測的編碼器 - 解碼器LSTM架構 具體來說,你學到了: * 序列到序列預測的挑戰。 * 編碼器 - 解碼器架構以及它旨在解決的LSTM中的限制。 * 如何使用Keras在Python中實現編碼器 - 解碼器LSTM模型架構。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看