attention 機制中一般需要用到的三個引數
attention 包括硬編碼和軟編碼
其中是編碼器每個step的輸出,
是解碼器每個step的輸出,計算步驟是這樣的:
先對輸入進行編碼,得到
開始解碼了,先用固定的start token也就是
最為q,去和每個
(同時作為k和v)去計算attention,得到加權的
用作為解碼的rnn輸入(同時還有上一步的
),得到
並**出第乙個詞是machine
再繼續**的話,就是用
作為q去求attention:
增加了attention的學習機制後,可以編碼更長的序列資訊,同時,也可以優化輸出序列和輸入序列中,單詞排序不同情況下的表現,這在機器對語句進行理解、摘要或者翻譯中,具有重要影響。
當然,這種attention可能會減少對序列順序的敏感性,同時,由於使用rnn,不能並行化計算。
模型01、02,我沒有採用attention機制,同時只用給定結果的單詞參與運算。導致了模型訓練極度擬合了train訓練集,因此,在valid集上的loss越來越大。在自己抽樣調查中,可以明顯感知,valid上,完全是用train中的原句去**。可以在抽樣中看到。
在模型03中,我採用了attention機制,雖然沿用了只「給定結果的單詞」的方式,但是效果還不錯,在20個epoch訓練後,valid集上交叉熵損失隨著train集的損失穩步下降。抽樣調查也令人欣慰。
參考:**也是
1 請教fork執行機制 UNIX環境程式設計學習
先看 書中分析 呼叫f o r k建立乙個新程序。新程序是呼叫程序的複製品,故稱呼叫程序為父程序,新創 建的程序為子程序。f o r k對父程序返回新子程序的非負程序i d,對子程序則返回0。因為f o r k創 建一新程序,所以說它被呼叫一次 由父程序 但返回兩次 在父程序中和在子程序中 但是測試...
從零開始學MFC 3 訊息對映機制
相對於qt的訊號與槽機制,mfc提供了一套訊息對映機制來處理各種訊息。步驟 1 宣告巨集,寫到.h中 declare message map 2 分界巨集 寫到.cpp中 begin message map myframe,cframewnd 訊息巨集 end message map 3 找訊息巨集...
二十一天學通C 之異常處理機制
異常處理機制 本人節選自 21天學通c 一書 c 並不是第乙個對結構化執行期錯誤處理進行支援的語言。早在20世紀60年代,pl 1就提供了一種內建的異常處理機制 ada也在20世紀80年代提供了自己的異常處理,而c 是在1989年時才有了異常處理機制。但是,c 的異常處理是獨一無二的,並且其已經作為...