用Transformer做線代作業,真香!

  • 2022 年 1 月 24 日
  • AI

作者丨莓酊

編輯丨青暮

線性代數(linear algebra)是關於向量空間和線性映射的一個數學分支。

現代線性代數的歷史可以上溯到19世紀中期的英國。1843年,愛爾蘭數學家哈密頓發現四元數。1844年,赫爾曼·格拉斯曼發表他的著作《線性外代數》(Die lineare Ausdehnungslehre),包括今日線性代數的一些主題。1848年,詹姆斯·西爾維斯特引入矩陣(matrix)。阿瑟·凱萊在研究線性變換時引入矩陣乘法和轉置的概念。很重要的是,凱萊使用一個字母來代表一個矩陣,因此將矩陣當做了聚合對象。他也意識到矩陣和行列式之間的聯繫。

多少學子魂牽夢繞、夜不能寐的現代線性代數就是這樣形成的。

古語有云:線代虐我千百遍,我待線代如初戀。搜索「線代太難了」,Google秒給我726, 000個相關結果。

一些同學忍不住吐槽,做線代題感覺自己像個傻子……(摸摸頭)

無論是結構力學到人工智慧,深究理工科研究之後會發現到處都是線性代數的身影。線性代數的地位真的重要,這是科研人、技術人在實踐中的最大感受。許多演算法都用到線性代數知識,比如非常熱門的深度學習它的底層實現方式用到好多線性代數方面的知識。如果底層基礎打不好,不明白其中的原理,演算法實現方式真的很難理解,更不可能去創新了。

12月3日,Facebook 人工智慧研究院發布最新研究,可以用Transformers解決線性代數問題了!

論文地址://arxiv.org/pdf/2112.01898.pdf

Transformer 是 Google 的團隊在 2017 年提出的一種 NLP經典模型。Transformer採用注意力機制( Self-Attention)來提高模型訓練速度,它拋棄了傳統的CNN和RNN,整個網路結構完全是由Attention機制組成。主要由兩部分組成:encoder和decoder。

Transformer最初為機器翻譯設計,後被應用於各種問題,從文本生成到影像處理、語音識別等等。在數學中,Transformer大多應用集中在符號計算上,它「操作」數學符號,就像「操作」自然語言中的單詞一樣。

但數學≠ 符號處理:許多實際應用涉及數值計算,精確(如算術)或近似(如函數計算、方程數值解)。使用Transformer數值計算的研究較少,而且多數早期算術實驗結果差強人意。

但有一個不可迴避的問題:數學和科學中的大多數問題都涉及符號計算和數值計算。如果我們希望Transformer端對端解決這些問題,它們就必須能進行高精度數值計算。

作者François Charton訓練Transformer計算線性代數問題的解,線性代數是許多科學問題的基本組成部分:矩陣的基本運算、矩陣求逆、特徵值和奇異值分解

接下來我們將介紹四種將問題和解決方案表示為Transformer可處理的編碼方案,在生成的隨機矩陣數據集上訓練小型Transformer(最多 6 層,1000 到 5000 萬個可訓練參數)。訓練過的模型計算問題的近似解(到其L1範數的幾個百分比),精確度超過90%(大多數情況下為99%)。

同時,泛化訓練過的模型,通過更多樣化的數據集(特別是具有非獨立和相同分布係數矩陣進行的訓練),能夠大大提高域外精度。

作者相信這些結果為Transformer打開了全新世界的大門,為Transformer作為數學和科學問題的端對端解算器鋪平了道路。


1

問題建模

第一步,將矩陣編碼為序列。

因為問題的輸入和輸出是矩陣,要由Transformer處理,它們需要轉換為token序列。

首先對一個m×n矩陣進行編碼,將其維度編碼為兩個符號標記(Vm和Vn),然後是其mn係數,編碼為序列。在本文中,使用了四種矩陣係數的編碼方案:P10、P1000、B1999 和 FP15。

