0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

transformer原理解析

新機(jī)器視覺(jué) ? 來(lái)源:小白學(xué)視覺(jué) ? 2023-09-06 14:44 ? 次閱讀

transformer架構(gòu)可能看起來(lái)很恐怖,您也可能在YouTube或博客中看到了各種解釋。但是,在我的博客中,我將通過(guò)提供一個(gè)全面的數(shù)學(xué)示例闡明它的原理。通過(guò)這樣做,我希望簡(jiǎn)化對(duì)transformer架構(gòu)的理解。 那就開始吧!
wKgZomT4H_2AI5HhAAH2McYogm4348.png

Inputs and Positional Encoding

讓我們解決最初的部分,在那里我們將確定我們的輸入并計(jì)算它們的位置編碼。

bba63ee2-4c68-11ee-a25d-92fbcf53809c.png

Step 1 (Defining the data)

第一步是定義我們的數(shù)據(jù)集(語(yǔ)料庫(kù))。

bbcd014e-4c68-11ee-a25d-92fbcf53809c.png

在我們的數(shù)據(jù)集中,有3個(gè)句子(對(duì)話) 取自《權(quán)力的游戲》電視劇。盡管這個(gè)數(shù)據(jù)集看起來(lái)很小,但它已經(jīng)足以幫助我們理解之后的數(shù)學(xué)公式。

Step 2 (Finding the Vocab Size)

為了確定詞匯量,我們需要確定數(shù)據(jù)集中的唯一單詞總數(shù)。這對(duì)于編碼(即將數(shù)據(jù)轉(zhuǎn)換為數(shù)字) 至關(guān)重要。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.pngbbf41392-4c68-11ee-a25d-92fbcf53809c.png ? 其中N是所有單詞的列表,并且每個(gè)單詞都是單個(gè)token,我們將把我們的數(shù)據(jù)集分解為一個(gè)token列表,表示為N。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bc1fe6e8-4c68-11ee-a25d-92fbcf53809c.png

獲得token列表(表示為N) 后,我們可以應(yīng)用公式來(lái)計(jì)算詞匯量。 具體公式原理如下: bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bc4d239c-4c68-11ee-a25d-92fbcf53809c.png

使用set操作有助于刪除重復(fù)項(xiàng),然后我們可以計(jì)算唯一的單詞以確定詞匯量。因此,詞匯量為23,因?yàn)榻o定列表中有23個(gè)獨(dú)特的單詞。

Step 3 (Encoding and Embedding)

接下來(lái)為數(shù)據(jù)集的每個(gè)唯一單詞分配一個(gè)整數(shù)作為編號(hào)。

bc7af77c-4c68-11ee-a25d-92fbcf53809c.png

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png 在對(duì)我們的整個(gè)數(shù)據(jù)集進(jìn)行編碼之后,是時(shí)候選擇我們的輸入了。我們將從語(yǔ)料庫(kù)中選擇一個(gè)句子以開始: ? “When you play game of thrones” bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bcb20c1c-4c68-11ee-a25d-92fbcf53809c.png

作為輸入傳遞的每個(gè)字將被表示為一個(gè)編碼,并且每個(gè)對(duì)應(yīng)的整數(shù)值將有一個(gè)關(guān)聯(lián)的embedding聯(lián)系到它。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bcd79090-4c68-11ee-a25d-92fbcf53809c.png

這些embedding可以使用谷歌Word2vec (單詞的矢量表示) 找到。在我們的數(shù)值示例中,我們將假設(shè)每個(gè)單詞的embedding向量填充有(0和1) 之間的隨機(jī)值。

此外,原始論文使用embedding向量的512維度,我們將考慮一個(gè)非常小的維度,即5作為數(shù)值示例。

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bd03234a-4c68-11ee-a25d-92fbcf53809c.png

現(xiàn)在,每個(gè)單詞embedding都由5維的embedding向量表示,并使用Excel函數(shù)RAND() 用隨機(jī)數(shù)填充值。

Step 4 (Positional Embedding)

讓我們考慮第一個(gè)單詞,即“when”,并為其計(jì)算位置embedding向量。位置embedding有兩個(gè)公式:

bd2df584-4c68-11ee-a25d-92fbcf53809c.png

第一個(gè)單詞“when”的POS值將為零,因?yàn)樗鼘?duì)應(yīng)于序列的起始索引。此外,i的值(取決于是偶數(shù)還是奇數(shù)) 決定了用于計(jì)算PE值的公式。維度值表示embedding向量的維度,在我們的情形下,它是5。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bd56b302-4c68-11ee-a25d-92fbcf53809c.png

繼續(xù)計(jì)算位置embedding,我們將為下一個(gè)單詞“you” 分配pos值1,并繼續(xù)為序列中的每個(gè)后續(xù)單詞遞增pos值。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bdb83dac-4c68-11ee-a25d-92fbcf53809c.png

找到位置embedding后,我們可以將其與原始單詞embedding聯(lián)系起來(lái)。

