日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第八课 RNN条件生成与Attention机制

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第八课 RNN条件生成与Attention机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1 RNN條件生成
  • 2 機器翻譯
    • 2.1 V1:Encoder-Decoder
    • 2.2 V2:Attention-based Encoder-decoder
    • 2.3 V3:bi-directional encode layer
    • 2.4 V4:Residual Encode layer
  • 3 Attention
    • 3.1 self attention
    • 3.2 hierarchical attention
  • 4 圖像生成文本
    • 4.1 問題引入
    • 4.2 模型變遷
      • 4.2.1 M—RNN
      • 4.2.2 Neural Image Caption
      • 4.2.3 attention based

1 RNN條件生成

RNN可以解決的問題有多種,根據輸入輸出個數不同分為:
1 一對多:圖像描述
2 多對一:文本分類
3 多對多:
實時多對多:輸入法、視頻解說
輸入完成再多對多:機器翻譯

條件生成問題:P(y|x)

2 機器翻譯

2.1 V1:Encoder-Decoder

encoder-decoder由2個RNN組成。RNN一般具體指LSTM。在手機上的時候一般使用GRU模型。
第一個RNN做編碼的事情。把輸入編碼為S,最后一個單元的輸出作為編碼S。
第二個RNN做解碼的事情。把S輸入,得出第一個詞,第一個作為輸入得到第二次輸出…
decoder一個向量,之后做一個全連接softmax預測下一個詞。
缺點:向量S一般是固定長度,例如1024,2048,能夠存儲的信息有限。
RNN中有忘記門,長度越長,前面輸入RNN的信息就越被稀釋。

2.2 V2:Attention-based Encoder-decoder

這個網絡是在前一個的基礎上添加了Attention機制。
首先每一步的輸出都以加權的方式參與到計算中得到attention。
第二:輸出的attention參與到decoder的第二步計算中。在計算decoder第二步輸出的時候參與的對象有3個:第一步的輸出結果、第一步到第二步的隱狀態hi,以及attention。
第三,第二步計算得到的hi,會再次參與attention的計算。計算之后attention參與到decoder的第三步中。

具體Attention層
Attention的計算:LSTM每一步的輸出向量a=[a1,a2,...an]a=[a_1,a_2,...a_n]a=[a1?,a2?,...an?]
decoder每一步的中間狀態hi
alpha=[tanh(w1?aj+w2?hi)alpha = [tanh(w1*aj+w2*hi)alpha=[tanh(w1?aj+w2?hi) for j in range(n)]range(n)]range(n)]
attention加權:alpha*a

global attention 計算量大,提出local attention。

2.3 V3:bi-directional encode layer

使用雙向RNN做encode。

2.4 V4:Residual Encode layer

最后得到谷歌的機器翻譯網絡:

3 Attention

除了global attention,local attention,還有self attention、hierarchical attention。

3.1 self attention

可以理解為source=target的情況下,捕捉詞與詞之間的關系。這可以用于知識圖譜抽取關系,實體詞等。

3.2 hierarchical attention

一種是在文本分類中。第一層詞取得embedding,第二層是雙向LSTM。對第二層的輸出做合并,可以使用拼接、average或者max,拼接過程中加入attention。將輸出作為第三層的輸入,送入MLP中,得到正確的分類。

在對文章分類過程中,一種策略是先看句子是什么情況,再看句子中的詞是什么情況。

對每個句子中的詞都會做一個RRN。例如圖中是對第二句話S2做RNN。
輸入層是詞。第二層是雙向LSTM,對詞做encode。輸出結果以及上一個句子的encoder輸出,加入attention,得到輸出是句子編碼。一個層級完成。

上一個層級是句子。不同的句子之間算一個RNN。得到所有句子的編碼。
之后做decoder,做分類。

attention 就是一個加權,看哪個對象權重高。

embedding就是把用one-hot形式表示的詞向量,通過table projection的方式表示為一個固定維度的稠密向量。例如詞庫中有40萬詞,那就是把一個40萬維的詞向量映射為一個300維的詞向量。

4 圖像生成文本

4.1 問題引入

1 圖像檢索
2 盲人導航:引導盲人自拍
3 少兒教育-看圖說話

數據集:AI Challenger: 圖像中文描述數據
評測:BLEU score

4.2 模型變遷

4.2.1 M—RNN

1 輸入詞生成embedding
2 對embedding做全連接生成256維度的詞表達
3 Embedding輸入到RNN生成更加抽象的embedding
4 256維度的embedding、RNN的embedding以及圖像特征同時輸入給multimodal。此處的圖像特征是AlexNet的第七層輸出。
5 最后:輸出交給分類層做softmax,預測出下一個詞。

4.2.2 Neural Image Caption

模型show and tell,是斯坦福大學李飛飛實驗室提出的。

1 圖像特征使用更強大的CNN提取,例如googlenet、residual等
2 圖像特征只提取一次
3 用LSTM生成文本

4.2.3 attention based

  • show attend and tell
  • 1 輸入圖片,不獲取CNN的全連接層,而是使用某個卷積層的feature。
    卷積層有位置信息, 每個位置的值都對應原圖中的一個區域。每個channel對應位置相同。例如在一個MxMxC的特征中,對(i,j)這個位置對應原圖中的某一塊區域,不同channel的(i,j)的值都對應原圖中的同一塊區域。
    我們把不同channel,同一個位置的值摳出來,當做一個向量,代表這個區域的特征表達,最后會得到MxM個位置信息。

    2 將這MxM個特征送入RNN網絡中,會為不同位置的特征賦予不同的注意力。不同位置的圖可能會輸出不同的詞:bird、water、over。


    a對應圖片中每個位置的權重
    etie_{ti}eti?是通過對第i個位置的信息和上一步記憶做函數變換
    αti\alpha _{ti}αti?表示t時刻位置i的權重(注意力)

    14x14x256(怎么會有256個通道?)

    問題:一個LSTM同時做了兩件事情:attention和分類。這會導致同樣大小的區塊存了更多的內容。

  • top down attention
  • 第一層top-down attention LSTM負責學習attention。輸入是上一時刻第二層LSTM的記憶ht?12h_{t-1}^2ht?12?、圖像的全局信息(所有feature map的平均)vvv,輸入詞語的embedding。
    這一層的輸出與圖像特征做加權學習到attention。

    第二層language LSTM 是用于分類預測的。輸入是attention以及第一層的輸出。

    此外這個模型的特點是對原始圖片使用selective detection,選取了不同的原始區域作為特征提取。在上一個模型中使用的是一樣大小的特征區域,這會影響效果。

    總結

    以上是生活随笔為你收集整理的第八课 RNN条件生成与Attention机制的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。