【代數】AI 的矩陣遊戲

發布時間: 2023.01.06 

作者郭君逸 副教授國立臺灣師範大學數學系

引言  


大家是否還記得在 [乘法突破]衝向數字相乘的運算極限一文中所介紹的歷史。2019 年時,David Harvey Joris Van Der Hoeven 成功證明了 Schönhage Strassen 1971 年所猜測兩數字相乘所需乘法運算次數的上界,有興趣了解這段歷史發展的人可以到上面的連結觀看。今天我們要聊聊主角之一的 Volker Strassen,給我們這個世界帶來的衝擊與目前最新的發展。

人類的第一步  


Volker Strassen 最著名的貢獻,是他在 1969 年證明了 n 階矩陣乘法運算複雜度可以比 O(n3) 還要快,而且方法並不難。我們先來簡單體會一下,以二階方陣來說,照矩陣乘法定義去計算時,總共需要進行 8 次乘法,但 Strassen 發現只要 7 次就夠了。

這裡先說明一下,上述的加減法雖然從 4 個增加到 18 個,多了 14 個,但因為同樣 k 位數的乘法,大約要消耗 O(k3) 的時間(每個位數相乘後再將每個位數加起來),而加法只要 O(k) 的時間(只跑過每個位數一次),乘法的時間成長規模是三次函數比起加法的線性函數大多了。所以數量大的話,只要比乘法數量即可。

剛剛只是針對二階方陣。那更大一點呢?

當考慮四階方陣時,線性代數告訴我們,可以從中間劃開切成 4 個二階矩陣相乘 

同樣的方式,就可以只用到 7 個二階方陣相乘其它都是加減法,然後每次二階方陣相乘要花 7 個乘法,所以總共要花七七四十九個乘法。同理,八階方陣就是 73 =243 個乘法。

那三階方陣呢?簡單的想法就是把它補零補成四階方陣去處理,也是 49 個乘法,但因為裡面有 10 個元素已確定是零了,所以它們的乘法可以完全不用做,當然加法也不用。 讀者們可以自行驗證,三階方陣相乘,扣掉確定是零的,僅需要 23 個乘法,而五階方陣需要 98 個乘法請暫時記住這幾個數字(三階、四階、五階)=(23, 49, 98)!

n 階方陣而且 n 很大時,可以證明所需乘法數的增長為 O(nlg 7 )= O(n2.8074 ): 本文中所使用 lg 代表 log2

這就是著名的 Strassen  AlgorithmStrassen 當時的論文 [1] 標題為高斯消去法並非最佳,只有 3 頁,但到現在已被引用快四千次了。

大矩陣乘法的改進  


1969 年以來,超多數學家、資訊科學家基於 Strassen 的方法去改進,在我們之前的報導,提到最新的進展是 2014François Le Gall [2] O(n2.3728639 )。但,就在最近,2021 年,由 MIT 的兩位電腦科學家 Josh Alman Virginia Vassilevska Williams [3] 改進到了 O(n2.3728596 ) 。在這篇文章完稿以前,筆者去查了一下 arXiv,未經論文審查證實的最新結果是 2022 10 18 日,由北京清華大學的段然 [4] 等人發表,採用不同進路將結果推進到 O(n2.37188 )

矩陣乘法的改進 –「遊戲」才剛開始   


看到 Strassen 神奇的方法後,聰明的讀者有沒有想到要怎麼改進呢?或許有人會想,有沒有可能只用 6 個乘法做二階矩陣相乘?如果可行,立刻就可以改進成 O(nlg 6 )=O(n2.584965)了。

那要怎麼去找這 6 個乘法呢?當然,我們可以用電腦暴力法去試所有可能!
但……要怎麼個暴力法呢?

我們使用不同的角度去審視一下 Strassen 的方法

問題來了,要怎麼去找這些牌呢?共有多少候選牌?

四列每一列可選 1, 1, 0,但不能全 0,所以有 341 = 80 種,因為整張牌 1 1 可以互換,所以除以 4 20 種;而行也有 20 種,總共有 400 張候選牌從裡面選 6 張出來的所有組合數有約 5.5x1012 種,看看有沒有哪種可以組出 A,B,C,D 這四個位置。

這過程很像是在驗證三階魔術方塊的 4.3x1019 種可能狀態是否都能在 20 步內轉出來。

整個搜尋數量規模驚人,但 Shmuel Winograd 把它驗證完了,證明無法只用 6 個乘法來完成二階矩陣乘法,也就是說,Strassen 的方法是最佳的。

天啊! 太神奇了! 必須再說一次,他到底是怎麼在沒有電腦的輔助下找到這 7 張牌的…

二階矩陣用電腦找最佳解都這麼困難,更別提想用同樣方式找三階矩陣的乘法運算最佳解了總共有大約 2.4x10141 這麼多種。

正如 DeepMind 的研究員 Alhussein Fawzi 所說: 「找三階方陣乘法運算的最佳解,必須要搜尋的方法數超過整個宇宙的原子數量。」

AlphaTensor 橫空出世  


不久前( 2022 10 5 日),DeepMind 在國際頂尖期刊Nature 上發表了一篇文章 [5]。

當期《Nature》雜誌封面

在摘要中就宣布他們利用 AlphaTensor,打破目前乘法次數的紀錄。其中第三作者 Aja Huang 就是師大資工系碩士班畢業的黃士傑,也就是前陣子首次電腦在圍棋上打敗人類的 AlphaZero 主要開發者之一。此文章也是該期的封面頭條。

