0
編輯丨青暮
線性代數(shù)(linear algebra)是關(guān)于向量空間和線性映射的一個數(shù)學(xué)分支。
現(xiàn)代線性代數(shù)的歷史可以上溯到19世紀(jì)中期的英國。1843年,愛爾蘭數(shù)學(xué)家哈密頓發(fā)現(xiàn)四元數(shù)。1844年,赫爾曼·格拉斯曼發(fā)表他的著作《線性外代數(shù)》(Die lineare Ausdehnungslehre),包括今日線性代數(shù)的一些主題。1848年,詹姆斯·西爾維斯特引入矩陣(matrix)。阿瑟·凱萊在研究線性變換時引入矩陣乘法和轉(zhuǎn)置的概念。很重要的是,凱萊使用一個字母來代表一個矩陣,因此將矩陣當(dāng)做了聚合對象。他也意識到矩陣和行列式之間的聯(lián)系。
多少學(xué)子魂牽夢繞、夜不能寐的現(xiàn)代線性代數(shù)就是這樣形成的。
古語有云:線代虐我千百遍,我待線代如初戀。搜索“線代太難了”,谷歌秒給我726, 000個相關(guān)結(jié)果。
一些同學(xué)忍不住吐槽,做線代題感覺自己像個傻子......(摸摸頭)
無論是結(jié)構(gòu)力學(xué)到人工智能,深究理工科研究之后會發(fā)現(xiàn)到處都是線性代數(shù)的身影。線性代數(shù)的地位真的重要,這是科研人、技術(shù)人在實踐中的最大感受。許多算法都用到線性代數(shù)知識,比如非常熱門的深度學(xué)習(xí),它的底層實現(xiàn)方式用到好多線性代數(shù)方面的知識。如果底層基礎(chǔ)打不好,不明白其中的原理,算法實現(xiàn)方式真的很難理解,更不可能去創(chuàng)新了。
12月3日,F(xiàn)acebook 人工智能研究院發(fā)布最新研究,可以用Transformers解決線性代數(shù)問題了!
論文地址:https://arxiv.org/pdf/2112.01898.pdf
Transformer 是 Google 的團隊在 2017 年提出的一種 NLP經(jīng)典模型。Transformer采用注意力機制( Self-Attention)來提高模型訓(xùn)練速度,它拋棄了傳統(tǒng)的CNN和RNN,整個網(wǎng)絡(luò)結(jié)構(gòu)完全是由Attention機制組成。主要由兩部分組成:encoder和decoder。
Transformer最初為機器翻譯設(shè)計,后被應(yīng)用于各種問題,從文本生成到圖像處理、語音識別等等。在數(shù)學(xué)中,Transformer大多應(yīng)用集中在符號計算上,它“操作”數(shù)學(xué)符號,就像“操作”自然語言中的單詞一樣。
但數(shù)學(xué)≠ 符號處理:許多實際應(yīng)用涉及數(shù)值計算,精確(如算術(shù))或近似(如函數(shù)計算、方程數(shù)值解)。使用Transformer數(shù)值計算的研究較少,而且多數(shù)早期算術(shù)實驗結(jié)果差強人意。
但有一個不可回避的問題:數(shù)學(xué)和科學(xué)中的大多數(shù)問題都涉及符號計算和數(shù)值計算。如果我們希望Transformer端對端解決這些問題,它們就必須能進(jìn)行高精度數(shù)值計算。
作者Fran?ois Charton訓(xùn)練Transformer計算線性代數(shù)問題的解,線性代數(shù)是許多科學(xué)問題的基本組成部分:矩陣的基本運算、矩陣求逆、特征值和奇異值分解。
接下來我們將介紹四種將問題和解決方案表示為Transformer可處理的編碼方案,在生成的隨機矩陣數(shù)據(jù)集上訓(xùn)練小型Transformer(最多 6 層,1000 到 5000 萬個可訓(xùn)練參數(shù))。訓(xùn)練過的模型計算問題的近似解(到其L1范數(shù)的幾個百分比),精確度超過90%(大多數(shù)情況下為99%)。
同時,泛化訓(xùn)練過的模型,通過更多樣化的數(shù)據(jù)集(特別是具有非獨立和相同分布系數(shù)矩陣進(jìn)行的訓(xùn)練),能夠大大提高域外精度。
作者相信這些結(jié)果為Transformer打開了全新世界的大門,為Transformer作為數(shù)學(xué)和科學(xué)問題的端對端解算器鋪平了道路。
第一步,將矩陣編碼為序列。
因為問題的輸入和輸出是矩陣,要由Transformer處理,它們需要轉(zhuǎn)換為token序列。
首先對一個m×n矩陣進(jìn)行編碼,將其維度編碼為兩個符號標(biāo)記(Vm和Vn),然后是其mn系數(shù),編碼為序列。在本文中,使用了四種矩陣系數(shù)的編碼方案:P10、P1000、B1999 和 FP15。
在基數(shù)為 10 的位置編碼 (P10) 中,是五個標(biāo)記的序列:一個符號標(biāo)記(+ 或 -)、尾數(shù)的 3 位數(shù)字(從 0 到 9)和符號標(biāo)記(來自E-100到E+100) 的指數(shù)。
例如,3.14 將表示為,并編碼為
。下圖中展示了一些編碼的示例。
第二步,隨機矩陣生成。
大多數(shù)實驗是在均勻分布的隨機矩陣數(shù)據(jù)集上訓(xùn)練模型的,[?A, A] (with A = 10)。有時,也對具有相同標(biāo)準(zhǔn)偏差的高斯系數(shù)進(jìn)行采樣。
在研究特征值問題的分布外泛化時,生成具有不同特征值分布的隨機對稱矩陣(對應(yīng)于具有非 iid 系數(shù)的隨機矩陣)。為此,作者運用高斯系數(shù)隨機采樣對稱矩陣M,并計算它們的特征值分解 P是特征向量的正交矩陣。然后,用從另一個分布采樣的對角線D'替換M的特征值的對角矩陣D。
最后重新計算,一個對稱矩陣(因為P是正交的),特征值按選擇分布,特征向量均勻分布在單位球面上。
學(xué)習(xí)轉(zhuǎn)置矩陣相當(dāng)于學(xué)習(xí)其元素的排列。矩形矩陣的排列涉及更長的周期。作者研究了兩個公式:
1.固定大小情況,數(shù)據(jù)集中所有矩陣都具有相同維度,只需要學(xué)習(xí)一個排列。
2.可變大小的情況,數(shù)據(jù)集包括不同維度的矩陣,盡可能多的排列學(xué)習(xí)。
在編碼器和解碼器中使用四種編碼方案,并數(shù)據(jù)集上訓(xùn)練1 層、256 個維度和 8 個注意力頭的Transformer。模型學(xué)會在超過 99% 的測試用例準(zhǔn)確預(yù)測解決方案(具有 0% 的容差)。
學(xué)習(xí)兩個m×n矩陣的加法相當(dāng)于學(xué)習(xí)輸入和輸出位置之間的對應(yīng)關(guān)系(如在轉(zhuǎn)置問題中),以及在mn對元素上執(zhí)行浮點表示中兩個數(shù)字相加的算法。作者對此訓(xùn)練了 1 層或 2 層、8 個注意力頭和 512 個維度的 Transformer。
對于大小不超過 10 的固定大小矩陣的加法,包括n=m和n≠m兩種情況,在 1% 的容差范圍達(dá)到99% 準(zhǔn)確率(并且在 0.5% 內(nèi)超過 98%)。FP15 模型在 15×15 矩陣的 0.5% 容差內(nèi)實現(xiàn)了 99.5% 準(zhǔn)確率,而 B1999 模型在 20×20 矩陣上實現(xiàn)了 89.7% 準(zhǔn)確率和 1% 的容差。
維度高達(dá) 10 的可變大小矩陣由 2 層Transformer使用 B1999 編碼預(yù)測,準(zhǔn)確率超過 99.5%,容差為 1%。編碼器中有一層,解碼器中有 6 層的模型在相同的數(shù)據(jù)集上實現(xiàn)了 77% 和 87% 的準(zhǔn)確率。下圖總結(jié)了實驗結(jié)果。
維數(shù)為m×n的矩陣M與向量相當(dāng)于計算V和M之間的m個點積。
每次點積計算包含n個乘法和n ? 1 個加法,涉及矩陣中的其中一行和向量中的所有系數(shù)。模型必須了解這2n個元素在計算中的位置,以及兩個運算(加法和乘法)。
通過對1 層或2 層、超過5×5矩陣的模型進(jìn)行實驗,作者觀察到P10和P1000編碼的模型才能訓(xùn)練到高精度。P1000編碼性能最好,兩層和一層模型之間差別不大。對于5×5和10×10平方矩陣,采用P1000編碼的2層Transformer可實現(xiàn)99.9%以上的精度,容差為1%。結(jié)果匯總在下圖中。
矩陣M和P的乘法是矩陣向量乘法的進(jìn)階版本,其對矩陣 P 中的每一列向量執(zhí)行上述運算。和以前一樣,只有使用P10和P1000的編碼模型才能訓(xùn)練高精度預(yù)測。
超過5×5矩陣和類似大小的矩形矩陣,訓(xùn)練模型精度與向量乘法相同(在 1% 容差下超過 99%),但需要更深的解碼器(4 到 6 層)。
我們把注意力轉(zhuǎn)向由迭代算法解決的非線性問題。
作者在編碼器或解碼器中訓(xùn)練 4 層或 6 層的模型,用以預(yù)測對稱矩陣的特征值。
對于 5×5 隨機矩陣的樣本,在 5% 的容差下達(dá)到 100% 的準(zhǔn)確率,在所有四種編碼下達(dá)到 98.5% 的 1%。對于 8×8 矩陣,在 5% 和 1% 的容差下實現(xiàn)了 100% 和 85% 的準(zhǔn)確率。
但也遇到了瓶頸,對于大規(guī)模問題,模型難以學(xué)習(xí):在 10×10 矩陣上,3.6 億個示例可達(dá) 25% 的準(zhǔn)確率和 5% 的容差。相比之下,對于5×5矩陣,模型在大約 4000 萬個樣本中訓(xùn)練到最高準(zhǔn)確率,對于8×8矩陣,模型在大約 6000 萬個樣本中訓(xùn)練到最高準(zhǔn)確率。
這個限制通過在可變大小的數(shù)據(jù)集上訓(xùn)練模型能夠克服。在維度為 5-10、5-15 和 5-20 的矩陣樣本上,模型在 5% 的容差下達(dá)到 100% 的準(zhǔn)確率,在 1% 容差下達(dá)到 88%、94% 和 45%。使用 5-15 模型,10×10 矩陣的特征值可以在 2% 的容差下以 100% 的準(zhǔn)確率進(jìn)行預(yù)測,在 1% 容差時為 73%。結(jié)果如下圖所示。
除了特征值,作者還預(yù)測了特征向量的正交矩陣。
在5×5矩陣上,使用P10和P1000編碼的模型在5%容差的情況下,實現(xiàn)了97.0%和94.0%的準(zhǔn)確率。FP15 型號的性能較弱,準(zhǔn)確率為51.6%,但非對稱型號,帶有6層FP15編碼器和1層P1000解碼器,在5%容差下的準(zhǔn)確率為93.5%,在1%容差下的準(zhǔn)確率為67.5%。P1000模型可以預(yù)測6×6矩陣的特征向量,預(yù)測準(zhǔn)確率為81.5%。
5×5矩陣的求逆比之前任務(wù)難度更大,P10模型的準(zhǔn)確率為 73.6%,P1000模型的準(zhǔn)確率為80.4(5%容差,6層編碼器和1層解碼器)。
注意力頭數(shù)量增加到 10 和 12 對準(zhǔn)確率基本沒影響,但可以加快訓(xùn)練速度:在大約2.5億個示例中,8頭模型的訓(xùn)練準(zhǔn)確率達(dá)到75%。非對稱模型實現(xiàn)了最高的準(zhǔn)確率(90.0%)。
雖然這項任務(wù)與特征分解有關(guān),但事實證明它的學(xué)習(xí)難度更大:使用P10或P1000編碼的多達(dá)6層Transformer可以預(yù)測4×4矩陣的奇異值分解。單奇異值(容差為5%和1%)的準(zhǔn)確率較高,分別為100%和86.7%,完全分解的準(zhǔn)確率分別為98.9%和75.3%。
此外,域外泛化和再訓(xùn)練中,作者為了訓(xùn)練模型,生成獨立同分布 (iid) 系數(shù)的隨機n×n矩陣,從[?A, A]上的均勻分布中采樣。
Transformer如果想要解決線性代數(shù)問題,了解在 Wigner 矩陣上訓(xùn)練模型在不同特征值分布的矩陣上執(zhí)行方法十分重要。
研究人員創(chuàng)建了 10,000 個矩陣的測試集,其分布與訓(xùn)練集不同。然后,生成不同特征值分布的矩陣的測試集:正特征值(特征值替換為其絕對值的 Wigner 矩陣),以及根據(jù)均勻、高斯或拉普拉斯定律的特征值分布,標(biāo)準(zhǔn)偏差為 和
。
為了提高分布外的準(zhǔn)確性,作者在具有不同特征值分布的數(shù)據(jù)集上訓(xùn)練新模型,并在之前創(chuàng)建的測試集上評估它們。
最終得到一個重要結(jié)果:常被視為隨機矩陣默認(rèn)模型的 Wigner 矩陣可能不是訓(xùn)練Transformer的最佳選擇。非分布泛化需要特別注意訓(xùn)練數(shù)據(jù)的生成。
2021-12-10
2021-12-09
2021-12-12
2021-12-25
2021-12-29
雷峰網(wǎng)(公眾號:雷峰網(wǎng))雷峰網(wǎng)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。