<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/stacked-long-short-term-memory-networks/](https://machinelearningmastery.com/stacked-long-short-term-memory-networks/) ### 使用Python中的示例代碼輕松介紹Stacked LSTM 。 原始LSTM模型由單個隱藏的LSTM層和后面的標準前饋輸出層組成。 Stacked LSTM是此模型的擴展,具有多個隱藏的LSTM層,其中每個層包含多個存儲器單元。 在這篇文章中,您將發現Stacked LSTM模型架構。 完成本教程后,您將了解: * 深度神經網絡架構的好處。 * Stacked LSTM循環神經網絡架構。 * 如何使用Keras在Python中實現堆疊LSTM。 讓我們開始吧。 ![Gentle Introduction to Stacked Long Short-Term Memory Networks](img/1fe10e9feb242d8947c00a2647e704f4.jpg) 堆疊長短期記憶網絡 的照片由 [Joost Markerink](https://www.flickr.com/photos/joostmarkerink/17303551006/) 拍攝,保留一些權利。 ## 概觀 這篇文章分為3個部分,它們是: 1. 為什么要增加深度? 2. 堆疊式LSTM架構 3. 在Keras中實現堆疊LSTM ## 為什么要增加深度? 堆疊LSTM隱藏層使得模型更深入,更準確地將描述作為深度學習技術獲得。 神經網絡的深度通常歸因于該方法在廣泛的挑戰性預測問題上的成功。 > [深度神經網絡的成功]通常歸因于由于多個層而引入的層次結構。每個層處理我們希望解決的任務的某些部分,并將其傳遞給下一個。從這個意義上講,DNN可以看作是一個處理流水線,其中每個層在將任務傳遞給下一個任務之前解決了部分任務,直到最后一層提供輸出。 - [訓練和分析深度循環神經網絡](https://papers.nips.cc/paper/5166-training-and-analysing-deep-recurrent-neural-networks),2013 可以將其他隱藏層添加到多層感知器神經網絡中以使其更深。附加隱藏層被理解為重新組合來自先前層的學習表示并在高抽象級別創建新表示。例如,從線到形狀到對象。 足夠大的單個隱藏層多層感知器可用于近似大多數功能。增加網絡的深度提供了另一種解決方案,需要更少的神經元和更快的訓練。最終,添加深度是一種代表性優化。 > 深度學習是圍繞一個假設建立的,即深層次分層模型在表示某些函數時可以指數級更高效,而不是淺層函數。 - [如何構建深度循環神經網絡](https://arxiv.org/abs/1312.6026),2013。 ## 堆疊式LSTM架構 LSTM可以利用相同的好處。 鑒于LSTM對序列數據進行操作,這意味著層的添加增加了輸入觀察隨時間的抽象級別。實際上,隨著時間的推移進行分塊觀察或在不同時間尺度上表示問題。 > ...通過將多個重復隱藏狀態堆疊在一起來構建深RNN。該方法可能允許每個級別的隱藏狀態在不同的時間尺度上操作 - [如何構建深度循環神經網絡](https://arxiv.org/abs/1312.6026),2013 Graves等人介紹了堆疊的LSTM或深LSTM。在將LSTM應用于語音識別方面,打破了具有挑戰性的標準問題的基準。 > RNN本身就具有深度,因為它們的隱藏狀態是所有先前隱藏狀態的函數。啟發本文的問題是RNN是否也能從太空深度中獲益;這就是將多個重復隱藏層堆疊在一起,就像在傳統的深層網絡中堆疊前饋層一樣。 - [語音識別與深度循環神經網絡](https://arxiv.org/abs/1303.5778),2013 在同樣的工作中,他們發現網絡的深度比給定層中的存儲器單元的數量更重要。 堆疊式LSTM現在是用于挑戰序列預測問題的穩定技術。堆疊LSTM架構可以定義為由多個LSTM層組成的LSTM模型。上面的LSTM層提供序列輸出而不是單個值輸出到下面的LSTM層。具體地說,每個輸入時間步長一個輸出,而不是所有輸入時間步長的一個輸出時間步長。 ![Stacked Long Short-Term Memory Archiecture](img/18919d3d5e8e3ef675e8f630308fa156.jpg) 堆疊長短期內存架構 ## 在Keras中實現堆疊LSTM 我們可以在Keras Python深度學習庫中輕松創建Stacked LSTM模型 每個LSTM存儲器單元都需要3D輸入。當LSTM處理一個輸入時間步長序列時,每個存儲器單元將輸出整個序列的單個值作為2D陣列。 我們可以使用具有單個隱藏LSTM層的模型來演示以下內容,該LSTM層也是輸出層。 ```py # Example of one output for whole sequence from keras.models import Sequential from keras.layers import LSTM from numpy import array # define model where LSTM is also output layer model = Sequential() model.add(LSTM(1, input_shape=(3,1))) model.compile(optimizer='adam', loss='mse') # input time steps data = array([0.1, 0.2, 0.3]).reshape((1,3,1)) # make and show prediction print(model.predict(data)) ``` 輸入序列有3個值。運行該示例將輸入序列的單個值輸出為2D數組。 ```py [[ 0.00031043]] ``` 要堆疊LSTM層,我們需要更改先前LSTM層的配置,以輸出3D數組作為后續層的輸入。 我們可以通過將層上的return_sequences參數設置為True(默認為False)來完成此操作。這將為每個輸入時間步返回一個輸出并提供3D數組。 以下是與return_sequences = True相同的例子。 ```py # Example of one output for each input time step from keras.models import Sequential from keras.layers import LSTM from numpy import array # define model where LSTM is also output layer model = Sequential() model.add(LSTM(1, return_sequences=True, input_shape=(3,1))) model.compile(optimizer='adam', loss='mse') # input time steps data = array([0.1, 0.2, 0.3]).reshape((1,3,1)) # make and show prediction print(model.predict(data)) ``` 運行該示例為輸入序列中的每個時間步輸出單個值。 ```py [[[-0.02115841] [-0.05322712] [-0.08976141]]] ``` 下面是定義兩個隱藏層Stacked LSTM的示例: ```py model = Sequential() model.add(LSTM(..., return_sequences=True, input_shape=(...))) model.add(LSTM(...)) model.add(Dense(...)) ``` 只要先前的LSTM層提供3D輸出作為后續層的輸入,我們就可以繼續添加隱藏的LSTM層。例如,下面是一個有4個隱藏層的Stacked LSTM。 ```py model = Sequential() model.add(LSTM(..., return_sequences=True, input_shape=(...))) model.add(LSTM(..., return_sequences=True)) model.add(LSTM(..., return_sequences=True)) model.add(LSTM(...)) model.add(Dense(...)) ``` ## 進一步閱讀 如果您要深入了解,本節將提供有關該主題的更多資源。 * [如何構建深度循環神經網絡](https://arxiv.org/abs/1312.6026),2013。 * [深度循環神經網絡的訓練和分析](https://papers.nips.cc/paper/5166-training-and-analysing-deep-recurrent-neural-networks),2013。 * [語音識別與深度循環神經網絡](https://arxiv.org/abs/1303.5778),2013。 * [使用循環神經網絡生成序列](https://arxiv.org/abs/1308.0850),2014年。 ## 摘要 在這篇文章中,您發現了Stacked Long Short-Term Memory網絡架構。 具體來說,你學到了: * 深度神經網絡架構的好處。 * Stacked 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>

                              哎呀哎呀视频在线观看