1、前言
最近,AIGC(AI-Generated Content,人工智慧生成內容)發展迅速,不僅被消費者追捧,而且備受技術和產業關注。 2022年9月23日,紅杉美國發表文章《生成式AI:一個創造性的新世界》,認為 AIGC會代表新一輪範式轉移的開始。 2022年10月,Stability AI發布開源模型Stable Diffusion,可以根據用戶輸入的文字描述(稱為提示詞,prompts)自動生成圖像,即文生圖(Text-to-Image). Stable Diffusion、DALL-E 2 、Midjourney、文心一格等可以產生圖片的AIGC模式引爆了AI作畫領域,AI作畫風行一時,標誌人工智慧向藝術領域滲透。下圖展示了由百度「文心一格」平台創作的「未來機甲」主題作品。
#圖1 由百度「文心一格」平台創作的AI畫作
AIGC領域的快速發展,離不開深度神經網路的進步。具體來說,是Transform模型的出現,賦予了神經網路更強大的全局運算能力,減少了網路訓練耗時,提高了網路模型的表現能力。目前表現較為優秀的AIGC領域模型,其技術底層架構中皆包含Attention與 Transform技術。
2、發展歷史
#2.1 深度神經網路
以深度神經網路為代表的資訊科技的發展,推動了人工智慧領域的進步與拓展。 2006年,Hinton等人利用單層的RBM自編碼預訓練使得深層的神經網路訓練得以實現;2012年,Hinton和Alex Krizhevsky設計的AlexNet神經網路模型在ImageNet競賽中實現影像辨識分類,成為新一輪人工智慧發展的起點。目前流行的深度神經網路是仿照生物神經網路所提出的概念。在生物神經網路中,生物神經元層層傳遞接收到的訊息,多個神經元訊息總結得到最終的結果。使用類比生物神經單元設計的邏輯神經單元所建構的數學模型稱為人工神經網路。在人工神經網路中,邏輯神經單元被用來探索輸入資料和輸出資料間的隱藏關係,當資料量較小時,淺層的神經網路就可以滿足一些任務的要求,然而,隨著資料規模的不斷擴大,深度神經網路開始顯示出其得天獨厚的優勢。
2.2 注意力機制
注意力機制(Attention Mechanism)由Bengio團隊於2014年提出並在近年來廣泛的應用在深度學習中的各個領域,例如在電腦視覺方向用於捕捉影像上的感受野,或NLP中用於定位關鍵token或特徵。大量實驗證明,增加了注意力機制的模型在影像分類、分割、追蹤、增強以及自然語言辨識、理解、問答、翻譯中均取得顯著的效果提升。
注意力機制仿照視覺注意力機製而來。視覺注意力機制是人類大腦的一種天生的能力。當我們看到一幅圖片時,先是快速掃過圖片,然後鎖定需要重點關注的目標區域。例如當我們觀察下述圖片時,注意力很容易就集中在了嬰兒臉部、文章標題和文章首句等位置。試想,如果每個局部資訊都不放過,那麼必然耗費很多精力,不利於人類的生存演化。同樣地,在深度學習網路中引入類似的機制,可以簡化模型,加速運算。從本質上理解,Attention是從大量資訊中篩選出少量重要訊息,並聚焦到這些重要訊息上,忽略大多不重要的訊息。
#圖2 人類注意力機制示意圖
##3、技術詳解
#######智慧Transformer模型拋棄了傳統的CNN和RNN單元,整個網路結構完全由注意力機制組成。在本章節中,我們會先介紹 Transformer模型的整體流程,之後再詳細介紹其中涉及的位置編碼資訊和Self-Attention計算。
3.1 流程總述
#圖3 注意力機制流程圖
如上圖所示,Transformer由Encoder模組和Decoder模組兩個部分組成,Encoder和Decoder都包含N個block。以執行翻譯任務為例,Transformer的工作流程大致如下:
#第一步:取得輸入句子的每一個單字的表示向量X,X由單字本身Embedding和單字位置的Embedding相加得到。 第二步:將得到的單字表示向量矩陣傳入Encoder模組中,Encoder模組對於輸入資料採用Attention方法進行計算。經過N個Encoder模組後可以得到句子所有單字的編碼訊息矩陣,每一個Encoder模組輸出的矩陣維度與輸入完全一致。第三步:將Encoder模組輸出的編碼訊息矩陣傳遞到Decoder模組中,Decoder會依序根據目前翻譯過的單字i翻譯下一個單字i 1。與Encoder結構相同,Decoder結構也使用Attention方法進行計算。在使用的過程中,翻譯到單字i 1的時候需要透過Mask操作遮蓋住i 1之後的單字。
3.2 Self-Attention計算
#Transform模型的核心是注意力計算,其可以透過公式表示為
其中,Q,K,V分別表示Query,Key,Value,這三個概念取自於資訊檢索系統,舉個簡單的搜尋的例子來說。當你在某電商平台搜尋某件商品時,你在搜尋引擎上輸入的內容便是Query,然後搜尋引擎根據Query為你配對Key(例如商品的種類,顏色,描述等),然後根據Query和Key的相似度會得到符合的內容(Value)。 self-attention中的Q,K,V也是起著類似的作用,在矩陣計算中,點積是計算兩個矩陣相似度的方法之一,因此上述公式中使用了Q矩陣乘以K矩陣的轉置進行相似度的計算。為了防止內積過大,需要除以d的平方根,最後對結果施加softmax激活函數。Transformer中除了單字本身的Embedding,也需要使用位置Embedding表示單字出現在句子中的位置。因為Transformer不採用RNN的結構,而是使用全局信息,不能利用單字的順序信息,而這部分信息對於NLP或CV而言均非常重要。所以Transformer中使用位置Embedding保存單字在序列中的相對或絕對位置。位置Embedding用PE表示,PE的維度與單字Embedding是一樣的。 PE可以透過訓練得到,也可以用某種公式計算得到。在Transformer中採用了後者,計算公式如下:
############其中,pos表示單字在句子中的位置,d表示PE的維度,其大小與單字本身Embedding相同,2i表示偶數的維度,2i 1表示奇數維度。 ############4、總結##########Transformer的重點是Self-Attention結構,透過多維的Attention結構,網路可以捕捉單字之間多種維度上的隱藏關係,然而Transformer本身是不能利用單字的順序資訊的,因此需要在輸入中添加位置Embedding,用以儲存單字的位置資訊。與循環神經網路相比,Transformer網路可以比較好地並行訓練,與卷積神經網路相比,Transformer網路計算兩個位置之間的關聯所需的操作次數不隨距離增長,可以突破卷積神經網路受限於感受野大小的計算距離。同時,Transformer網路可以產生更具可解釋性的模型。我們可以從模型中檢查注意力分佈,各個注意頭(attention head)可以學習執行不同的任務。
以上是Transformer技術原理綜述的詳細內容。更多資訊請關注PHP中文網其他相關文章!