Transform Model


self attention 

Q=K=V :輸入一個句子,那么里面的每個詞都要和該句子中的所有詞進行attention計算,目的是要學習句子內部詞之間的依賴關系,捕獲句子的內部結構。

首先,要build Q,K,V,對其進行線性變換 for example: dot,reshape, permute_dimensions

然后,我們要對序列做mask,忽略填充部分的影響,一般mask是將填充部分置零,但attention中的mask是在softmax之前,將填充部分減去一個較大的整數(這樣softmax后就比較接近0)

之后,call函數 

onece encoder:

vector->self attention->feed forward neural network->r

Q可以理解成篇章的詞向量序列,K= V, 為問題的詞向量序列,那么輸入就是aligned question embedding

 transform:

 

就是谷歌提出的transformer 的架構。這其中左半部分是 encoder, 右半部分是 decoder.

Encoder: 這里面有 N=6 個 一樣的layers, 每一層包含了兩個sub-layers. 第一個sub-layer 就是多頭注意力層(multi-head attention layer) 然后是一個簡單的全連接層。 這里還有一個殘差連接 (residual connection), 在這個基礎上, 還有一個layer norm.  這里的注意力層會在下文詳細解釋。

Decoder: 這里同樣是有六個一樣的Layer是,但是這里的layer 和encoder 不一樣, 這里的layer 包含了三個sub-layers,  其中有 一個self-attention layer, encoder-decoder attention layer 最后是一個全連接層。 前兩個sub-layer 都是基於multi-head attention layer.  這里有個特別點就是masking,  masking 的作用就是防止在訓練的時候 使用未來的輸出的單詞。 比如訓練時, 第一個單詞是不能參考第二個單詞的生成結果的。 Masking就會把這個信息變成0, 用來保證預測位置 i 的信息只能基於比 i 小的輸出。

tensor2tensor

可以理解成模型和各類數據集的一個集成庫,可以方便的去調用,解決常見的問題。

 

 

實踐路線

attention->transform->bert

理解原理->用t2t實現transform


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM