<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          圖解!逐步理解Transformers的數(shù)學原理

          共 4793字,需瀏覽 10分鐘

           ·

          2023-09-06 22:33

          點擊上方小白學視覺”,選擇加"星標"或“置頂

              
              
                 
                 
          重磅干貨,第一時間送達 

          transformer架構可能看起來很恐怖,您也可能在YouTube或博客中看到了各種解釋。但是,在我的博客中,我將通過提供一個全面的數(shù)學示例闡明它的原理。通過這樣做,我希望簡化對transformer架構的理解。

          那就開始吧!

          Inputs and Positional Encoding


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

          Step 1 (Defining the data)


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


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

          Step 2 (Finding the Vocab Size)


          為了確定詞匯量,我們需要確定數(shù)據(jù)集中的唯一單詞總數(shù)。這對于編碼 (即將數(shù)據(jù)轉換為數(shù)字) 至關重要。

          其中N是所有單詞的列表,并且每個單詞都是單個token,我們將把我們的數(shù)據(jù)集分解為一個token列表,表示為N。

          獲得token列表 (表示為N) 后,我們可以應用公式來計算詞匯量。

          具體公式原理如下:

          使用set操作有助于刪除重復項,然后我們可以計算唯一的單詞以確定詞匯量。因此,詞匯量為23,因為給定列表中有23個獨特的單詞。

          Step 3 (Encoding and Embedding)


          接下來為數(shù)據(jù)集的每個唯一單詞分配一個整數(shù)作為編號。

          在對我們的整個數(shù)據(jù)集進行編碼之后,是時候選擇我們的輸入了。我們將從語料庫中選擇一個句子以開始:

          “When you play game of thrones”

          作為輸入傳遞的每個字將被表示為一個編碼,并且每個對應的整數(shù)值將有一個關聯(lián)的embedding聯(lián)系到它。

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

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


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

          Step 4 (Positional Embedding)


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


          第一個單詞 “when” 的POS值將為零,因為它對應于序列的起始索引。此外,i的值 (取決于是偶數(shù)還是奇數(shù)) 決定了用于計算PE值的公式。維度值表示embedding向量的維度,在我們的情形下,它是5。

          繼續(xù)計算位置embedding,我們將為下一個單詞 “you” 分配pos值1,并繼續(xù)為序列中的每個后續(xù)單詞遞增pos值。
          找到位置embedding后,我們可以將其與原始單詞embedding聯(lián)系起來。



          我們得到的結果向量是e1+p1,e2+p2,e3+p3等諸如此類的embedding和。

          Transformer架構的初始部分的輸出將在之后用作編碼器的輸入。

          編碼器


          在編碼器中,我們執(zhí)行復雜的操作,涉及查詢(query),鍵(key)和值(value)的矩陣。這些操作對于轉換輸入數(shù)據(jù)和提取有意義的表示形式至關重要。

          在多頭注意力(multi-head attention)機制內部,單個注意層由幾個關鍵組件組成。這些組件包括:

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

          Step 1 (Performing Single Head Attention)


          注意力層有三個輸入

          • Query

          • Key

          • Value


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

          一旦我們在注意力機制中有了query, key, 和value矩陣,我們就繼續(xù)進行額外的矩陣乘法。

          現(xiàn)在,我們將結果矩陣與我們之前計算的值矩陣相乘:

          如果我們有多個頭部注意力,每個注意力都會產(chǎn)生一個維度為 (6x3) 的矩陣,那么下一步就是將這些矩陣級聯(lián)在一起。

          在下一步中,我們將再次執(zhí)行類似于用于獲取query, key, 和value矩陣的過程的線性轉換。此線性變換應用于從多個頭部注意獲得的級聯(lián)矩陣。


              
              
          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學視覺」公眾號后臺回復:擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學視覺公眾號后臺回復:Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關微信群。請勿在群內發(fā)送廣告,否則會請出群,謝謝理解~




          瀏覽 681
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  北条麻妃无码 | 日韩三级视频在线观看 | 久久久久久无码精品人妻一区蜜桃影院 | 毛片中国播放 | 欧美亚洲日韩在线观看 |