在基數為 10 的位置編碼 (P10) 中,是五個標記的序列:一個符號標記(+ 或 -)、尾數的 3 位數字(從 0 到 9)和符號標記(來自E-100到E+100) 的指數。

例如,3.14 將表示為,並編碼為。下圖中展示了一些編碼的示例。

第二步,隨機矩陣生成。

大多數實驗是在均勻分布的隨機矩陣數據集上訓練模型的,[−A, A] (with A = 10)。有時,也對具有相同標準偏差的高斯係數進行取樣。

在研究特徵值問題的分布外泛化時,生成具有不同特徵值分布的隨機對稱矩陣(對應於具有非 iid 係數的隨機矩陣)。為此,作者運用高斯係數隨機取樣對稱矩陣M,並計算它們的特徵值分解 P是特徵向量的正交矩陣。然後,用從另一個分布取樣的對角線D’替換M的特徵值的對角矩陣D。

最後重新計算,一個對稱矩陣(因為P是正交的),特徵值按選擇分布,特徵向量均勻分布在單位球面上。



2

實驗和結果
  • 矩陣轉置

學習轉置矩陣相當於學習其元素的排列。矩形矩陣的排列涉及更長的周期。作者研究了兩個公式:

1.固定大小情況,數據集中所有矩陣都具有相同維度,只需要學習一個排列。

2.可變大小的情況,數據集包括不同維度的矩陣,儘可能多的排列學習。

在編碼器和解碼器中使用四種編碼方案,並數據集上訓練1 層、256 個維度和 8 個注意力頭的Transformer。模型學會在超過 99% 的測試用例準確預測解決方案(具有 0% 的容差)。

  • 矩陣加法

學習兩個m×n矩陣的加法相當於學習輸入和輸出位置之間的對應關係(如在轉置問題中),以及在mn對元素上執行浮點表示中兩個數字相加的演算法。作者對此訓練了 1 層或 2 層、8 個注意力頭和 512 個維度的 Transformer。

對於大小不超過 10 的固定大小矩陣的加法,包括n=m和n≠m兩種情況,在 1% 的容差範圍達到99% 準確率(並且在 0.5% 內超過 98%)。FP15 模型在 15×15 矩陣的 0.5% 容差內實現了 99.5% 準確率,而 B1999 模型在 20×20 矩陣上實現了 89.7% 準確率和 1% 的容差。

維度高達 10 的可變大小矩陣由 2 層Transformer使用 B1999 編碼預測,準確率超過 99.5%,容差為 1%。編碼器中有一層,解碼器中有 6 層的模型在相同的數據集上實現了 77% 和 87% 的準確率。下圖總結了實驗結果。

  • 矩陣乘法

維數為m×n的矩陣M與向量相當於計算V和M之間的m個點積。

每次點積計算包含n個乘法和n − 1 個加法,涉及矩陣中的其中一行和向量中的所有係數。模型必須了解這2n個元素在計算中的位置,以及兩個運算(加法和乘法)。

通過對1 層或2 層、超過5×5矩陣的模型進行實驗,作者觀察到P10和P1000編碼的模型才能訓練到高精度。P1000編碼性能最好,兩層和一層模型之間差別不大。對於5×5和10×10平方矩陣,採用P1000編碼的2層Transformer可實現99.9%以上的精度,容差為1%。結果匯總在下圖中。

矩陣M和P的乘法是矩陣向量乘法的進階版本,其對矩陣 P 中的每一列向量執行上述運算。和以前一樣,只有使用P10和P1000的編碼模型才能訓練高精度預測。

超過5×5矩陣和類似大小的矩形矩陣,訓練模型精度與向量乘法相同(在 1% 容差下超過 99%),但需要更深的解碼器(4 到 6 層)。

  • 特徵值

我們把注意力轉向由迭代演算法解決的非線性問題。

作者在編碼器或解碼器中訓練 4 層或 6 層的模型,用以預測對稱矩陣的特徵值。

