計算創造力:變壓器的作用
多年來,計算機識別越來越複雜的模式的能力越來越高。的領域計算創造力 這是一項多學科的努力,旨在建立能夠幫助人類完成藝術,科學和人文科學各種任務的軟體,自從早期的計算機必須明確程式設計以來,已經取得了很大進展。
在本文中,我們將嘗試揭示最近的一些發展生成建模 這表明計算機能夠產生吸引人類觀察者的有用模式的能力顯著提高。特別是,一種神經網路架構,Transformer ,將詳細討論其捕獲文字,音樂和影象中長期依賴性的能力。還討論了該技術可能導致的一些未來方向。
In她有啟發性的文章 瑪格麗特博登描述,創造力是“能夠提出新的,令人驚訝的,有價值的想法或文物”。從歷史上看,這被視為人類智慧的一個獨特方面。正如Boden所描述的那樣,對於一些被認為具有創造性的東西,它必須同時提供novelty andvalue .
關於建模創造力的一個常見批評是機器(包括最新的深度學習方法)只是使用“強力模式匹配”來實現最終目標 - 如果機器只是識別它所訓練的資料中的現有模式,那真正新增的“新奇”是什麼?此外,已知“價值”變化很大,“關於創造力的任何爭論都源於對價值的分歧 ”.
雖然計算機可能會“大規模地進行模式匹配”,但重要的是要認識到即使是偉大的科學家和數學家也在本質上,使用他們精細調整的模式匹配能力(儘管是非常複雜的)形式)到發現現實中沒有人想到的模式 之前。在下面的部分中,我們將看看變壓器如何幫助解決新穎性和價值問題,以及它們如何與其他工具結合起來幫助人類組合創造力 .
2017年Google AI論文“注意力就是你所需要的 “首先介紹了變壓器神經網路架構的概念。從本質上講,變壓器是一堆堆encoders 可以處理連線到堆疊的任意長度的序列decoders 輸出另一個序列。以下是用於機器翻譯的這種結構的示例。
最近,對vanilla變換器進行了許多擴充套件和修改,允許它通過使用僅編碼器堆疊來推廣到其他任務(BERT ),或僅解碼器堆疊(OpenAI GPT ),導致下游語言建模任務的大規模改進。
對變壓器的深入技術描述超出了本文的範圍 - 但是有很好的視覺解釋(插圖變壓器 )和實施的逐行描述(帶註釋的變壓器 )補充原始論文。
變壓器的核心是它self-attention 機制 - 即模擬序列各部分之間關係的能力(例如,句子中的單詞),無論它們在序列中各自的位置如何。
上圖顯示了兩個例子,其中單詞“it”的含義可能對機器不明確 - 在左邊的例子中,“it”指的是單詞“animal”,而在右邊,“it”指的是“街”。在此上下文中使用的術語自注意意味著編碼器在檢查其輸入序列時能夠專注於不同的部分 of the input *就其本身而言,*允許它根據訓練資料中觀察到的模式“參與”正確的表示。
如下將自我關注結合到編碼器/解碼器結構中。
通過這種設計,編碼器的輸入令牌首先流過自我關注層,這使得它可以聚焦在序列的不同部分上。然後將自我關注層的輸出傳遞給前饋神經網路,模型通過該網路“學習”每個單詞的表示。
變換器通過結合多個“注意力頭”擴充套件了自我關注的想法,即應用於序列的不同部分的自我關注的例項simultaneously 。在Google AI的變換器中,有八個注意力頭集中在同一時間步的不同位置,適用於each encoder.
本質上,具有多個關注頭(在上圖中為八個)使得計算的並行化相對微不足道,因為每個頭可以獨立地識別單詞之間的關係。這大大減少了培訓工作量,允許變壓器有效地擴充套件到非常大的訓練集 與更多順序架構(如迴歸神經網路(RNN))不同。
在每個訓練時期,各個注意力頭更新其矢量表示,最終表示被計算為加權平均值 .
解碼器端工作方式非常相似,最終輸出矢量表示通過線性層(將向量輸出投影到更大的“詞彙空間”),然後是softmax層(轉換浮點表示)將單詞轉換為完整詞彙表中每個單詞的概率分佈。