DeepMind 和我們常用的 Google 都是 Alphabet 的子公司之一。DeepMind 先是開發了 AlphaZero,一款會下圍棋的 AI,成功打敗人類棋王。在此之前,沒人覺得人類會在圍棋競賽輸給人工智慧,因為圍棋的搜尋樹之大,不是接下來四五十年的電腦可以窮盡的,但它終究發生了。

而減少矩陣乘法使用的乘法數,就很像在一堆牌中找一些有效牌來滿足某個條件的遊戲,於是 DeepMind 就把它真的改成一個遊戲,然後把 AlphaZero 改成 AlphaTensor,來執行這項尋找有效牌的任務。

DeepMind 所述,這遊戲每一步的搜尋分支,是 AlphaZero 的三十倍規模,可見其複雜度。不過他們做到了,使用人工智慧改進了人類的演算法。

文章中,AlphaTensor 在三、四和五階方陣乘法中分別找到的乘法數為 23, 49, 98,這部份跟文獻一致但若是在 Z2 的話(矩陣元素只有0,1),就會是 23, 47, 96 個乘法數。

不只方陣,AlphaTensor 嘗試一般矩陣相乘,論文中把行列數在 5 以下的結果列舉出來,如右表。

其實他們找了所有 12 以下的矩陣乘法,其中有 70 幾種,都改進了文獻中的已知結果,實在太驚人了。AlphaTensor 程式碼都是公開的,有興趣的人,可以到 GitHub 下載來試試。

https://github.com/deepmind/alphatensor

人類的逆襲  


先別急著把視窗關掉,故事還沒完。

DeepMind 的論文在 2022 10 5 日才剛發表,奧地利「約翰克卜勒林茲大學(Johannes Kepler University Linz, JKU)」的代數研究所 (他們竟有代數研究所) Manuel Kauers 教授,與他的博士生 Jakob Moosbauer,才過三天就在 arXiv 上發表了一篇文章 [6],標題非常聳動(如圖):

標題的 FBHHRBNRSSSHK,指的就是 DeepMind Nature的論文作者姓氏縮寫。AlphaTensor 在五階 Z2 矩陣相乘的運算量已經降低到 96 個乘法數,但他們又再降了一點,變成了 95 個,然後也找了另一種 47 步的四階的 Z2 矩陣乘法,論文很短,就是把這 47 張與 95 張牌列了出來。

真可謂為人類的逆襲啊!

結語  


目前深度學習非常火紅,有可以作畫的 AI,像 Dall-EDisco Diffusion、…之類的;

可以像人類一樣對話的 AI,像 ChatGPTYouChat、…等等;

可以寫長篇文章的 AI,像 Jasper Chat

可以幫你寫程式的 AI,像 Ghostwriter Chat

幫你做投影片的 AI,像 ChatBCG…。

這些深度學習的 AI 都要用到大量的矩陣運算,而 AlphaTensor 的出現,在演算法層面加快了現有的矩陣運算,而硬體層面也可以把這些寫到處理器上,稱為 TPU(Tensor Processing Unit),可以讓 AI 的矩陣運算快 10% 以上,目前Google 出的手機 Pixel 6 7 代,所使用的處理器就稱為 Tensor,專為人工智能而生的 TPU(可以參閱泛科學的Youtube影片:https://youtu.be/K1Hs-k19EwQ )

若說 DeepMind AlphaTensor 是『拋磚引玉』,啟發大家,AI 是可以用來輔助研究工作的工具;那麼 Kauers 和  Moosbauer 兩人的文章,可算是『拋玉引鑽石』,展示人類憑藉「真.人工智能」,還是有機會打敗「人工智能」的。

但若人類跟 AI 能相輔相成,或許很多的研究工作都能因而往前跨一大步,像是用來輔助數學證明,例如圖論中的四色定理,或許可以用 AI 降低需驗證的潛在反例數量也說不定。

未來,人工智能只會越來越強大,筆者預估,十年之後,很多的電話客服、線上客服都會變成是人工智能。然後再過個十年,或許像「百科」一樣的真人 AI 客服也會出現。

參考文獻

1.      Volker Strassen, Gaussian Elimination is not Optimal, Number. Math. 13, 354-356(1969).

2.      François Le Gall, Powers of tensors and fast matrix multiplication, ISSAC '14: Proceedings of the 39th International Symposium on Symbolic and Algebraic Computation. July 2014 Pages 296–303https://doi.org/10.1145/2608628.2608664

3.      Alman, Josh & Williams, Virginia. (2021). A Refined Laser Method and Faster Matrix Multiplication. 10.1137/1.9781611976465.32.

4.      Ran Duan, Hongxun Wu, Renfei Zhou, Faster Matrix Multiplication via Asymmetric Hashing, https://arxiv.org/abs/2210.10173

5.      Fawzi, A., Balog, M., Huang, A. et al. Discovering faster matrix multiplication algorithms with reinforcement learning. Nature 610, 47–53 (2022). https://doi.org/10.1038/s41586-022-05172-4

6.      Manuel Kauers, Jakob Moosbauer, The FBHHRBNRSSSHK-Algorithm for Multiplication in Z5×52 is still not the end of the story, https://arxiv.org/abs/2210.04045