成全视频在线观看免费高清,国产亚洲欧洲精品,成年人午夜免费视频,久久机热综合久久国产

當前位置:第一POS網 > 刷卡機知識點2 >

pos刷卡機設計模型

瀏覽:145 發布日期:2023-06-14 00:00:00 投稿人:佚名投稿

網上關于pos刷卡機設計模型的刷卡知識比較多,也有關于pos刷卡機設計模型的問題,今天第一pos網(www.yadikedp.com)為大家整理刷卡常見知識,未來的我們終成一代卡神。

本文目錄一覽:

1、pos刷卡機設計模型

pos刷卡機設計模型

Transformer 是 Google 的團隊在 2017 年提出的一種 NLP 經典模型,現在比較火熱的 Bert 也是基于 Transformer。Transformer 模型使用了 Self-Attention 機制,不采用 RNN 的順序結構,使得模型可以并行化訓練,而且能夠擁有全局信息。

1. Transformer 結構

首先介紹 Transformer 的整體結構,下圖是 Transformer 用于中英文翻譯的整體結構。

Transformer 整體結構

可以看到 Transformer 由 Encoder 和 Decoder 兩個部分組成,Encoder 和 Decoder 都包含 6 個 block。Transformer 的工作流程大體如下:

第一步:獲取輸入句子的每一個單詞的表示向量 XX 由單詞的 Embedding 和單詞位置的 Embedding 相加得到。

Transformer 輸入的表示向量

第二步:將得到的單詞表示向量矩陣 (如上圖所示,每一行是一個單詞的表示 x) 傳入 Encoder 中,經過 6 個 Encoder block 后可以得到句子所有單詞的編碼信息矩陣 C,如下圖。單詞向量矩陣用 X(n×d) 表示, n 是句子中單詞個數,d 是表示向量的維度 (論文中 d=512)。每一個 Encoder block 輸出的矩陣維度與輸入完全一致。

Encoder 編碼句子單詞的信息

第三步:將 Encoder 輸出的編碼信息矩陣 C 傳遞到 Decoder 中,Decoder 依次會根據當前翻譯過的單詞 1~ i 翻譯下一個單詞 i+1,如下圖所示。在使用的過程中,翻譯到單詞 i+1 的時候需要通過 Mask (掩蓋) 操作遮蓋住 i+1 之后的單詞。

Decoder 解碼信息,內部實際上是使用了 Mask 操作

上圖 Decoder 接收了 Encoder 的編碼矩陣 C,然后首先輸入一個翻譯開始符 "<Begin>",預測第一個單詞 "I";然后輸入翻譯開始符 "<Begin>" 和單詞 "I",預測單詞 "have",以此類推。這是 Transformer 使用時候的大致流程,接下來是里面各個部分的細節。

2. Transformer 的輸入

Transformer 中單詞的輸入表示 x 由單詞 Embedding 和位置 Embedding 相加得到。

Transformer 表示向量的計算

2.1 單詞 Embedding

單詞的 Embedding 有很多種方式可以獲取,例如可以采用 Word2Vec、Glove 等算法預訓練得到,也可以在 Transformer 中訓練得到。

2.2 位置 Embedding

Transformer 中除了單詞的 Embedding,還需要使用位置 Embedding 表示單詞出現在句子中的位置。因為 Transformer 不采用 RNN 的結構,而是使用全局信息,不能利用單詞的順序信息,而這部分信息對于 NLP 來說非常重要。所以 Transformer 中使用位置 Embedding 保存單詞在序列中的相對或絕對位置。

位置 Embedding 用 PE 表示,PE 的維度與單詞 Embedding 是一樣的。PE 可以通過訓練得到,也可以使用某種公式計算得到。在 Transformer 中采用了后者,計算公式如下:

位置 Eembedding 計算公式

其中,pos 表示單詞在句子中的位置,d 表示 PE 的維度 (與詞 Embedding 一樣),2i 表示偶數的維度,2i+1 表示奇數維度 (即 2i≤d, 2i+1≤d)。使用這種公式計算 PE 有以下的好處:

使 PE 能夠適應比訓練集里面所有句子更長的句子,假設訓練集里面最長的句子是有 20 個單詞,突然來了一個長度為 21 的句子,則使用公式計算的方法可以計算出第 21 位的 Embedding。可以讓模型容易地計算出相對位置,對于固定長度的間距 k,PE(pos+k) 可以用 PE(pos) 計算得到。因為 Sin(A+B) = Sin(A)Cos(B) + Cos(A)Sin(B), Cos(A+B) = Cos(A)Cos(B) - Sin(A)Sin(B)。

