<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    一文看懂從 RNN 到 LSTM

    共 1849字,需瀏覽 4分鐘

     ·

    2020-07-24 08:22


    fc83699c77006e581c88d14a42e8ea5b.webp

    來自 |?知乎? 作者 |?陳誠鏈接 | https://zhuanlan.zhihu.com/p/32085405


    ba4a9b83e260d812f604105dfe225543.webp
    這是在看了臺大李宏毅教授的深度學習視頻之后的一點總結(jié)和感想。看完介紹的第一部分 RNN 尤其 LSTM 的介紹之后,整個人醍醐灌頂。本篇博客就是對視頻的一些記錄加上了一些個人的思考。


    ???0. 從 RNN 說起

    循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是一種用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。相比一般的神經(jīng)網(wǎng)絡(luò)來說,他能夠處理序列變化的數(shù)據(jù)。比如某個單詞的意思會因為上文提到的內(nèi)容不同而有不同的含義,RNN 就能夠很好地解決這類問題。

    ???1. 普通 RNN

    先簡單介紹一下一般的 RNN。其主要形式如下圖所示(圖片均來自臺大李宏毅教授的PPT):3ff20d91f2f1bc681910ba7bee40730c.webp這里:9093eb1befcce7da4a955840433b50e1.webp?為當前狀態(tài)下數(shù)據(jù)的輸入,?25b01e4121ad3d7d284cfdeaf8a82c5c.webp?表示接收到的上一個節(jié)點的輸入。1f7221c4c7b60410f741fab0c087970e.webp?為當前節(jié)點狀態(tài)下的輸出,而?c88bfbda64f266f926dba51e261a69a2.webp?為傳遞到下一個節(jié)點的輸出。通過上圖的公式可以看到,輸出?h'?與?x?和?h?的值都相關(guān)。而?y?則常常使用?h'?投入到一個線性層(主要是進行維度映射)然后使用softmax進行分類得到需要的數(shù)據(jù)。對這里的?y?如何通過?h'?計算得到往往看具體模型的使用方式。通過序列形式的輸入,我們能夠得到如下形式的 RNN。f52ca5966648c3d77e9bfae32c0e5018.webp


    ???2. LSTM

    2.1 什么是 LSTM

    長短期記憶(Long short-term memory, LSTM)是一種特殊的 RNN,主要是為了解決長序列訓練過程中的梯度消失和梯度爆炸問題。簡單來說,就是相比普通的 RNN,LSTM 能夠在更長的序列中有更好的表現(xiàn)。LSTM 結(jié)構(gòu)(圖右)和普通 RNN 的主要輸入輸出區(qū)別如下所示。8c94fb9a59756a884d979449b3cb473d.webp相比RNN只有一個傳遞狀態(tài)?95cc15b522848d152bb90a6ecb4f477a.webp?,LSTM有兩個傳輸狀態(tài),一個?71b1059a102930b2fb09b97059061c30.webp?(cell state),和一個?95cc15b522848d152bb90a6ecb4f477a.webp(hidden state)。(Tips:RNN 中的?95cc15b522848d152bb90a6ecb4f477a.webp?對于 LSTM 中的?71b1059a102930b2fb09b97059061c30.webp?)其中對于傳遞下去的?71b1059a102930b2fb09b97059061c30.webp?改變得很慢,通常輸出的?71b1059a102930b2fb09b97059061c30.webp?是上一個狀態(tài)傳過來的?f025ee5fbd7b124a35cfa47965cad4b1.webp?加上一些數(shù)值。而?95cc15b522848d152bb90a6ecb4f477a.webp?則在不同節(jié)點下往往會有很大的區(qū)別。

    2.2 深入 LSTM 結(jié)構(gòu)

    下面具體對 LSTM 的內(nèi)部結(jié)構(gòu)來進行剖析。首先使用 LSTM 的當前輸入?c9c36eecea01c7b914e502eae9c60d9a.webp?和上一個狀態(tài)傳遞下來的?4830486f6f669a153430494ef4ec72df.webp?拼接訓練得到四個狀態(tài)。9893497efa72763f1fa9e5e179691b00.webp43327100db4e126d7fa76b1b9cc0157f.webp其中,?61ea6af5365e2c8b42643a429febc2cd.webp?,?93a5796341ed7440c5065d1e9cbfa56f.webp?,0f8cc60244943be033c9368103e893b1.webp?是由拼接向量乘以權(quán)重矩陣之后,再通過一個?bd62a36f8d625e7eb16d3f6880d7ad05.webp?激活函數(shù)轉(zhuǎn)換成0到1之間的數(shù)值,來作為一種門控狀態(tài)。而?7f6cef486c7074ee48cecae54f6abc77.webp?則是將結(jié)果通過一個?34d950532c60cf7410931051843e60d6.webp?激活函數(shù)將轉(zhuǎn)換成-1到1之間的值(這里使用?34d950532c60cf7410931051843e60d6.webp?是因為這里是將其做為輸入數(shù)據(jù),而不是門控信號)。

    下面開始進一步介紹這四個狀態(tài)在 LSTM 內(nèi)部的使用。(敲黑板)

    e90f44fc546ca93a80b7b2d8f2bf946f.webp97e78c5a8e3d2c0f783cf0af2cbc553c.webp?是 Hadamard Product,也就是操作矩陣中對應(yīng)的元素相乘,因此要求兩個相乘矩陣是同型的。?0065db13c3f6c4058c80573b67a96375.webp?則代表進行矩陣加法。
    LSTM 內(nèi)部主要有三個階段:1. 忘記階段。這個階段主要是對上一個節(jié)點傳進來的輸入進行選擇性忘記。簡單來說就是會 “忘記不重要的,記住重要的”。具體來說是通過計算得到的?61ea6af5365e2c8b42643a429febc2cd.webp?(f表示forget)來作為忘記門控,來控制上一個狀態(tài)的?f025ee5fbd7b124a35cfa47965cad4b1.webp?哪些需要留哪些需要忘。2. 選擇記憶階段。這個階段將這個階段的輸入有選擇性地進行“記憶”。主要是會對輸入?c9c36eecea01c7b914e502eae9c60d9a.webp?進行選擇記憶。哪些重要則著重記錄下來,哪些不重要,則少記一些。當前的輸入內(nèi)容由前面計算得到的?7f6cef486c7074ee48cecae54f6abc77.webp?表示。而選擇的門控信號則是由?93a5796341ed7440c5065d1e9cbfa56f.webp?(i 代表 information)來進行控制。
    將上面兩步得到的結(jié)果相加,即可得到傳輸給下一個狀態(tài)的?71b1059a102930b2fb09b97059061c30.webp?。也就是上圖中的第一個公式。
    3. 輸出階段。這個階段將決定哪些將會被當成當前狀態(tài)的輸出。主要是通過?0f8cc60244943be033c9368103e893b1.webp?來進行控制的。并且還對上一階段得到的?e6a2bb12a92b29003fad6fe4eb11e13b.webp?進行了放縮(通過一個 tanh 激活函數(shù)進行變化)。與普通 RNN 類似,輸出?609c51f1126980aa67fccc62c51e0104.webp?往往最終也是通過?95cc15b522848d152bb90a6ecb4f477a.webp?變化得到。


    ???3. 總結(jié)

    以上,就是 LSTM 的內(nèi)部結(jié)構(gòu)。通過門控狀態(tài)來控制傳輸狀態(tài),記住需要長時間記憶的,忘記不重要的信息;而不像普通的 RNN 那樣只能夠“呆萌”地僅有一種記憶疊加方式。對很多需要“長期記憶”的任務(wù)來說,尤其好用。但也因為引入了很多內(nèi)容,導致參數(shù)變多,也使得訓練難度加大了很多。因此很多時候我們往往會使用效果和 LSTM 相當?shù)珔?shù)更少的 GRU 來構(gòu)建大訓練量的模型。—?完?

    猜你喜歡

    瀏覽 57
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    欧美精品99 | 人人看人人摸人人插 | 国产一级a毛一级a看免费漫画 | 久久久久亚洲AV成人网址老师板 | www.超碰 |