李宏毅《Deep Learning》學習筆記 - seq2seq

Seq2Seq

視頻:https://www.youtube.com/watch?v=ZjfjPzXw6og

回顧RNN

下面的x1x^1, x2x^2, x3x^3等input vector都是一組向量,RNN模塊是同一個網絡,只是在不同時間的使用。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在Naive RNN中,計算h和y的通用方法。
在這裏插入圖片描述
對比Naive RNN,LSTM可以視爲將原先的h拆分爲兩個輸入:c和h,其中,c的變化比較小,h的變化比較大
在這裏插入圖片描述
在LSTM中,使用h和x合併作爲輸入,計算出z,zi,zf,zoz,z^i,z^f,z^o,作爲不同的gate。下面的粗箭頭,都是一種transform。
在這裏插入圖片描述
也可以將c與h,x一起作爲input,那麼,在設計Weights的時候,最後的部分,用diagonal來計算,便於減少參數。
在這裏插入圖片描述
LSTM block內部的實現方式,就是像下面的描述。
在這裏插入圖片描述
兩個LSTM block串聯在一起的樣子,如下所示。
在這裏插入圖片描述
除了LSTM,另一種常用的是GRU。
GRU只有三個transform,相較於LSTM而言,少了一個。
在這裏插入圖片描述

Sequence Generation

seq2seq model的使用過程

在這裏插入圖片描述
在這裏插入圖片描述
BOS(begin of sentence),EOS(end of sentence)

seq2seq model的訓練過程

和一般的RNN training過程差不多
在這裏插入圖片描述

應用

產生文章,產生圖像,都可以。。。

Conditional Generation

在這裏插入圖片描述

應用1 - Image Caption Generation

在這裏插入圖片描述
使用CNN對圖像抽取vector,然後,將vector作爲每一次input的一部分,餵給RNN。

應用2 - chat bot

在這裏插入圖片描述
在encoder的RNN中,memory中的vector就是一種representation。

應用3 - 語音合成

Dynamic Conditional Generation

對於最後的representation無法表示所有encoder input的情況,Dynamic Conditional Generation是希望在decoder的輸入,每一次都喂入不同的vector,具體喂入什麼,由模型自己決定。
在這裏插入圖片描述

應用1-機器翻譯

下面以機器翻譯爲例,介紹attention-based model的方法。下面省去RNN模型的部分,所有的輸入都是經過RNN。
match的過程就是attention,match的分數也稱爲attention score。
在這裏插入圖片描述
z0z^0對每一個hnh^n都做attention,輸出a0na_0^n,然後,再做softmax,變成a^0n\hat{a}_0^n,然後,再去加權求和,得到c0c^0
c0c^0z0z^0一起作爲decoder的input,產生z1z^1

注意:z0z^0也是被訓練出來的。
在這裏插入圖片描述
後續的操作與前面的一樣,重複直至結束。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

應用2-語音識別

在這裏插入圖片描述

應用3-Image Caption Generation

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
論文的效果,正確的答案
在這裏插入圖片描述
不正確,但是合理的答案
在這裏插入圖片描述
下面是對video caption generation的效果。
在這裏插入圖片描述

Tips

Bad Attention

attention的分佈可能不平均,比較集中在某一個地方。可以對attention做reguization。
在這裏插入圖片描述

訓練和預測不一致

訓練階段使用的是正確答案,而預測時,使用的是模型預測的答案。
在這裏插入圖片描述
在這裏插入圖片描述
這個問題叫做“Exposure Bias”
在這裏插入圖片描述
那麼,怎麼解決呢?
在訓練過程中,使用預測結果,很難訓練出來。
在這裏插入圖片描述
可以將預測結果和真實結果,通過擲色子的方式,選取出來。當然,前期從真實結果中選取的機率要大一些,後面隨着模型越來越穩定,就可以增加從預測結果中選取的機率。
在這裏插入圖片描述
在這裏插入圖片描述
另一種方式是使用beam search
原始的方式其實是一種greed search,使用beam search以後,就可以保留前N個較大的結果。
在這裏插入圖片描述
在這裏插入圖片描述
那麼,能不能使用平均值呢?
可能會有問題,下面是一個例子。
在這裏插入圖片描述

評估標準的選擇

對於生成句子的情況,如果使用單個字或詞來判斷,效果可能還不如對完整句子的判斷。
在這裏插入圖片描述

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