將單詞的詞 Embedding 和位置 Embedding 相加,就可以得到單詞的表示向量 xx 就是 Transformer 的輸入。

3. Self-Attention

Transformer 中的 Multi-Head Attention

上圖是論文中 Transformer 的內部結構圖,左側為 Encoder block,右側為 Decoder block。紅色圈中的部分為 Multi-Head Attention,是由多個 Self-Attention 組成的,可以看到 Encoder block 包含一個 Multi-Head Attention,而 Decoder block 包含兩個 Multi-Head Attention (其中有一個用到 Masked)。Multi-Head Attention 上方還包括一個 Add & Norm 層,Add 表示殘差連接 (Residual Connection) 用于防止網絡退化,Norm 表示 Layer Normalization,用于對每一層的激活值進行歸一化。

因為 Self-Attention 是 Transformer 的重點,所以我們重點關注 Multi-Head Attention 以及 Self-Attention,首先詳細了解一下 Self-Attention 的內部邏輯。

3.1 Self-Attention 結構

Self-Attention 結構

上圖是 Self-Attention 的結構,在計算的時候需要用到矩陣 Q(查詢), K(鍵值), V(值)。在實際中,Self-Attention 接收的是輸入(單詞的表示向量 x 組成的矩陣 X) 或者上一個 Encoder block 的輸出。而 Q, K, V 正是通過 Self-Attention 的輸入進行線性變換得到的。

3.2 Q, K, V 的計算

Self-Attention 的輸入用矩陣 X 進行表示,則可以使用線性變陣矩陣 WQ, WK, WV 計算得到 Q, K, V。計算如下圖所示,注意 X, Q, K, V 的每一行都表示一個單詞

Q, K, V 計算

3.3 Self-Attention 的輸出

得到矩陣 Q, K, V 之后就可以計算出 Self-Attention 的輸出了,計算的公式如下。

Attention score 計算方法

公式中計算矩陣 QK 每一行向量的內積,為了防止內積過大,因此除以 dk 的平方根。Q 乘以 K 的轉置后,得到的矩陣行列數都為 n,n 為句子單詞數,這個矩陣可以表示單詞之間的 attention 強度。下圖為 Q 乘以 K 的轉置,1234 表示的是句子中的單詞。

Q 乘以 K 的轉置

得到 QKT 之后,使用 Softmax 計算每一個單詞對于其他單詞的 attention 系數,公式中的 Softmax 是對矩陣的每一行進行 Softmax,即每一行的和都變為 1。

Softmax 后得到 Attention score

得到 Softmax 矩陣之后可以和 V 相乘,得到最終的輸出 Z

一個 Self-Attention 的輸出

上圖中 Softmax 矩陣的第 1 行表示單詞 1 與其他所有單詞的 attention 系數,最終單詞 1 的輸出 Z1 等于所有單詞 i 的值 Vi 根據 attention 系數的比例加在一起得到,如下圖所示:

第 1 個單詞的輸出

3.4 Multi-Head Attention

在上一步,我們已經知道怎么通過 Self-Attention 計算得到輸出矩陣 Z,而 Multi-Head Attention 是由多個 Self-Attention 組合形成的,下圖是論文中 Multi-Head Attention 的結構圖。

Multi-Head Attention

從上圖可以看到 Multi-Head Attention 包含多個 Self-Attention 層,首先將輸入 X 分別傳遞到 h 個不同的 Self-Attention 中,計算得到 h 個輸出矩陣 Z。下圖是 h=8 時候的情況,此時會得到 8 個輸出矩陣 Z

Multi-Head 多個 Self-Attention 的輸出

得到 8 個輸出矩陣 Z1 到 Z8 之后,Multi-Head Attention 將它們拼接在一起 (Concat),然后傳入一個 Linear 層,得到 Multi-Head Attention 最終的輸出 Z

Multi-Head Attention 最終輸出

可以看到 Multi-Head Attention 輸出的矩陣 Z 與其輸入的矩陣 X 的維度是一樣的。

4. Encoder 結構

Transformer Encoder block

上圖紅色部分是 Transformer 的 Encoder block 結構,可以看到是由 Multi-Head Attention, Add & Norm, Feed Forward, Add & Norm 組成的。剛剛已經了解了 Multi-Head Attention 的計算過程,現在了解一下 Add & Norm 和 Feed Forward 部分。

4.1 Add & Norm

Add & Norm 層由 Add 和 Norm 兩部分組成,其計算公式如下:

Add & Norm 層

其中 X 表示 Multi-Head Attention 或者 Feed Forward 的輸入,MultiHeadAttention(X) 和 FeedForward(X) 表示輸出 (輸出與輸入 X 維度是一樣的,所以可以相加)。

AddX+MultiHeadAttention(X),是一種殘差連接,通常用于解決多層網絡訓練的問題,可以讓網絡只關注當前差異的部分,在 ResNet 中經常用到。

殘差連接

Norm 指 Layer Normalization,通常用于 RNN 結構,Layer Normalization 會將每一層神經元的輸入都轉成均值方差都一樣的,這樣可以加快收斂。

4.2 Feed Forward

Feed Forward 層比較簡單,是一個兩層的全連接層,第一層的激活函數為 Relu,第二層不使用激活函數,對應的公式如下。

Feed Forward

X 是輸入,Feed Forward 最終得到的輸出矩陣的維度與 X 一致。

4.3 組成 Encoder

通過上面描述的 Multi-Head Attention, Feed Forward, Add & Norm 就可以構造出一個 Encoder block,Encoder block 接收輸入矩陣 X(n×d),并輸出一個矩陣 O(n×d)。通過多個 Encoder block 疊加就可以組成 Encoder。

第一個 Encoder block 的輸入為句子單詞的表示向量矩陣,后續 Encoder block 的輸入是前一個 Encoder block 的輸出,最后一個 Encoder block 輸出的矩陣就是 編碼信息矩陣 C,這一矩陣后續會用到 Decoder 中。

Encoder 編碼句子單詞信息

5. Decoder 結構

Transformer Decoder

上圖紅色部分為 Transformer 的 Decoder block 結構,與 Encoder block 相似,但是存在一些區別:

包含兩個 Multi-Head Attention 層。第一個 Multi-Head Attention 層采用了 Masked 操作。第二個 Multi-Head Attention 層的 K, V 矩陣使用 Encoder 的編碼信息矩陣 C 進行計算,而 Q 使用上一個 Decoder block 的輸出計算。最后有一個 Softmax 層計算下一個翻譯單詞的概率。

5.1 第一個 Multi-Head Attention

Decoder block 的第一個 Multi-Head Attention 采用了 Masked 操作,因為在翻譯的過程中是順序翻譯的,即翻譯完第 i 個單詞,才可以翻譯第 i+1 個單詞。通過 Masked 操作可以防止第 i 個單詞知道 i+1 個單詞之后的信息。下面以 "我有一只貓" 翻譯成 "I have a cat" 為例,了解一下 Masked 操作。

下面的描述中使用了類似 Teacher Forcing 的概念,不熟悉 Teacher Forcing 的童鞋可以參考以下上一篇文章《Seq2Seq 模型詳解》。在 Decoder 的時候,是需要根據之前的翻譯,求解當前最有可能的翻譯,如下圖所示。首先根據輸入 <Begin> 預測出第一個單詞為 "I",然后根據輸入 "<Begin> I" 預測下一個單詞 "have"。

Transformer 按順序預測輸出

Decoder 可以在訓練的過程中使用 Teacher Forcing 并且并行化訓練,即將正確的單詞序列 (<Begin> I have a cat) 和對應輸出 (I have a cat <end>) 傳遞到 Decoder。那么在預測第 i 個輸出時,就要將第 i+1 之后的單詞掩蓋住,注意 Mask 操作是在 Self-Attention 的 Softmax 之前使用的下面用 0 1 2 3 4 5 分別表示 "<Begin> I have a cat <end>"

第一步: 是 Decoder 的輸入矩陣和 Mask 矩陣,輸入矩陣包含 "<Begin> I have a cat" (0, 1, 2, 3, 4) 五個單詞的表示向量,Mask 是一個 5×5 的矩陣。在 Mask 可以發現單詞 0 只能使用單詞 0 的信息,而單詞 1 可以使用單詞 0, 1 的信息,即只能使用之前的信息。

輸入矩陣 X 與 Mask 矩陣

第二步:接下來的操作和之前的 Self-Attention 一樣,通過輸入矩陣 X 計算得到 Q, K, V 矩陣。然后計算 QKT 的乘積 QKT。

Q 乘以 K 的轉置

第三步:在得到 QKT 之后需要進行 Softmax,計算 attention score,我們在 Softmax 之前需要使用 Mask 矩陣遮擋住每一個單詞之后的信息,遮擋操作如下:

Masked QKT

