最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

強(qiáng)烈推薦!臺大李宏毅自注意力機(jī)制和Transformer詳解!

2023-03-01 21:20 作者:Asuno夜空  | 我要投稿

Self-attention

對于輸入Seg中向量不確定多的情況,Self-attention會考慮所有向量。

(且可以多次交替使用)

Self-attention的輸入是一組向量,輸出也是一組向量,但考慮了整個seq產(chǎn)生的。步驟如下:

1、判斷哪個和a1的關(guān)聯(lián)性

求關(guān)聯(lián)性的方法 點(diǎn)積和相加:

點(diǎn)積法:將兩個向量分別乘以權(quán)重矩陣,再進(jìn)行點(diǎn)積。

2、把a(bǔ)1乘以W叫query,把a(bǔ)3-a4乘W叫key,計算出每個的關(guān)聯(lián)性α,再用softmax得到α'。

3、然后再將所有向量v * α,再求和得到b

用矩陣相乘來理解一下:

多頭注意力模型

相關(guān)有很多種,所以可能不止一個q,不同的q負(fù)責(zé)不同種類的相關(guān)性。有幾個q就自然有幾個k和v。

以兩個head為例:

得到多個b,在將其接起來傳到下一層。

位置編碼

沒有包含位置信息,但有時位置資訊有時很重要。如第一個詞一般不是動詞。

所以,給每個位置加一個位置向量e,然后把e加到a上。

最早的論文中用的vector e:

但也可以學(xué)出來,如多種e的比較:

語音中使用Attention:

seg很長,而Attention矩陣的大小是L^2。

所以長序列的語音問題,會只取一小個范圍。

圖像中使用Attention:

把一張圖片看做vector set,即1×3向量的集合。

CNN也可以看做一種簡化版的self-attention(只考慮感受野內(nèi)的相關(guān)性)。

Self-attention是CNN的廣義。Self-attention彈性更大,可以從更大的數(shù)據(jù)量中得到好處。

Self-Attention vs RNN:

都會把序列扔給FC,Self-Attn考慮了整個Seq,RNN只有左邊的,但其實(shí)RNN也可以用雙向的,即Bi-RNN。

RNN中遠(yuǎn)距離的信息傳遞要經(jīng)過一段時間。且RNN無法并行化,而Self-Attn可以并行處理。

運(yùn)算速度上Self-Attn大于RNN。

圖(Graph)中使用Self-Attetion:

邊已經(jīng)揭示了點(diǎn)的關(guān)聯(lián)性,所以可以選擇只計算邊的頂點(diǎn)間的關(guān)聯(lián)性。這也是一種GNN的變體。

//疑問:是否可以把注意力層理解為一個具有一定RNN功能的CNN層?


Transformer

一個Seq2Seq模型

輸入一個序列,輸出一個序列,輸入輸出序列的長度都不確定,由機(jī)器自己決定。

如:語音辨識,機(jī)器翻譯,語音翻譯(有些語言連文字都沒有),聊天機(jī)器人,甚至文法剖析、多標(biāo)簽分類和目標(biāo)識別。

如臺語語音辨識、合成

硬train一發(fā)

大部分NLP都可以看做Seq2Seq。

架構(gòu)

Encoder 和 Decoder架構(gòu)

Encoder:給一排向量,輸出一排向量

Encoder的一個Block(在自注意力和FC上加了residual,并且使用了layer norm):

更具體地,Encoder的結(jié)構(gòu):

Decoder:

Autoregressive

Decoder會把自己的輸出當(dāng)做下一個輸入。輸入時加一個BEGIN符號。

Transformer的Decoder和Encoder的差別只在于中間部分,以及最后多了一個Softmax。

Decoder中的Masked,即在算bi時,不考慮i之后的aj。這樣更接近于decoder的運(yùn)作方式。

decoder如何決定輸出序列的長度?

用特殊符號END表示"斷"。讓機(jī)器產(chǎn)生END的概率最大時表示結(jié)束。

AT vs NAT

NAT會給多個BEGIN,一次性生成完成完整的句子(注意位置嵌入的作用)。要由特殊方法判斷終止。

NAT可以平行化,可以控制輸出長度(在語音中可以據(jù)此控制說話速度)。但NAT通常不如AT。

Cross attention

decoder產(chǎn)生一個q,去和encoder的輸出a'做注意力,結(jié)果進(jìn)入FC。(原論文中decoder中每一層都是用encoder最后一層輸出,但也可以變化)

每產(chǎn)生一個字就是從幾千個字中進(jìn)行的分類問題。訓(xùn)練時希望所有的字(含END)的交叉熵最少。

訓(xùn)練decoder時會給正確答案來訓(xùn)練,即teacher forcing。

Copy Mechanism:輸出從輸入中復(fù)制一部分,如聊天機(jī)器人、摘要。

Guided Attention:強(qiáng)迫要看到所有輸入,要求機(jī)器有固定的方式,如訓(xùn)練時Attention必須從左到右。在語音辨識和語音合成中用。

Beam Search:每次找最多的是Greedy Decoding。可能開始選的不好,但是后面很好。Beam Search就是尋找這些路徑的方法,但Beam Search有時有用、有時沒用,因?yàn)橛袝r找出分?jǐn)?shù)最高的路不一定就是最好的,如需要一些創(chuàng)造力、沒有單一答案的任務(wù)(如故事補(bǔ)全、語音合成,TTS加noise才能產(chǎn)生正常的聲音,加入一些隨機(jī)性反而是人類覺得較好的)

BLEU score:最小化交叉熵 ≠ 最大化BLEU score。但是BLEU無法微分!方法:當(dāng)遇到無法optimize,就把它當(dāng)做RL硬做!

訓(xùn)練和測試不一致(Exposure Bias):

一步錯步步錯

方案是給encoder的輸入加一些噪聲,稱為Scheduled Sampling,在Transformer中為了不傷害其并行性會有一定改變。









強(qiáng)烈推薦!臺大李宏毅自注意力機(jī)制和Transformer詳解!的評論 (共 條)

分享到微博請遵守國家法律
泗水县| 富裕县| 贵港市| 新化县| 汉川市| 呈贡县| 新宁县| 都匀市| 莆田市| 玉田县| 西宁市| 泸定县| 邛崃市| 新巴尔虎左旗| 银川市| 株洲市| 东丰县| 长阳| 开封市| 焦作市| 深泽县| 望城县| 万州区| 文化| 蓬安县| 方山县| 沙坪坝区| 望都县| 抚宁县| 台南市| 珲春市| 临湘市| 孟州市| 美姑县| 宝鸡市| 固安县| 温州市| 新乡市| 称多县| 高碑店市| 南平市|