bdcd7744-4c68-11ee-a25d-92fbcf53809c.png

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png 我們得到的結(jié)果向量是e1+p1,e2+p2,e3+p3等諸如此類的embedding和。 ?

be170b52-4c68-11ee-a25d-92fbcf53809c.png

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png Transformer架構(gòu)的初始部分的輸出將在之后用作編碼器的輸入。 ?

編碼器

在編碼器中,我們執(zhí)行復(fù)雜的操作,涉及查詢(query),鍵(key)和值(value)的矩陣。這些操作對(duì)于轉(zhuǎn)換輸入數(shù)據(jù)和提取有意義的表示形式至關(guān)重要。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

be2dc78e-4c68-11ee-a25d-92fbcf53809c.png

在多頭注意力(multi-head attention)機(jī)制內(nèi)部,單個(gè)注意層由幾個(gè)關(guān)鍵組件組成。這些組件包括: bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

be4f758c-4c68-11ee-a25d-92fbcf53809c.png

請(qǐng)注意,黃色框代表單頭注意力機(jī)制。讓它成為多頭注意力機(jī)制的是多個(gè)黃色盒子的疊加。出于示例的考慮,我們將僅考慮一個(gè)單頭注意力機(jī)制,如上圖所示。

Step 1 (Performing Single Head Attention)

注意力層有三個(gè)輸入

Query

Key

Value

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

be8336e2-4c68-11ee-a25d-92fbcf53809c.png

在上面提供的圖中,三個(gè)輸入矩陣(粉紅色矩陣) 表示從將位置embedding添加到單詞embedding矩陣的上一步獲得的轉(zhuǎn)置輸出。另一方面,線性權(quán)重矩陣(黃色,藍(lán)色和紅色) 表示注意力機(jī)制中使用的權(quán)重。這些矩陣的列可以具有任意數(shù)量的維數(shù),但是行數(shù)必須與用于乘法的輸入矩陣中的列數(shù)相同。在我們的例子中,我們將假設(shè)線性矩陣(黃色,藍(lán)色和紅色) 包含隨機(jī)權(quán)重。這些權(quán)重通常是隨機(jī)初始化的,然后在訓(xùn)練過(guò)程中通過(guò)反向傳播和梯度下降等技術(shù)進(jìn)行調(diào)整。所以讓我們計(jì)算(Query, Key and Value metrices): bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bea157ee-4c68-11ee-a25d-92fbcf53809c.png

一旦我們?cè)谧⒁饬C(jī)制中有了query, key, 和value矩陣,我們就繼續(xù)進(jìn)行額外的矩陣乘法。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.pngbbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bee1c0fe-4c68-11ee-a25d-92fbcf53809c.png

bee72df0-4c68-11ee-a25d-92fbcf53809c.png

bf38a914-4c68-11ee-a25d-92fbcf53809c.png

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png現(xiàn)在,我們將結(jié)果矩陣與我們之前計(jì)算的值矩陣相乘: bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bf5daf5c-4c68-11ee-a25d-92fbcf53809c.png

如果我們有多個(gè)頭部注意力,每個(gè)注意力都會(huì)產(chǎn)生一個(gè)維度為(6x3) 的矩陣,那么下一步就是將這些矩陣級(jí)聯(lián)在一起。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bf9142b8-4c68-11ee-a25d-92fbcf53809c.png

在下一步中,我們將再次執(zhí)行類似于用于獲取query, key, 和value矩陣的過(guò)程的線性轉(zhuǎn)換。此線性變換應(yīng)用于從多個(gè)頭部注意獲得的級(jí)聯(lián)矩陣。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bfb91e8c-4c68-11ee-a25d-92fbcf53809c.png

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4237

    瀏覽量

    61969
  • Transformer
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    5944

