nlp Attention機制學習

2022-05-01 14:51:12 字數 846 閱讀 2554

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 的異常處理是獨一無二的,並且其已經作為...