<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/encoder-decoder-recurrent-neural-network-models-neural-machine-translation/](https://machinelearningmastery.com/encoder-decoder-recurrent-neural-network-models-neural-machine-translation/) 用于循環神經網絡的編碼器 - 解碼器架構是標準的神經機器翻譯方法,其可以與傳統的統計機器翻譯方法相媲美并且在某些情 這種架構非常新穎,僅在 2014 年率先推出,但已被采納為 [Google 翻譯服務](https://translate.google.com/)的核心技術。 在這篇文章中,您將發現用于神經機器翻譯的編碼器 - 解碼器模型的兩個開創性示例。 閱讀這篇文章后,你會知道: * 編碼器 - 解碼器循環神經網絡架構是 Google 翻譯服務中的核心技術。 * 用于直接端到端機器翻譯的所謂“ _Sutskever 型號 _”。 * 所謂的“ _Cho 模型 _”通過 GRU 單元和注意機制擴展了架構。 讓我們開始吧。 ![Encoder-Decoder Recurrent Neural Network Models for Neural Machine Translation](img/37525e20edcb357c3f9a4f90b69ef230.jpg) 用于神經機器翻譯的編碼器 - 解碼器循環神經網絡模型 [Fabio Pani](https://www.flickr.com/photos/fabiuxfabiux/34223907581/) 的照片,保留一些權利。 ## 用于 NMT 的編碼器 - 解碼器架構 具有循環神經網絡的編碼器 - 解碼器架構已成為神經機器翻譯(NMT)和序列到序列(seq2seq)預測的有效和標準方法。 該方法的主要優點是能夠直接在源語句和目標語句上訓練單個端到端模型,以及處理可變長度輸入和輸出文本序列的能力。 作為該方法成功的證據,該架構是 [Google 翻譯服務](https://translate.google.com/)的核心。 > 我們的模型遵循常見的序列到序列學習框架。它有三個組件:編碼器網絡,解碼器網絡和注意網絡。 - [Google 的神經機器翻譯系統:縮小人機翻譯之間的差距](https://arxiv.org/abs/1609.08144),2016 在這篇文章中,我們將仔細研究兩個不同的研究項目,這些項目在 2014 年同時開發了相同的編碼器 - 解碼器架構,并取得了成為人們關注的方法。他們是: * Sutskever NMT 模型 * Cho NMT 模型 有關架構的更多信息,請參閱帖子: * [編碼器 - 解碼器長短期存儲器網絡](https://machinelearningmastery.com/encoder-decoder-long-short-term-memory-networks/) ## Sutskever NMT 模型 在本節中,我們將研究 [Ilya Sutskever](http://www.cs.toronto.edu/~ilya/) 等開發的神經機器翻譯模型。正如 2014 年論文“[序列學習與神經網絡](https://arxiv.org/abs/1409.3215)”所述。由于缺乏更好的名稱,我們將其稱為“ _Sutskever NMT 模型 _”。 這是一篇重要的論文,因為它是第一個引入用于機器翻譯的編碼器 - 解碼器模型以及更普遍的序列到序列學習的模型之一。 它是機器翻譯領域的一個重要模型,因為它是第一個在大型翻譯任務上勝過基線統計機器學習模型的神經機器翻譯系統之一。 ### 問題 該模型適用于英語到法語的翻譯,特別是 [WMT 2014 翻譯任務](http://www.statmt.org/wmt14/translation-task.html)。 翻譯任務一次處理一個句子,并且在訓練期間將序列結束(&lt; EOS&gt;)標記添加到輸出序列的末尾以表示翻譯序列的結束。這允許模型能夠預測可變長度輸出序列。 > 注意,我們要求每個句子以特殊的句末符號“&lt; EOS&gt;”結束,這使得模型能夠定義所有可能長度的序列上的分布。 該模型在數據集中的 12 百萬個句子的子集上進行訓練,包括 348,000 個法語單詞和 30400 萬個英語單詞。選擇此集是因為它是預先標記的。 源詞匯量減少到 160,000 個最頻繁的源英語單詞和 80,000 個最常見的目標法語單詞。所有詞匯外單詞都被“UNK”標記取代。 ### 模型 開發了編碼器 - 解碼器架構,其中整個讀取輸入序列并將其編碼為固定長度的內部表示。 然后,解碼器網絡使用該內部表示來輸出字,直到到達序列令牌的末尾。 LSTM 網絡用于編碼器和解碼器。 > 想法是使用一個 LSTM 讀取輸入序列,一次一個步驟,以獲得大的固定維向量表示,然后使用另一個 LSTM 從該向量中提取輸出序列 最終的模型是 5 個深度學習模型的集合。在推斷翻譯期間使用從左到右的光束搜索。 ![Depiction of Sutskever Encoder-Decoder Model for Text Translation](img/315a778984788329e62f75784a273c90.jpg) 用于文本翻譯的 Sutskever 編碼器 - 解碼器模型的描述 取自“使用神經網絡的序列到序列學習”,2014。 ### 型號配置 * 輸入序列被顛倒了。 * 使用 1000 維字嵌入層來表示輸入字。 * Softmax 用于輸出層。 * 輸入和輸出模型有 4 層,每層 1,000 個單元。 * 該模型適合 7.5 個時期,其中進行了一些學習率衰減。 * 在訓練期間使用批量大小的 128 個序列。 * 在訓練期間使用梯度裁剪來減輕梯度爆炸的可能性。 * 批次由具有大致相同長度的句子組成,以加速計算。 該模型適用于 8-GPU 機器,其中每層在不同的 GPU 上運行。訓練需要 10 天。 > 由此產生的實施速度達到每秒 6,300(英語和法語)的速度,小批量為 128.這種實施的訓練大約需要 10 天。 ### 結果 該系統的 BLEU 得分為 34.81,與使用 33.30 的統計機器翻譯系統開發的基線得分相比,這是一個很好的分數。重要的是,這是神經機器翻譯系統的第一個例子,它在大規模問題上勝過基于短語的統計機器翻譯基線。 > ......我們獲得了 34.81 的 BLEU 分數[...]這是迄今為止通過大型神經網絡直接翻譯獲得的最佳結果。為了比較,該數據集上 SMT 基線的 BLEU 得分為 33.30 使用最終模型對[最佳翻譯](http://www-lium.univ-lemans.fr/~schwenk/cslm_joint_paper/)列表進行評分,并將得分提高至 36.5,使其接近 37.0 時的最佳結果。 你可以在這里看到與論文[相關的談話視頻:](https://www.youtube.com/watch?v=-uyXE7dY5H0) &lt;iframe allowfullscreen="" frameborder="0" gesture="media" height="281" src="https://www.youtube.com/embed/-uyXE7dY5H0?feature=oembed" width="500"&gt;&lt;/iframe&gt; ## Cho NMT 模型 在本節中,我們將討論 [Kyunghyun Cho](http://www.kyunghyuncho.me/) 等人描述的神經機器翻譯系統。他們在 2014 年的論文題為“[學習短語表示使用 RNN 編碼器 - 解碼器進行統計機器翻譯](https://arxiv.org/abs/1406.1078)。”我們將其稱為“ _Cho NMT 模型 _”模型缺乏更好的名稱。 重要的是,Cho 模型僅用于對候選翻譯進行評分,并不像上面的 Sutskever 模型那樣直接用于翻譯。雖然對更好地診斷和改進模型的工作的擴展確實直接和單獨使用它進行翻譯。 ### 問題 如上所述,問題是 WMT 2014 研討會的英語到法語翻譯任務。 源詞匯量和目標詞匯量僅限于最常見的 15,000 個法語和英語單詞,涵蓋了 93%的數據集,詞匯單詞中的單詞被“UNK”取代。 ### 模型 該模型使用相同的雙模型方法,這里給出了編碼器 - 解碼器架構的明確名稱。 > ...稱為 RNN 編碼器 - 解碼器,由兩個循環神經網絡(RNN)組成。一個 RNN 將符號序列編碼成固定長度的向量表示,而另一個 RNN 將該表示解碼成另一個符號序列。 ![Depiction of the Encoder-Decoder architecture](img/733acefebad1632bfbddd1e52fc8f434.jpg) 描述編碼器 - 解碼器架構。 取自“使用 RNN 編碼器 - 解碼器進行統計機器翻譯的學習短語表示”。 實施不使用 LSTM 單位;相反,開發了一種更簡單的循環神經網絡單元,稱為門控循環單元或 GRU。 > ......我們還提出了一種新型的隱藏單元,它受 LSTM 單元的推動,但計算和實現起來要簡單得多。 ### 型號配置 * 使用 100 維單詞嵌入來表示輸入單詞。 * 編碼器和解碼器配置有 1 層 1000 GRU 單元。 * 在解碼器之后使用 500 個 Maxout 單元匯集 2 個輸入。 * 在訓練期間使用 64 個句子的批量大小。 該模型訓練了大約 2 天。 ### 擴展 在論文“[關于神經機器翻譯的性質:編碼器 - 解碼器方法](https://arxiv.org/abs/1409.1259)”,Cho,et al。調查他們的模型的局限性。他們發現,隨著輸入句子長度的增加和詞匯表之外的單詞數量的增加,表現會迅速下降。 > 我們的分析表明神經機器翻譯的表現受句子長度的影響很大。 它們提供了模型表現的有用圖表,因為句子的長度增加,可以捕捉技能的優美損失,增加難度。 ![Loss in model skill with increased sentence length](img/569776abf8da241c3eea080a14b4142d.jpg) 句子長度增加導致模特技能喪失。 取自“關于神經機器翻譯的屬性:編碼器 - 解碼器方法”。 為了解決未知單詞的問題,他們建議在訓練期間大大增加已知單詞的詞匯量。 他們在一篇題為“[通過聯合學習協調和翻譯](https://arxiv.org/abs/1409.0473)的神經機器翻譯”的后續論文中解決了句子長度的問題,其中他們建議使用注意機制。不是將輸入語句編碼為固定長度向量,而是保持編碼輸入的更全面表示,并且模型學習用于關注解碼器輸出的每個字的輸入的不同部分。 > 每次所提出的模型在翻譯中生成單詞時,它(軟)搜索源語句中的一組位置,其中最相關的信息被集中。然后,模型基于與這些源位置和所有先前生成的目標詞相關聯的上下文向量來預測目標詞。 本文提供了大量技術細節;例如: * 使用類似配置的模型,但具有雙向層。 * 準備數據使得在詞匯表中保留 30,000 個最常見的單詞。 * 該模型首先使用長度最多為 20 個單詞的句子進行訓練,然后使用長度最多為 50 個單詞的句子進行訓練。 * 使用 80 個句子的批量大小,該模型適合 4-6 個時期。 * 在推理期間使用波束搜索來找到每個翻譯的最可能的詞序列。 這次模型需要大約 5 天的時間來訓練。該后續工作的代碼也是 [](https://github.com/lisa-groundhog/GroundHog) 。 與 Sutskever 一樣,該模型在經典的基于短語的統計方法的范圍內取得了成果。 > 也許更重要的是,所提出的方法實現了與現有的基于短語的統計機器翻譯相當的翻譯表現。考慮到所提出的架構或整個神經機器翻譯系列僅在今年才被提出,這是一個引人注目的結果。我們相信這里提出的架構是朝著更好的機器翻譯和更好地理解自然語言邁出的有希望的一步。 Kyunghyun Cho 也是 Nvidia 開發者博客 2015 年系列帖子的作者,該博客主題為神經機器翻譯的編碼器 - 解碼器架構,題為“ _GPU 神經機器翻譯簡介”。_ “該系列提供了對主題和模型的良好介紹;見[第 1 部分](https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-with-gpus/),[第 2 部分](https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-gpus-part-2/)和[第 3 部分](https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-gpus-part-3/)。 ## 進一步閱讀 如果您希望深入了解,本節將提供有關該主題的更多資源。 * [谷歌的神經機器翻譯系統:縮小人機翻譯之間的差距](https://arxiv.org/abs/1609.08144),2016。 * [用神經網絡進行序列學習的序列](https://arxiv.org/abs/1409.3215),2014。 * [用神經網絡進行序列到序列學習的表示](https://www.youtube.com/watch?v=-uyXE7dY5H0),2016。 * [Ilya Sutskever 主頁](http://www.cs.toronto.edu/~ilya/) * [使用 RNN 編碼器 - 解碼器進行統計機器翻譯的學習短語表示](https://arxiv.org/abs/1406.1078),2014。 * [通過聯合學習對齊和翻譯的神經機器翻譯](https://arxiv.org/abs/1409.0473),2014。 * [關于神經機器翻譯的特性:編碼器 - 解碼器方法](https://arxiv.org/abs/1409.1259),2014。 * [Kyunghyun Cho 主頁](http://www.kyunghyuncho.me/) * 用 GPU 進行神經機器翻譯的介紹( [part1](https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-with-gpus/) , [part2](https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-gpus-part-2/) , [part3](https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-gpus-part-3/) ),2015。 ## 摘要 在這篇文章中,您發現了兩個用于神經機器翻譯的編碼器 - 解碼器模型的示例。 具體來說,你學到了: * 編碼器 - 解碼器循環神經網絡架構是 Google 翻譯服務中的核心技術。 * 用于直接端到端機器翻譯的所謂“Sutskever 模型”。 * 所謂的“Cho 模型”,通過 GRU 單元和注意機制擴展了架構。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看