《人工智能技術(shù)基礎》課件 第6章 變形金剛_第1頁
《人工智能技術(shù)基礎》課件 第6章 變形金剛_第2頁
《人工智能技術(shù)基礎》課件 第6章 變形金剛_第3頁
《人工智能技術(shù)基礎》課件 第6章 變形金剛_第4頁
《人工智能技術(shù)基礎》課件 第6章 變形金剛_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

人工智能技術(shù)基礎

變形金剛第六章

變形金剛(Transformer)是谷歌公司的VaswaniA等人在2017年發(fā)表的文章《Attentionisallyouneed》中提出解決Seq2Seq(序列到序列)問題的一種深度神經(jīng)網(wǎng)絡模型。自它提出后,自然語言處理(NaturalLangnageProcessing,NLP)研究取得了巨大進步。

2018年后人工智能逐漸走進了大模型時代,2022年11月30日OpenAI發(fā)布的ChatGPT在郵件撰寫、視頻腳本編寫、文本翻譯、代碼編寫等任務上的強大表現(xiàn)(大多不比人類差),被稱為與AlphaGo一樣轟動的事件,是人工智能“奇點”來臨的初顯。而Transformer正是這些大語言模型的基礎。6變形金剛簡介目錄Contents6.1Transformer的結(jié)構(gòu)和工作原理Transformer在NLP中的應用Transformer在視覺領域中的應用小結(jié)6.26.36.41.學習Transformer的基本結(jié)構(gòu)和原理,掌握Transformer的位置編碼、編碼器和解碼器結(jié)構(gòu)和多頭自注意力機制,了解訓練方式和特點,應用所學內(nèi)容分析和解釋其工作機制,理解和分析Transformer的優(yōu)勢和局限性;2.學習Transformer在自然語言處理中的應用方法,理解并掌握BERT和GPT的基本原理和訓練方法;3.學習Transformer在視覺中的應用方法,掌握ViT的基本結(jié)構(gòu)和訓練方法,理解PiT、CvT、DeiT、TNT和S-T等模型的結(jié)構(gòu),了解受ViT啟發(fā)的MLP-Mixer和AS-MLP的結(jié)構(gòu)。6變形金剛(Transformer)學習目標01Transformer的結(jié)構(gòu)和工作原理6.1Transformer的結(jié)構(gòu)和工作原理編碼器(Encoder)由6個編碼模塊組成,包括殘差自注意力(Self-Attention)和殘差連接的前向神經(jīng)網(wǎng)絡(FFNN)組成;譯碼器(Decode)由6個譯碼模塊組成。包括殘差自注意力,殘差互注意力(Encoder-DecoderAttention)以及殘差連接的前向神經(jīng)網(wǎng)絡;編碼器最后一個Block的輸出作為譯碼器每一個Block的輸入。

Transformer本質(zhì)上是一個Encoder-Decoder的結(jié)構(gòu)。6.1Transformer的結(jié)構(gòu)和工作原理

(a)模型組成

(b)模型結(jié)構(gòu)

圖6-1Transformer概貌6.1Transformer的結(jié)構(gòu)和工作原理

Transformer的工作流程大體可分為3步:獲取輸入序列中的每個輸入的表示向量X,X由輸入的編碼和所在位置的編碼相加得到。將輸入序列所有輸入的表示向量放在一起,構(gòu)成Transformer的輸入向量矩陣;將得到輸入向量矩陣送入Encoder中,經(jīng)過6個Encoderblock后可以得到所有輸入的編碼信息矩陣C;將Encoder輸出的編碼信息矩陣C傳遞到Decoder中,Decoder依次會根據(jù)當前輸出的前面所有輸出來產(chǎn)生下一個輸出。6.1Transformer的結(jié)構(gòu)和工作原理

語言翻譯問題示例:將“我是一名學生”譯為英文。圖6-2輸入矩陣的生成圖6-3編碼過程6.1Transformer的結(jié)構(gòu)和工作原理

