成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能開發者 正文
    發私信給汪思穎
    發送

    0

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    本文作者: 汪思穎 2017-09-01 18:16
    導語:幫助初學者開啟全新視角

    雷鋒網 AI科技評論按:本文作者何之源,原文載于知乎專欄AI Insight,AI科技評論獲其授權發布。

    本文主要是利用圖片的形式,詳細地介紹了經典的RNN、RNN幾個重要變體,以及Seq2Seq模型、Attention機制。希望這篇文章能夠提供一個全新的視角,幫助初學者更好地入門。

    一、從單層網絡談起

    在學習RNN之前,首先要了解一下最基本的單層網絡,它的結構如圖:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    輸入是x,經過變換Wx+b和激活函數f得到輸出y。相信大家對這個已經非常熟悉了。

    二、經典的RNN結構(N vs N)

    在實際應用中,我們還會遇到很多序列形的數據:


    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    如:

    • 自然語言處理問題。x1可以看做是第一個單詞,x2可以看做是第二個單詞,依次類推。

    • 語音處理。此時,x1、x2、x3……是每幀的聲音信號。

    • 時間序列問題。例如每天的股票價格等等

    序列形的數據就不太好用原始的神經網絡處理了。為了建模序列問題,RNN引入了隱狀態h(hidden state)的概念,h可以對序列形的數據提取特征,接著再轉換為輸出。先從h1的計算開始看:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    圖示中記號的含義是:

    • 圓圈或方塊表示的是向量。

    • 一個箭頭就表示對該向量做一次變換。如上圖中h0和x1分別有一個箭頭連接,就表示對h0和x1各做了一次變換。

    在很多論文中也會出現類似的記號,初學的時候很容易搞亂,但只要把握住以上兩點,就可以比較輕松地理解圖示背后的含義。

    h2的計算和h1類似。要注意的是,在計算時,每一步使用的參數U、W、b都是一樣的,也就是說每個步驟的參數都是共享的,這是RNN的重要特點,一定要牢記。

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    依次計算剩下來的(使用相同的參數U、W、b):

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    我們這里為了方便起見,只畫出序列長度為4的情況,實際上,這個計算過程可以無限地持續下去。

    我們目前的RNN還沒有輸出,得到輸出值的方法就是直接通過h進行計算:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    正如之前所說,一個箭頭就表示對對應的向量做一次類似于f(Wx+b)的變換,這里的這個箭頭就表示對h1進行一次變換,得到輸出y1。

    剩下的輸出類似進行(使用和y1同樣的參數V和c):

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    OK!大功告成!這就是最經典的RNN結構,我們像搭積木一樣把它搭好了。它的輸入是x1, x2, .....xn,輸出為y1, y2, ...yn,也就是說,輸入和輸出序列必須要是等長的

    由于這個限制的存在,經典RNN的適用范圍比較小,但也有一些問題適合用經典的RNN結構建模,如:

    • 計算視頻中每一幀的分類標簽。因為要對每一幀進行計算,因此輸入和輸出序列等長。

    • 輸入為字符,輸出為下一個字符的概率。這就是著名的Char RNN(詳細介紹請參考:The Unreasonable Effectiveness of Recurrent Neural Networks,地址:http://karpathy.github.io/2015/05/21/rnn-effectiveness/。Char RNN可以用來生成文章,詩歌,甚至是代碼,非常有意思)。

    三、N VS 1

    有的時候,我們要處理的問題輸入是一個序列,輸出是一個單獨的值而不是序列,應該怎樣建模呢?實際上,我們只在最后一個h上進行輸出變換就可以了:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    這種結構通常用來處理序列分類問題。如輸入一段文字判別它所屬的類別,輸入一個句子判斷其情感傾向,輸入一段視頻并判斷它的類別等等。

    四、1 VS N

    輸入不是序列而輸出為序列的情況怎么處理?我們可以只在序列開始進行輸入計算:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    還有一種結構是把輸入信息X作為每個階段的輸入:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    下圖省略了一些X的圓圈,是一個等價表示:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    這種1 VS N的結構可以處理的問題有:

    • 從圖像生成文字(image caption),此時輸入的X就是圖像的特征,而輸出的y序列就是一段句子

    • 從類別生成語音或音樂等

    五、N vs M

    下面我們來介紹RNN最重要的一個變種:N vs M。這種結構又叫Encoder-Decoder模型,也可以稱之為Seq2Seq模型。

    原始的N vs N RNN要求序列等長,然而我們遇到的大部分問題序列都是不等長的,如機器翻譯中,源語言和目標語言的句子往往并沒有相同的長度。

    為此,Encoder-Decoder結構先將輸入數據編碼成一個上下文向量c:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    得到c有多種方式,最簡單的方法就是把Encoder的最后一個隱狀態賦值給c,還可以對最后的隱狀態做一個變換得到c,也可以對所有的隱狀態做變換。

    拿到c之后,就用另一個RNN網絡對其進行解碼,這部分RNN網絡被稱為Decoder。具體做法就是將c當做之前的初始狀態h0輸入到Decoder中:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    還有一種做法是將c當做每一步的輸入:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    由于這種Encoder-Decoder結構不限制輸入和輸出的序列長度,因此應用的范圍非常廣泛,比如:

    • 機器翻譯。Encoder-Decoder的最經典應用,事實上這一結構就是在機器翻譯領域最先提出的

    • 文本摘要。輸入是一段文本序列,輸出是這段文本序列的摘要序列。

    • 閱讀理解。將輸入的文章和問題分別編碼,再對其進行解碼得到問題的答案。

    • 語音識別。輸入是語音信號序列,輸出是文字序列。

    • …………

    六、Attention機制

    在Encoder-Decoder結構中,Encoder把所有的輸入序列都編碼成一個統一的語義特征c再解碼,因此, c中必須包含原始序列中的所有信息,它的長度就成了限制模型性能的瓶頸。如機器翻譯問題,當要翻譯的句子較長時,一個c可能存不下那么多信息,就會造成翻譯精度的下降。

    Attention機制通過在每個時間輸入不同的c來解決這個問題,下圖是帶有Attention機制的Decoder:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    每一個c會自動去選取與當前所要輸出的y最合適的上下文信息。具體來說,我們用 完全圖解RNN、RNN變體、Seq2Seq、Attention機制 衡量Encoder中第j階段的hj和解碼時第i階段的相關性,最終Decoder中第i階段的輸入的上下文信息 完全圖解RNN、RNN變體、Seq2Seq、Attention機制 就來自于所有 完全圖解RNN、RNN變體、Seq2Seq、Attention機制完全圖解RNN、RNN變體、Seq2Seq、Attention機制 的加權和。

    以機器翻譯為例(將中文翻譯成英文):

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    輸入的序列是“我愛中國”,因此,Encoder中的h1、h2、h3、h4就可以分別看做是“我”、“愛”、“中”、“國”所代表的信息。在翻譯成英語時,第一個上下文c1應該和“我”這個字最相關,因此對應的 完全圖解RNN、RNN變體、Seq2Seq、Attention機制 就比較大,而相應的 完全圖解RNN、RNN變體、Seq2Seq、Attention機制完全圖解RNN、RNN變體、Seq2Seq、Attention機制完全圖解RNN、RNN變體、Seq2Seq、Attention機制 就比較小。c2應該和“愛”最相關,因此對應的 完全圖解RNN、RNN變體、Seq2Seq、Attention機制 就比較大。最后的c3和h3、h4最相關,因此 完全圖解RNN、RNN變體、Seq2Seq、Attention機制完全圖解RNN、RNN變體、Seq2Seq、Attention機制 的值就比較大。

    至此,關于Attention模型,我們就只剩最后一個問題了,那就是:這些權重 aij 是怎么來的?

    事實上, aij同樣是從模型中學出的,它實際和Decoder的第i-1階段的隱狀態、Encoder第j個階段的隱狀態有關。

    同樣還是拿上面的機器翻譯舉例, a1j 的計算(此時箭頭就表示對h'和 完全圖解RNN、RNN變體、Seq2Seq、Attention機制 同時做變換):

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    a2j 的計算:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    a3j的計算:

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    以上就是帶有Attention的Encoder-Decoder模型計算的全過程。

    七、總結

    本文主要講了N vs N,N vs 1、1 vs N、N vs M四種經典的RNN模型,以及如何使用Attention結構。希望能對大家有所幫助。

    可能有小伙伴發現沒有LSTM的內容,其實是因為LSTM從外部看和RNN完全一樣,因此上面的所有結構對LSTM都是通用的,想了解LSTM內部結構的可以參考這篇文章:Understanding LSTM Networks(地址:http://colah.github.io/posts/2015-08-Understanding-LSTMs/),寫得非常好,推薦閱讀。

    雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

    完全圖解RNN、RNN變體、Seq2Seq、Attention機制

    分享:
    相關文章

    編輯

    關注AI學術,例如論文
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說