云南房產(chǎn)網(wǎng)站建設(shè)seo的理解
一、前言
本文章作為學(xué)習(xí)2023年《李宏毅機器學(xué)習(xí)課程》的筆記,感謝臺灣大學(xué)李宏毅教授的課程,respect!!!
讀這篇文章必須先了解self-attention,可參閱我上一篇。
二、大綱
- Transformer問世
- 原理剖析
- 模型訓(xùn)練
三、Transformer問世
2017 年在文章《Attention Is All You Need》被提出的。應(yīng)用于seq2seq模型,當(dāng)時直接轟動。
四、原理剖析
兩部分組成:Encoder 和 Decoder
- Encoder 結(jié)構(gòu)
接下來從大到小一層層剝開:
剝一下:
輸入一排向量,輸出一排向量
剝兩下:
Encoder 由多個Block組成,串聯(lián)起來
剝?nèi)?#xff1a;
Block裝的是啥?原來是Self-attention!
剝四下:
Self-attention原來加入了residual和Layer Normal,至此剝完了。
說明:
上圖自底向上看,關(guān)鍵點:
1、residual結(jié)構(gòu),輸入接到輸出送入下一層,殘差結(jié)構(gòu);
2、Layer Normal,具體如下圖:
算出標(biāo)準(zhǔn)差和均值后,套用公式計算即可。
以上就是Encoder的全部了!
論文中是這么畫圖表達(dá)的:
注:Positional Encoding是self-attention的位置資訊。
- Decoder 結(jié)構(gòu)
有兩種方法生成輸出:Auto Regressive 和 Non Auto Regressive。
Auto Regressive
給個START符號,把本次輸出當(dāng)做是下一次的輸入,依序進行下去。
Non Auto Regressive
輸入是一排的START符號,一下子梭哈突出一排輸出。
Encoder結(jié)構(gòu)長啥樣?
接下來看下結(jié)構(gòu)長啥樣,先遮住不一樣的部分,其他部分結(jié)構(gòu)基本一致,只不過這里用上了Masked Multi-Head Attention
Masked Multi-Head Attention
啥是Masked Multi-Head Attention?Masked有啥含義?
可以直接理解為單向的Multi-Head Attention,而且是從左邊開始:
說明:這也很好理解,右邊的字符都還沒輸出出來怎么做運算,因此只能是已經(jīng)吐出來的左邊的內(nèi)容做self-attention,這就是masked的含義。
遮住的部分是啥?(cross attention)
最后這邊遮住的部分到底是啥玩意?
別想太復(fù)雜,就還是self-attention。
corss的意思就是v,k來自Encoder,q來自Decoder,僅此而已。
其實也好理解,Decoder是去還原結(jié)果的,那可不得抽下Encoder編碼時候的資訊和上下文語義信息才能還原,缺一不可。
比喻下,前者讓輸出緊扣題意,后者讓其說人話。
小結(jié)
至此,Transformer的結(jié)構(gòu)就闡述完了,無非就是Encoder + Decoder,建議自己在草稿紙上畫畫能夠加深印象。
五、模型訓(xùn)練
transformer的模型訓(xùn)練用的還是cross entropy。
實戰(zhàn)過程中的tips
- copy mechanism
例如:
Machine Translation(機器翻譯),可能使用原文復(fù)制這個技能對于模型而言比較容易,畢竟它不需要創(chuàng)造新詞匯了嘛,這就是copy mechanism。 - Guided Attention
意思就是不要亂Attention,有的放矢地讓模型做attention。
- Beam Search
基本思想就是不要步步好,有可能短期不好但是長期更好。說的和人生似的。
如果模型需要有點創(chuàng)造力,不適合用此方法,這是實做后的結(jié)論。
訓(xùn)練過程記得讓模型看些負(fù)樣本,不至于模型一步錯步步錯,(schedule sampling方法)。
五、小結(jié)
最基本的掌握好Encoder和Decoder就很可以了,其他的在實做過程中遇到問題再問問AI工具。