語言翻譯問題示例:將“我是一名學生”譯為英文圖6-4譯碼預測輸出6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力多頭注意力(Multi-HeadAttention),是由多個自注意力(Self-Attention)或多個互注意力(Encoder-DecoderAttention)組成的。Transformer中的注意力機制即自注意力和互注意力,相似度計算采用的是縮放點積模型。(6-2)6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力實例:以“我是一名學生”為例,以矩陣運算的方式說明注意力機制的計算過程1.計算K、Q、V將輸入矩陣X與線性變陣矩陣WK,WQ,WV(實質(zhì)為線性神經(jīng)網(wǎng)絡層,它們的連接權(quán)通過對Transformer的訓練得到)相乘得到K,Q,V。注意:

X,K,Q,V的每一行都表示一個詞元(token)。圖6-6計算K、Q和V6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力2.根據(jù)公式計算注意力分布K的轉(zhuǎn)置乘以Q后,得到的矩陣行列數(shù)都為n(此例中為4),n為句子單詞數(shù),矩陣可以表示單詞之間的注意力強度。(b)逐行使用Softmax計算注意力系數(shù)(a)計算相似度矩陣圖6-7計算注意力分布矩陣6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力3.將注意力分布矩陣與V矩陣相乘,得到最終的注意力輸出矩陣Z。(a)計算最終輸出Z

(b)Z1的計算過程圖6-8計算注意力模塊的最終輸出6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力多頭注意力是由多個注意力組合形成的。圖6-9多頭注意力(Multi-HeadAttention)結(jié)構(gòu)圖Z1

Z2Z86.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力h=8時候的情況,會得到8個輸出矩陣Z。Multi-HeadAttention將8個輸出矩陣Z1到Z8拼接(Concat)在一起,然后傳入一個線性(Linear)神經(jīng)網(wǎng)絡層,得到最終的輸出Z。Multi-HeadAttention輸出的矩陣Z與其輸入的矩陣X的維度是一樣的。6.1Transformer的結(jié)構(gòu)和工作原理6.1.3編碼器結(jié)構(gòu)

Transformer的Encoderblock結(jié)構(gòu)是由Multi-HeadSelf-Attention,Add&Norm,F(xiàn)eedForward,Add&Norm組成的。6.1Transformer的結(jié)構(gòu)和工作原理6.1.3編碼器結(jié)構(gòu)1.Add&Norm

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

LayerNorm(X+MultiHeadAteetion(X))

LayerNorm(X+FeedForward(X))

(6-3)

Add指X+Multi-HeadAttention(X),是一種殘差連接,在ResNet中經(jīng)常用到,通常用于解決多層網(wǎng)絡訓練的問題,可以讓網(wǎng)絡只關注當前差異的部分。

Norm指LayerNormalization,常用于RNN結(jié)構(gòu),LayerNormalization會將每一層神經(jīng)元的輸入轉(zhuǎn)成均值方差一致的輸入,這樣可以加快網(wǎng)絡訓練的收斂速度。X+F(x)F(x)+x6.1Transformer的結(jié)構(gòu)和工作原理6.1.3編碼器結(jié)構(gòu)2.FeedForward

FeedForward層比較簡單,是一個兩層的全連接層,第一層的激活函數(shù)為ReLU,第二層不使用激活函數(shù),對應的公式如下:

max(0,XW1+b1)W2+b2

(6-4)

6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)

Transformer的Decoderblock結(jié)構(gòu),包含兩個Multi-HeadAttention層,最后有一個Softmax層,計算下一個輸出(翻譯的單詞)的概率。第1個Multi-HeadAttention層采用Masked掩膜操作,是掩膜輸入的多頭自注意力。第2個Multi-HeadAttention層的K,V矩陣使用Encoder的編碼信息矩陣C進行計算,而Q使用上一個Decoderblock的輸出計算,是多頭互注意力。6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)1.第1個Multi-HeadAttention