對於 5×5 隨機矩陣的樣本,在 5% 的容差下達到 100% 的準確率,在所有四種編碼下達到 98.5% 的 1%。對於 8×8 矩陣,在 5% 和 1% 的容差下實現了 100% 和 85% 的準確率。

但也遇到了瓶頸,對於大規模問題,模型難以學習:在 10×10 矩陣上,3.6 億個示例可達 25% 的準確率和 5% 的容差。相比之下,對於5×5矩陣,模型在大約 4000 萬個樣本中訓練到最高準確率,對於8×8矩陣,模型在大約 6000 萬個樣本中訓練到最高準確率。

這個限制通過在可變大小的數據集上訓練模型能夠克服。在維度為 5-10、5-15 和 5-20 的矩陣樣本上,模型在 5% 的容差下達到 100% 的準確率,在 1% 容差下達到 88%、94% 和 45%。使用 5-15 模型,10×10 矩陣的特徵值可以在 2% 的容差下以 100% 的準確率進行預測,在 1% 容差時為 73%。結果如下圖所示。

  • 特徵向量

除了特徵值,作者還預測了特徵向量的正交矩陣。

在5×5矩陣上,使用P10和P1000編碼的模型在5%容差的情況下,實現了97.0%和94.0%的準確率。FP15 型號的性能較弱,準確率為51.6%,但非對稱型號,帶有6層FP15編碼器和1層P1000解碼器,在5%容差下的準確率為93.5%,在1%容差下的準確率為67.5%。P1000模型可以預測6×6矩陣的特徵向量,預測準確率為81.5%。

  • 矩陣

5×5矩陣的求逆比之前任務難度更大,P10模型的準確率為 73.6%,P1000模型的準確率為80.4(5%容差,6層編碼器和1層解碼器)。

注意力頭數量增加到 10 和 12 對準確率基本沒影響,但可以加快訓練速度:在大約2.5億個示例中,8頭模型的訓練準確率達到75%。非對稱模型實現了最高的準確率(90.0%)。

  • 奇異值分解

雖然這項任務與特徵分解有關,但事實證明它的學習難度更大:使用P10或P1000編碼的多達6層Transformer可以預測4×4矩陣的奇異值分解。單奇異值(容差為5%和1%)的準確率較高,分別為100%和86.7%,完全分解的準確率分別為98.9%和75.3%。

此外,域外泛化和再訓練中,作者為了訓練模型,生成獨立同分布 (iid) 係數的隨機n×n矩陣,從[−A, A]上的均勻分布中取樣。

Transformer如果想要解決線性代數問題,了解在 Wigner 矩陣上訓練模型在不同特徵值分布的矩陣上執行方法十分重要。

研究人員創建了 10,000 個矩陣的測試集,其分布與訓練集不同。然後,生成不同特徵值分布的矩陣的測試集:正特徵值(特徵值替換為其絕對值的 Wigner 矩陣),以及根據均勻、高斯或拉普拉斯定律的特徵值分布,標準偏差為

為了提高分布外的準確性,作者在具有不同特徵值分布的數據集上訓練新模型,並在之前創建的測試集上評估它們。

最終得到一個重要結果:常被視為隨機矩陣默認模型的 Wigner 矩陣可能不是訓練Transformer的最佳選擇。非分布泛化需要特別注意訓練數據的生成。


推薦閱讀

GAIR 2021大會首日:18位Fellow的40年AI歲月,一場技術前沿的傳承與激辯

2021-12-10

致敬傳奇:中國並行處理四十年,他們從無人區探索走到計算的黃金時代 | GAIR 2021

2021-12-09

時間的力量——1991 人工智慧大辯論 30 周年紀念:主義不再,共融互生|GAIR 2021

2021-12-12

論智三易,串聯通訊,貫通邊緣,演進認知,匯於機器:聽五位IEEE Fellow暢談AI未來 | GAIR 2021

2021-12-25

新一代AI人才從哪裡來,該往哪裡去?| GAIR 2021院長論壇

2021-12-29

雷峰網雷峰網