seq2seq學習

根據輸出和輸入序列不同數量rnn可以有多種不同的結構:
one to one 結構,僅僅只是簡單的給一個輸入得到一個輸出,此處並未體現序列的特徵,例如圖像分類場景。
one to many 結構,給一個輸入得到一系列輸出,這種結構可用於生產圖片描述的場景。
many to one 結構,給一系列輸入得到一個輸出,這種結構可用於文本情感分析,對一系列的文本輸入進行分類,看是消極還是積極情感。
many to many 結構,給一些列輸入得到一系列輸出,這種結構可用於翻譯或聊天對話場景,對輸入的文本轉換成另外一些列文本。
同步 many to many 結構,它是經典的rnn結構,前一輸入的狀態會帶到下一個狀態中,而且每個輸入都會對應一個輸出,我們最熟悉的就是用於字符預測了,同樣也可以用於視頻分類,對視頻的幀打標籤。
 
在 many to many 的兩種模型中,可以看到第四和第五種是有差異的,經典的rnn結構的輸入和輸出序列必須要是等長,它的應用場景也比較有限。
而第四種它可以是輸入和輸出序列不等長,這種模型便是seq2seq模型,即Sequence to Sequence。
它實現了從一個序列到另外一個序列的轉換,比如google曾用seq2seq模型加attention模型來實現了翻譯功能,類似的還可以實現聊天機器人對話模型。

seq2seq屬於encoder-decoder結構的一種,這裏看看常見的encoder-decoder結構,基本思想就是利用兩個RNN,一個RNN作爲encoder,另一個RNN作爲decoder。
encoder負責將輸入序列壓縮成指定長度的向量,這個向量就可以看成是這個序列的語義,這個過程稱爲編碼。
而decoder則負責根據語義向量生成指定的序列,這個過程也稱爲解碼。
https://blog.csdn.net/wangyangzhizhou/article/details/77883152

Attention模型的結果就是在每次識別時,首先計算每個特徵的權值,然後對特徵進行加權求和,權值越大,該特徵對當前識別的貢獻就大。 
https://blog.csdn.net/jteng/article/details/52864401
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章