采用了掩膜(Masked)輸入。通過Masked操作可以防止第i個單詞知道i+1個單詞之后的信息。下面以“我是一名學生”翻譯成“Iamastudent”為例說明Masked操作。圖6-12掩膜輸入示意圖6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)1.第1個Multi-HeadAttention掩膜自注意力的計算過程如下,其中用012345分別表示“<Begin>Iamastudent<end>”。第1步:Decoder的輸入矩陣和Mask矩陣。輸入矩陣包含“<Begin>Iamastudent”(0,1,2,3,4)五個單詞的表示向量,Mask是一個5×5的矩陣,用1表示不遮擋(綠色),用-inf(負無窮?。┍硎菊趽酰S色)。圖6-13輸入矩陣和掩膜矩陣6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)1.第1個Multi-HeadAttention第2步:通過輸入矩陣X計算得到K,Q,V矩陣,然后計算KT和Q的乘積KTQ。第3步:得到KT

Q之后需要按(6-2)式進行Softmax,計算注意力分布,但在Softmax之前需要使用Mask矩陣遮擋住每一個單詞之后的信息,遮擋操作如圖6-13。第4步:使用經(jīng)過逐行Softmax處理后的MaskKTQ與矩陣V相乘,得到輸出Z,則單詞1的輸出向量Z1只包含單詞的1信息。圖6-13輸入矩陣和掩膜矩陣6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)2.第2個Multi-HeadAttentionDecoderblock第2個Multi-HeadAttention是互注意力K,V矩陣使用Encoder的編碼信息矩陣C計算。Q根據(jù)上一個Decoderblock的輸出Z計算(如果是第1個Decoderblock,則使用輸入矩陣X進行計算),后續(xù)的計算方法與之前描述的一致。

在Decoder中使用互注意力,可使每一時刻的輸出(預測的每個單詞)都可以利用Encoder所有輸入序列(單詞)的信息。6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)3.Softmax預測輸出(單詞)

Decoderblock最后是利用Softmax預測下一個單詞(的概率),之前的網(wǎng)絡層已經(jīng)得到一個最終的輸出Z0。因為Mask的存在,使得單詞0的輸出Z0只包含單詞0的信息。Softmax根據(jù)輸出矩陣的每一行預測下一個輸出(單詞)。

