首頁>Club>
10
回覆列表
  • 1 # 北航秦曾昌

    Transformer是Google在2017年發表的論文《Attention is all you need》中提出的模型。其中使用了self-attention來替代此前的RNN和CNN對序列的編碼方式,從而實現更快的並行訓練以及更優的序列表示。

    模型中有以下幾個特點:

    1)為了能夠捕獲序列中的絕對位置和相對位置關係,在對序列的表示中加入了位置編碼,其編碼公示如下:其中pos表示序列的位置,dmodel為表示維度。這裡使用了三角函式來表示是因為pos+k的位置編碼可以由pos的線形變換表示出來,從而蘊涵了相對位置資訊,計算公式如下。

    2)Multi-head的Self-Attention。Self-Attention能夠對句子進行編碼,其中的self指的就是Q=K=V,即序列自己對自己進行Attention的編碼,從而能捕獲到序列中的語義資訊,計算的公式如下。

    這裡加入了multi-head的做法是基於一個詞語會存在諸多語義,而在不同的語義空間中,對句子的編碼結果也會顯著不同。因此在進行self-attention之前先對輸入做線形變換,然後按照編碼維度切分成h份,分別進行序列編碼,再將結果拼接在一起。

    3)為加速網路的訓練,還在模型中加入了Layer Normalization以及殘差連線。此外為了防止模型出現過擬合,還引入了dropout以及label smoothing,從而讓模型更具魯棒性。

    4)Transformer相比於RNN和CNN的計算複雜度更低,而且利用self-attention使得在對序列進行編碼時,最大的長度僅為1,避免了長程依賴的問題。而RNN則序列的長度n,CNN也得受限於卷積的感受野。因此Transformer有望替代RNN,成為對序列編碼的標配。

  • 中秋節和大豐收的關聯?
  • 魚腥草的儲存方法?