得到 Mask QKT 之后在 Mask QKT 上進行 Softmax,每一行的和都為 1。但是單詞 0 在單詞 1, 2, 3, 4 上的 attention score 都為 0。

第四步:使用 Mask QKT 與矩陣 V 相乘,得到輸出 Z,則單詞 1 的輸出向量 Z1 是只包含單詞 1 信息的。

一個 Mask Self-Attention 的輸出

第五步:通過上述步驟就可以得到一個 Mask Self-Attention 的輸出矩陣 Zi,然后和 Encoder 類似,通過 Multi-Head Attention 拼接多個輸出 Zi 然后計算得到第一個 Multi-Head Attention 的輸出 ZZ 與輸入 X 維度一樣。

5.2 第二個 Multi-Head Attention

Decoder block 第二個 Multi-Head Attention 變化不大, 主要的區別在于其中 Self-Attention 的 K, V 矩陣不是使用 上一個 Decoder block 的輸出計算的,而是使用 Encoder 的編碼信息矩陣 C 計算的。

根據 Encoder 的輸出 C 計算得到 K, V,根據上一個 Decoder block 的輸出 Z 計算 Q (如果是第一個 Decoder block 則使用輸入矩陣 X 進行計算),后續的計算方法與之前描述的一致。

這樣做的好處是在 Decoder 的時候,每一位單詞都可以利用到 Encoder 所有單詞的信息 (這些信息無需 Mask)。

5.3 Softmax 預測輸出單詞

Decoder block 最后的部分是利用 Softmax 預測下一個單詞,在之前的網絡層我們可以得到一個最終的輸出 Z,因為 Mask 的存在,使得單詞 0 的輸出 Z0 只包含單詞 0 的信息,如下。

第二個 Multi-Head Attention 層的輸出 Z

Softmax 根據輸出矩陣的每一行預測下一個單詞

Softmax 根據輸出 Z 的每一行分別預測下個單詞

這就是 Decoder block 的定義,與 Encoder 一樣,Decoder 是由多個 Decoder block 組合而成。

6. Transformer 總結

Transformer 與 RNN 不同,可以比較好地并行訓練。

Transformer 本身是不能利用單詞的順序信息的,因此需要在輸入中添加位置 Embedding,否則 Transformer 就是一個詞袋模型了。

Transformer 的重點是 Self-Attention 結構,其中用到的 Q, K, V 矩陣通過輸出進行線性變換得到。

Transformer 中 Multi-Head Attention 中有多個 Self-Attention,可以捕獲單詞之間多種維度上的相關系數 attention score。

參考文獻

1.論文:Attention Is All You Need

https://arxiv.org/abs/1706.03762

2.Jay Alammar 博客:The Illustrated Transformer

http://jalammar.github.io/illustrated-transformer/

3.pytorch transformer 代碼:The Annotated Transformer

http://nlp.seas.harvard.edu/2018/04/03/attention.html#encoder

以上就是關于pos刷卡機設計模型的知識,后面我們會繼續為大家整理關于pos刷卡機設計模型的知識,希望能夠幫助到大家!

轉載請帶上網址:http://www.yadikedp.com/shuakatwo/194245.html

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 [email protected] 舉報,一經查實,本站將立刻刪除。
聯系我們
訂購聯系:小莉
微信聯系方式
地址:深圳市寶安區固戍聯誠發產業園木星大廈

公司地址:深圳市寶安區固戍聯誠發產業園木星大廈

舉報投訴 免責申明 版權申明 廣告服務 投稿須知 技術支持:第一POS網 Copyright@2008-2030 深圳市慧聯實業有限公司 備案號:粵ICP備18141915號

  • <bdo id="ogrsz"></bdo>
      1. <pre id="ogrsz"><abbr id="ogrsz"></abbr></pre>
        <p id="ogrsz"></p>
        <bdo id="ogrsz"></bdo>
        主站蜘蛛池模板: 逊克县| 新巴尔虎左旗| 汉寿县| 日土县| 利津县| 阿坝县| 岑巩县| 遵义市| 内黄县| 台南县| 修武县| 眉山市| 稷山县| 漳平市| 三江| 拜泉县| 赞皇县| 江北区| 灌南县| 利川市| 聊城市| 桂平市| 乌拉特前旗| 杂多县| 浪卡子县| 韶关市| 鄢陵县| 大洼县| 武山县| 巩义市| 固安县| 赤壁市| 平山县| 阜南县| 甘孜| 桃源县| 遂宁市| 弥勒县| 宣威市| 扶沟县| 康定县|