圖6-15Softmax預測輸出6.1Transformer的結(jié)構(gòu)和工作原理6.1.5Transformer的訓練Transformer本身就是編碼譯碼結(jié)構(gòu)編碼器將輸入序列X1,X2,…,XN編碼成編碼序列C1,C2,…,CN;譯碼器將編碼序列C1,C2,…,CN譯碼成每一刻產(chǎn)生一個輸出Yi的輸出序列Y1,Y2,…,YM,可以直接用于語言翻譯,也可以直接用于文字→文字生成。Transformer的訓練可以直接采用誤差反向傳播算法進行,訓練數(shù)據(jù)集可以使用語言翻譯數(shù)據(jù)集;Transformer的訓練在詞編碼和全連接層部分都使用了Dropout技術(shù)。6.1Transformer的結(jié)構(gòu)和工作原理6.1.6Transformer的特點分析Transformer的輸入中增加輸入序列的位置編碼,使其不僅能建立輸入序列的長程關系,還能夠表示特定輸入在序列中的位置。RNN按時刻輸入序列數(shù)據(jù),使其隱式記憶了輸入的位置信息,相比之下,Transformer的自注意力層對不同位置出現(xiàn)相同的詞給出的是同樣的輸出向量表示。如果沒有位置編碼,輸入Transformer中兩個相同但位置不同的詞,例如在不同位置上的“I”,其表示的向量是相同的。Transformer是由注意力和前向神經(jīng)網(wǎng)絡組成的,理論上它可以構(gòu)建任意長度輸入序列的長程關系,因此在各種應用中展現(xiàn)了良好的性能。Transformer不同于RNN,不需要輸入序列按時刻串行輸入,只需將輸入序列構(gòu)成的輸入矩陣送入Transformer。它可以比較好地并行訓練和執(zhí)行,有更高的運行效率,但也有更大的存儲需求。6.1Transformer的結(jié)構(gòu)和工作原理6.1.6Transformer的特點分析Transformer中的Multi-HeadAttention中有多個Attention,可以捕獲輸入序列之間多種維度上的相關性,在提高了模型特征提取能力的同時也提高了模型的記憶能力。Transformer各模塊里的注意力和前向網(wǎng)絡都是殘差連接,使Transformer更易訓練。02Transformer在NLP中的應用6.2Transformer在NLP中的應用Transformer起源于NLP研究,最顯著的成果也是在NLP中的應用。它已經(jīng)成為大語言模型的基礎構(gòu)件,也是生成式人工智能文字生成文字的基礎構(gòu)件。圖6-16語言模型的發(fā)展歷程6.2.1BERT的基本原理和訓練方法BERT(BidirectionalEncoderRepresentationfromTransformers)是2018年10月由GoogleAI研究院在文章《BERT:Pre-trainingofDeepBidirectionalTransformersforLanguageUnderstanding》中提出的一種預訓練模型;該模型在機器閱讀理解頂級水平測試SQuAD1.1中表現(xiàn)出驚人的成績:全部兩個衡量指標上全面超越人類,并且在11種不同NLP測試中創(chuàng)出當時最好的表現(xiàn),代表實現(xiàn)大模型的一種模式。6.2Transformer在NLP中的應用6.2.1BERT的基本原理和訓練方法1.BERT的結(jié)構(gòu)BERT僅用了Transformer的Encoder側(cè)的網(wǎng)絡。BERT的維度是768維度,然后分成12個Head,每個Head的維度是64維。BERT中有一個PostionEmbedding是隨機初始化,然后從數(shù)據(jù)中學出來的。

BERT模型分為24層和12層兩種,其差別就是使用TransformerEncoder層數(shù)的差異。BERT-Base使用的是12層的TransformerEncoder結(jié)構(gòu);BERT-Large使用的是24層的TransformerEncoder結(jié)構(gòu)。6.2Transformer在NLP中的應用6.2.1BERT的基本原理和訓練方法2.BERT的輸入和輸出1)BERT的輸入

BERT的輸入編碼比Transformer的多了1項,共3項:TokenEmbeddings;SegmentEmbeddings和PositionEmbeddings。圖6-17BERT的輸入編碼6.2Transformer在NLP中的應用6.2.1BERT的基本原理和訓練方法2.BERT的輸入和輸出2)BERT的輸出BERT的輸出也與輸入一致,即有多少個輸入就有多少個輸出。圖6-19BERT的輸出6.2Transformer在NLP中的應用6.2.1BERT的基本原理和訓練方法3.BERT訓練BERT的訓練包含預訓練(Pre-train)和微調(diào)(Fine-tune)兩個階段。Pre-train階段:模型是在無標注的標簽數(shù)據(jù)上進行訓練;Fine-tune階段:所有的參數(shù)會用下游的有標注的數(shù)據(jù)進行訓練。圖6-20BERT的訓練6.2Transformer在NLP中的應用6.2.1BERT的基本原理和訓練方法3.BERT訓練(1)BERT預訓練

BERT是一個多任務模型,它的預訓練(Pre-training)任務由兩個自監(jiān)督任務組成,即掩膜語言模型(MaskedLanguageModel,MLM)和下一個句子預測(NextSentencePrediction,NSP)。(2)BERT的微調(diào)

微調(diào)(Fine-Tuning)的任務包括:基于句子對的分類任務、基于單個句子的分類任務、問答任務、命名實體識別等。

