<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/teacher-forcing-for-recurrent-neural-networks/](https://machinelearningmastery.com/teacher-forcing-for-recurrent-neural-networks/) 教師強制是一種快速有效地訓練循環神經網絡模型的方法,該模型使用來自先前時間步長的輸出作為輸入。 它是一種網絡訓練方法,對于開發用于機器翻譯,文本摘要和圖像字幕的深度學習語言模型以及許多其他應用程序至關重要。 在這篇文章中,您將發現教師強迫作為訓練復現神經網絡的方法。 閱讀這篇文章后,你會知道: * 訓練循環神經網絡的問題是使用先前時間步長的輸出作為輸入。 * 在訓練這些類型的循環網絡時,教師強制解決緩慢收斂和不穩定的方法。 * 教師強迫的擴展允許訓練有素的模型更好地處理這種類型網絡的開環應用。 讓我們開始吧。 ![What is Teacher Forcing for Recurrent Neural Networks?](img/07540e2d761a397315f2bad12db32913.jpg) 什么是教師強制循環神經網絡? [Nathan Russell](https://www.flickr.com/photos/nathanrussell/2976465113/) 的照片,保留一些權利。 ## 在序列預測中使用輸出作為輸入 存在序列預測模型,其使用來自上一時間步驟y(t-1)的輸出作為當前時間步驟X(t)處的模型的輸入。 這種類型的模型在語言模型中很常見,它一次輸出一個單詞并使用輸出單詞作為輸入來生成序列中的下一個單詞。 例如,這種類型的語言模型用于編碼器 - 解碼器循環神經網絡架構中,用于序列到序列生成問題,例如: * 機器翻譯 * 標題生成 * 文本摘要 在訓練模型之后,可以使用“序列開始”標記來啟動過程,并且輸出序列中生成的單詞在后續時間步驟中用作輸入,可能與其他輸入一樣,如圖像或源文本。 在訓練模型時可以使用相同的遞歸輸出輸入過程,但它可能導致以下問題: * 收斂緩慢。 * 模型不穩定。 * 技能差。 在訓練這些類型的模型時,教師強制是一種提高模型技能和穩定性的方法。 ## 什么是教師強迫? 教師強制是一種訓練循環神經網絡的策略,它使用先前時間步長的模型輸出作為輸入。 > 從輸出返回到模型中的經常連接的模型可以通過教師強制進行訓練。 - 第372頁,[深度學習](http://amzn.to/2wHImcR),2016年。 最初描述和開發該方法作為[反向傳播的替代技術](https://machinelearningmastery.com/gentle-introduction-backpropagation-time/)用于訓練復發神經網絡。 > 在動態監督學習任務中經常使用的一種有趣的技術是,在存在這樣的值時,在隨后的網絡行為計算中用教師信號d(t)替換單元的實際輸出y(t)。我們稱這種技術教師為強迫。 - [連續運行全循環神經網絡的學習算法](http://ieeexplore.ieee.org/document/6795228/),1989。 教師強制通過在當前時間步驟y(t)使用來自訓練數據集的實際或預期輸出作為下一時間步驟X(t + 1)中的輸入而不是由網絡生成的輸出來工作。 > 教師強迫是一種程序,其中在訓練期間,模型在時間t + 1接收地面實況輸出y(t)作為輸入。 — Page 372, [Deep Learning](http://amzn.to/2wHImcR), 2016. ## 工作示例 讓我們通過一個簡短的例子讓教師強制具體化。 給定以下輸入序列: ```py Mary had a little lamb whose fleece was white as snow ``` 想象一下,我們想要訓練一個模型,在給定前一個單詞序列的情況下生成序列中的下一個單詞。 首先,我們必須添加一個標記來表示序列的開始,另一個標記來表示序列的結束。我們將分別使用“ _[START]_ ”和“ _[END]_ ”。 ```py [START] Mary had a little lamb whose fleece was white as snow [END] ``` 接下來,我們輸入模型“ _[START]_ ”并讓模型生成下一個單詞。 想象一下,該模型生成單詞“ _a_ ”,但當然,我們期望“ _Mary_ ”。 ```py X, yhat [START], a ``` 樸素地,我們可以輸入“ _a_ ”作為輸入的一部分,以生成序列中的后續單詞。 ```py X, yhat [START], a, ? ``` 您可以看到模型偏離軌道,并且會因為它生成的每個后續單詞而受到懲罰。這使學習速度變慢,模型不穩定。 相反,我們可以使用教師強制。 在第一個例子中,當模型生成“ _a_ ”作為輸出時,我們可以在計算錯誤后丟棄此輸出并輸入“ _Mary_ ”作為后續時間步的輸入的一部分。 ```py X, yhat [START], Mary, ? ``` 然后,我們可以為每個輸入 - 輸出字對重復此過程。 ```py X, yhat [START], ? [START], Mary, ? [START], Mary, had, ? [START], Mary, had, a, ? ... ``` 該模型將快速學習正確的序列,或更正序列的統計屬性。 ## 教師強迫的延伸 教師強制是一種快速有效的方法,用于訓練循環神經網絡,該網絡使用先前時間步長的輸出作為模型的輸入。 但是,當生成的序列與訓練期間模型所看到的不同時,該方法還可能導致在實踐中使用時可能脆弱或受限的模型。 這在這種類型的模型的大多數應用中是常見的,因為輸出本質上是概率性的。這種類型的模型應用通常稱為開環。 > 不幸的是,該過程可能導致在調節環境中作為小預測誤差化合物的生成問題。這會導致預測表現較差,因為RNN的調節環境(先前生成的樣本的序列)與訓練期間看到的序列不同。 - [教授強迫:一種新的訓練遞歸網絡算法](https://arxiv.org/abs/1610.09038),2016。 有許多方法可以解決這個限制,例如: ### 搜索候選輸出序列 通常用于預測離散值輸出(例如單詞)的模型的一種方法是對每個單詞的預測概率執行搜索以生成多個可能的候選輸出序列。 此方法用于機器翻譯等問題,以優化翻譯的輸出序列。 該事后操作的常見搜索過程是[波束搜索](https://en.wikipedia.org/wiki/Beam_search)。 > 通過使用保持若干生成的目標序列的波束搜索啟發式可以減輕這種差異 - [用于循環神經網絡的序列預測的預定采樣](https://arxiv.org/abs/1506.03099),2015。 ### 課程學習 波束搜索方法僅適用于具有離散輸出值的預測問題,不能用于實值輸出。 強迫學習的一種變化是在訓練期間引入先前時間步驟產生的輸出,以鼓勵模型學習如何糾正自己的錯誤。 > 我們建議改變訓練過程,以逐步強迫模型處理自己的錯誤,就像在推理過程中一樣。 — [Scheduled Sampling for Sequence Prediction with Recurrent Neural Networks](https://arxiv.org/abs/1506.03099), 2015. 該方法稱為課程學習,涉及隨機選擇使用地面實況輸出或前一時間步的生成輸出作為當前時間步的輸入。 課程在所謂的預定抽樣中隨時間而變化,其中程序從強制學習開始,并且慢慢降低在訓練時期內強制輸入的概率。 還有其他教師強制的擴展和變體,如果您有興趣,我鼓勵您探索它們。 ## 進一步閱讀 如果您要深入了解,本節將提供有關該主題的更多資源。 ### 文件 * [一種連續運行全循環神經網絡的學習算法](http://ieeexplore.ieee.org/document/6795228/),1989。 * [用循環神經網絡進行序列預測的預定采樣](https://arxiv.org/abs/1506.03099),2015。 * [教授強迫:一種新的訓練遞歸網絡算法](https://arxiv.org/abs/1610.09038),2016。 ### 圖書 * 第10.2.1節,教師強制和輸出復發網絡,[深度學習](http://amzn.to/2wHImcR),2016年。 ## 摘要 在這篇文章中,您發現教師強制作為訓練循環神經網絡的方法,該神經網絡使用前一時間步的輸出作為輸入。 具體來說,你學到了: * 訓練循環神經網絡的問題是使用先前時間步長的輸出作為輸入。 * 在訓練這些類型的循環網絡時,教師強制解決緩慢收斂和不穩定的方法。 * 教師強迫的擴展允許訓練有素的模型更好地處理這種類型網絡的開環應用。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看