原文標(biāo)題:圖解!逐步理解Transformers的數(shù)學(xué)原理

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    手機(jī)通信原理解析

    `手機(jī)通信原理解析:第 1 章    無(wú)線通信原理第2 章    移動(dòng)通信系統(tǒng)第3 章    移動(dòng)通信系統(tǒng)的多址接入技術(shù)第4 章    移動(dòng)通信系統(tǒng)的語(yǔ)音編碼第5 章 GSM移動(dòng)通信系統(tǒng)的數(shù)字
    發(fā)表于 12-14 14:31

    如何更改ABBYY PDF Transformer+界面語(yǔ)言

    在安裝ABBYY PDF Transformer+時(shí)會(huì)讓您選擇界面語(yǔ)言。此語(yǔ)言將用于所有消息、對(duì)話框、按鈕和菜單項(xiàng)。在特殊情況下,您可能需要在安裝完成后更改界面語(yǔ)言以適應(yīng)需求,方法其實(shí)很簡(jiǎn)單,本文
    發(fā)表于 10-11 16:13

    定位技術(shù)原理解析

    【追蹤嫌犯的利器】定位技術(shù)原理解析(4)
    發(fā)表于 05-04 12:20

    鋰電池基本原理解析

    【鋰知道】鋰電池基本原理解析:充電及放電機(jī)制電池充電最重要的就是這三步:第一步:判斷電壓
    發(fā)表于 09-15 06:47

    虛擬存儲(chǔ)器部件原理解析

    虛擬存儲(chǔ)器部件原理解析
    發(fā)表于 04-15 14:25 ?3068次閱讀

    觸摸屏的應(yīng)用與工作原理解析

    觸摸屏的應(yīng)用與工作原理解析
    發(fā)表于 02-08 02:13 ?38次下載

    解析Transformer中的位置編碼 -- ICLR 2021

    引言 Transformer是近年來(lái)非常流行的處理序列到序列問(wèn)題的架構(gòu),其self-attention機(jī)制允許了長(zhǎng)距離的詞直接聯(lián)系,可以使模型更容易學(xué)習(xí)序列的長(zhǎng)距離依賴。由于其優(yōu)良的可并行性以及可觀
    的頭像 發(fā)表于 04-01 16:07 ?1.2w次閱讀
    <b class='flag-5'>解析</b><b class='flag-5'>Transformer</b>中的位置編碼 -- ICLR 2021

    史密斯圓圖和阻抗匹配原理解析

    史密斯圓圖和阻抗匹配原理解析
    的頭像 發(fā)表于 11-02 20:16 ?1853次閱讀

    什么是晶振 晶振工作原理解析

    什么是晶振 晶振工作原理解析
    的頭像 發(fā)表于 12-30 17:13 ?4148次閱讀
    什么是晶振 晶振工作原<b class='flag-5'>理解析</b>

    基于Transformer的目標(biāo)檢測(cè)算法

    掌握基于Transformer的目標(biāo)檢測(cè)算法的思路和創(chuàng)新點(diǎn),一些Transformer論文涉及的新概念比較多,話術(shù)沒(méi)有那么通俗易懂,讀完論文仍然不理解算法的細(xì)節(jié)部分。
    發(fā)表于 08-16 10:51 ?574次閱讀
    基于<b class='flag-5'>Transformer</b>的目標(biāo)檢測(cè)算法

    BEV人工智能transformer

    BEV人工智能transformer? 人工智能Transformer技術(shù)是一種自然語(yǔ)言處理領(lǐng)域的重要技術(shù),廣泛應(yīng)用于自然語(yǔ)言理解、機(jī)器翻譯、文本分類等任務(wù)中。它通過(guò)深度學(xué)習(xí)算法從大規(guī)模語(yǔ)料庫(kù)中自動(dòng)
    的頭像 發(fā)表于 08-22 15:59 ?761次閱讀

    基于Transformer的目標(biāo)檢測(cè)算法難點(diǎn)

    理解Transformer背后的理論基礎(chǔ),比如自注意力機(jī)制(self-attention), 位置編碼(positional embedding),目標(biāo)查詢(object query)等等,網(wǎng)上的資料比較雜亂,不夠系統(tǒng),難以通過(guò)自學(xué)做到深入
    發(fā)表于 08-24 11:19 ?258次閱讀
    基于<b class='flag-5'>Transformer</b>的目標(biāo)檢測(cè)算法難點(diǎn)

    大模型基礎(chǔ)Transformer結(jié)構(gòu)的原理解析

    該研究的結(jié)果適用于一般數(shù)據(jù)集,可以擴(kuò)展到交叉注意力層,并且研究結(jié)論的實(shí)際有效性已經(jīng)通過(guò)徹底的數(shù)值實(shí)驗(yàn)得到了驗(yàn)證。該研究建立一種新的研究視角,將多層 transformer 看作分離和選擇最佳 token 的 SVM 層次結(jié)構(gòu)。
    發(fā)表于 09-07 10:50 ?1018次閱讀
    大模型基礎(chǔ)<b class='flag-5'>Transformer</b>結(jié)構(gòu)的原<b class='flag-5'>理解析</b>

    更深層的理解視覺(jué)Transformer, 對(duì)視覺(jué)Transformer的剖析

    最后是在ADE20K val上的LeaderBoard,通過(guò)榜單也可以看出,在榜單的前幾名中,Transformer結(jié)構(gòu)依舊占據(jù)是當(dāng)前的主力軍。
    的頭像 發(fā)表于 12-07 09:39 ?651次閱讀
    更深層的<b class='flag-5'>理解</b>視覺(jué)<b class='flag-5'>Transformer</b>, 對(duì)視覺(jué)<b class='flag-5'>Transformer</b>的剖析

    Transformer語(yǔ)言模型簡(jiǎn)介與實(shí)現(xiàn)過(guò)程

    任務(wù),隨后迅速擴(kuò)展到其他NLP任務(wù)中,如文本生成、語(yǔ)言理解、問(wèn)答系統(tǒng)等。本文將詳細(xì)介紹Transformer語(yǔ)言模型的原理、特點(diǎn)、優(yōu)勢(shì)以及實(shí)現(xiàn)過(guò)程。
    的頭像 發(fā)表于 07-10 11:48 ?649次閱讀