通常在BERT后加入不同的分類器(一個線性層和Softmax輸出),完成特定任務。這些任務使用的都是有標簽的小數(shù)據(jù)集,所以BERT的微調(diào)是有監(jiān)督的微調(diào),用來確定分類器參數(shù)和微調(diào)BERT本體參數(shù)。6.2Transformer在NLP中的應用6.2.2GPT的基本原理和訓練方法

GPT是OpenAI在2018年6月的論文ImprovingLanguageUnderstandingbyGenerativePre-Training中提出的大語言模型,是GenerativePre-Training的簡稱。隨后OpenAI不斷推出它的升級版本,模型規(guī)模越來越大,性能越來越強。2022年11月30日,OpenAI發(fā)布的ChatGPT就是基于GPT3.5開發(fā)的,它引領了基于大語言模型(LLM)的人工智能開發(fā)熱潮,使人工智能的應用進入大模型時代。6.2Transformer在NLP中的應用6.2.2GPT的基本原理和訓練方法1.GPT的結(jié)構(gòu)

GPT使用Transformer的Decoder結(jié)構(gòu),并對TransformerDecoder進行了一些改動。原本Decoder包含兩個Multi-HeadAttention結(jié)構(gòu),GPT只保留了MaskMulti-HeadAttention。6.2Transformer在NLP中的應用6.2.2GPT的基本原理和訓練方法2.GPT的訓練

GPT的訓練包含預訓練和微調(diào)兩個階段。即先在大規(guī)模無標簽的語料庫上預訓練,再在小得多的有標簽的數(shù)據(jù)集上針對具體任務進行微調(diào)。(1)GPT的預訓練

GPT采用的是掩膜輸入,輸出是下一個輸入的預測值,因此其訓練可以直接采用有監(jiān)督的誤差反向傳播算法,確定GPT中的權(quán)參數(shù)。

第一步,將開始符(<Start>)編碼(編碼方法與Transformer的輸入編碼一樣)后送入GPT獲得其輸出Y1;再將X1編碼,與<Start>的編碼一起送入GPT得到其輸出Y2;同樣過程繼續(xù)直到將<Begin>,X1,X2,…,XN的編碼一起送入GPT得到其輸出YN+1。

第二步,求損失函數(shù)對網(wǎng)絡權(quán)值的偏導,反向傳播后更新網(wǎng)絡權(quán)值。6.2Transformer在NLP中的應用6.2.2GPT的基本原理和訓練方法2.GPT的訓練(2)GPT的微調(diào)

預訓練好的GPT可以看作一個通用特征提取器,根據(jù)不同的任務需求可以設計一個專用的分類或預測網(wǎng)絡(一般使用一層線性網(wǎng)絡,其輸出通過Softmax完成特定任務),將GPT的輸出作為輸入,通過有監(jiān)督的訓練方法確定分類或預測網(wǎng)絡參數(shù),微調(diào)GPT本體的參數(shù)使其完成特定任務,例如文本情感分類任務。

針對不同任務,不僅要微調(diào)GPT本體的參數(shù),還要簡單修改輸入數(shù)據(jù)的格式,例如對于相似度計算或問答,輸入是兩個序列,為了能夠使用GPT,需要一些特殊的技巧把兩個輸入序列變成一個輸入序列。6.2Transformer在NLP中的應用6.2.2GPT的基本原理和訓練方法2.GPT的訓練(2)GPT的微調(diào)圖6-22GPT施工改造圖6.2Transformer在NLP中的應用03Transformer在視覺領域中的應用6.3Transformer在視覺領域中的應用流行的識別任務視頻處理活動識別、視頻預測多模式任務視覺問題解答和視覺推理3D分析點云分類和分割圖像分類、目標檢測、動作識別和分割生成模型單擊此處輸入你的智能圖形項正文low-level視覺圖像超分辨率和彩色化視覺變形金剛(VisionTransformer,ViT)6.3Transformer在視覺領域中的應用6.3.1視覺變形金剛ViT是谷歌團隊提出的將Transformer應用在圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論