學習筆記 Transformer

2021-10-10 03:18:23 字數 1852 閱讀 4452

1.transform簡介

transformer中拋棄了傳統的cnn和rnn,整個網路結構完全是由attention機制組成。更準確地講,transformer由且僅由self-attenion和feed forward neural network組成。

乙個基於transformer的可訓練的神經網路可以通過堆疊transformer的形式進行搭建,作者的實驗是通過搭建編碼器和解碼器各6層,總共12層的encoder-decoder,並在機器翻譯中取得了bleu值得新高。

2.transform結構

本質是encoder-decoder的結構:

整體結構 eg: 2個encoder和2個decoder的transformer:

3.殘差模組和layer normalization

在transformer中,每乙個子層(self-attetion,ffnn)之後都會接乙個殘差模組,並且有乙個layer normalization。

(1)殘差引入目的

隨著網路深度的增加,訓練變得愈加困難,這主要是因為在基於隨機梯度下降的網路訓練過程中,誤差訊號的多層反向傳播非常容易引發「梯度瀰散」(梯度過小會使回傳的訓練誤差訊號極其微弱)或者「梯度**」(梯度過大導致模型出現nan)的現象。目前一些特殊的權重初始化策略和批規範化(bn)等方法使這個問題得到了極大改善——網路可以正常訓練了!! 但是實際情形不容樂觀。當模型收斂時,另外的問題又來了:隨著網路深度的增加,訓練誤差沒有降低反而公升高。 這一現象與直覺極其不符,淺層網路可以被訓練優化到乙個很好的解,那麼對應的更深層的網路至少也可以,而不是更差。這一現象在一段時間內困擾著更深層卷積神經網路的設計、訓練和應用。

殘差模組:y=f(x,w)+x

高速公路網路的「變換門」和「攜帶門」都為恒等對映時(即令 t=1,c=1t=1,c=1 ),就得到了殘差網路

(2)normalization引入目的

normalization有很多種,但是它們都有乙個共同的目的,那就是把輸入轉化成均值為0方差為1的資料。我們在把資料送入啟用函式之前進行normalization歸一化),因為我們不希望輸入資料落在啟用函式的飽和區。 batch normalization。bn的主要思想就是:在每一層的每一批資料上進行歸一化。我們可能會對輸入資料進行歸一化,但是經過該網路層的作用後,我們的資料已經不再是歸一化的了。隨著這種情況的發展,資料的偏差越來越大,我的反向傳播需要考慮到這些大的偏差,這就迫使我們只能使用較小的學習率來防止梯度消失或者梯度**。

4.輸出層

decoder的輸出是浮點數的向量列表。把得到的向量對映為需要的詞,需要線性層softmax層獲取**為詞的概率。

線性層是乙個簡單的全連線神經網路,它是由decoder堆疊產生的向量投影到乙個更大的向量中,稱為對數向量

transformer資料彙總

transformer是google提出的一種新的網路結構,其最大的特點是它的self attention模組,相比於rnn和cnn,self attention可以直接捕獲整個序列的全域性資訊,同時可以平行計算,速度要快很多。了解該模型最直接的方式就是閱讀 原文 attention is all ...

Transformer個人詳細總結

必看 非常詳細且準確transformer 總結的相當明確 大致流程 應該是線性轉換,再將轉換之後的分為h個頭 一.將乙個句子進入embedding層得到句子的字向量 維度是512 再加入編碼資訊 二.重點 將這個句子得到的字向量複製三份為q,k,v q,k,v的維度是 句子長度,512 三.將q,...

Transformer的殘差連線

在學習transformer的過程中,編碼器和解碼器都用到了殘差連線,下面我總結一下殘差連線。假如我們的輸入為x,要得到的輸出為h x 那麼我們可以通過 h f x x,轉換為學習f。等得到f的輸出後,在此基礎上加上x即可得h的輸出。在transformer中,此時的f即是下圖中的multi hea...