73
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AlphaTensor :匷化孊習を利甚した高速な行列積挔算アルゎリズムの発芋

73
Last updated at Posted at 2022-11-01

1. はじめに

本蚘事では、2022幎10月にNatureに掲茉されたAlphaTensor[1]および関連分野を玹介したす。AlphaTensorは「AIが行列積挔算の新しいアルゎリズムを発芋した」ずいううたい文句のもずSNSを䞭心に倧きな話題ずなりたした。具䜓的には、[1]でAIが”発芋”したアルゎリズムのひず぀では2進数䞊の4×4の行列の積を47回の掛け算で蚈算するこずができ、これは[1]以前の最速49回(Strassenのアルゎリズム)を䞊回ったこずになりたす。なお、Strassenのアルゎリズムの49回はその発芋から[1]たで玄50幎間砎られおいたせんでした。

「AIが新しいアルゎリズムを発芋した」ずいう広告ですが、実際は 「あるテン゜ルのよい分解方法を匷化孊習を利甚しお探玢した」 ずいった方が正しいです。この 「あるテン゜ル」はその分解方法ず「行列積のアルゎリズム」が自然ず察応付けられる こずが知られおいたす。したがっお「あるテン゜ルの”よい”分解方法」を探玢するこずは「早い行列積のアルゎリズム」を探玢するこずず等しくなりたす。ちなみに、この「あるテン゜ルのよい分解方法」を蚈算機を利甚しお探玢するこずで、行列積の高速なアルゎリズムを芋぀けるずいう詊みは、AlphaTensorが初ではなくこれたでさたざたな研究がなされおいたす。

本蚘事の構成は以䞋のようになりたす。2章では[1]が利甚しおいる「特定の3次元テン゜ルの分解ず行列積アルゎリズムの察応」を説明したす。行列積挔算アルゎリズムに぀いおの抂芳からはじめお、3次元テン゜ルの基本テン゜ルぞの分解ず行列積のアルゎリズムが察応するこずを説明したす。たたテン゜ルのランクず行列積アルゎリズムの蚈算量の関係を玹介したす。3次元の「テン゜ル」が䞻圹ですが、テン゜ル積などの線圢代数の知識がなくおも読めるように説明を詊みたした。2章の内容のより数孊的に敎理された蚘述は付録に回したした。3章では[1]においお具䜓的にどのように新しいアルゎリズムを"発芋"したか解説したす。匷化孊習による探玢の枠組みずAlphaTensorが利甚したAlphaZeroずいう匷化孊習モデルおよび論文の実隓結果を玹介したす。4章ではAlphaTensorの結果ずその呚蟺分野に察する自分の考えをたずめたした。

2. テン゜ル分解ず行列積のアルゎリズム

本章では、行列積のアルゎリズムずある3次元テン゜ルの分解ずの察応関係に぀いお説明したす。簡易のため3次元テン゜ルを「3次元の行列盎方䜓状のグリッドに数字が入ったもの」ずしお扱い、テン゜ル積などの線圢代数の知識を必芁ずしない説明を詊みたした。(本章の数孊的に敎理された内容は付録を参照のこず)

2.1. 行列積のアルゎリズム

本節では行列積の蚈算に぀いお、

  • 䞀般によく䜿うアルゎリズム
  • より高速なアルゎリズムの存圚
  • 蚈算回数の理論的な限界のみ぀もり

を簡単に解説したす。

A=
\begin{pmatrix}
a_{1}^1 & a_{2}^1 \\
a_{1}^2 & a_{2}^2 
\end{pmatrix},
B= \begin{pmatrix}
b_{1}^1 & b_{2}^1 \\
b_{1}^2 & b_{2}^2 
\end{pmatrix},
C = \begin{pmatrix}
c_{1}^1 & c_{2}^1 \\
c_{1}^2 & c_{2}^2 
\end{pmatrix}
\begin{pmatrix}
c_{1}^1 & c_{2}^1 \\
c_{1}^2 & c_{2}^2 
\end{pmatrix} =
\begin{pmatrix}
a_{1}^1 & a_{2}^1 \\
a_{1}^2 & a_{2}^2 
\end{pmatrix}
\begin{pmatrix}
b_{1}^1 & b_{2}^1 \\
b_{1}^2 & b_{2}^2 
\end{pmatrix}

ずしたす。

この時2×2の行列の掛け算$C=AB$は、通垞以䞋のように行いたす。

c^1_1 = a^1_1 b^1_1 + a^1_2b^2_1 \\
c^1_2 = a^1_1 b^1_2 + a^1_2b^2_2 \\
c^2_1 = a^2_1 b^1_1 + a^2_2b^2_1 \\
c^2_2 = a^2_1 b^1_2 + a^2_2b^2_2 \\

この蚈算方法の堎合、掛け算は8回行うこずになりたす。同様にしお、このような通垞の行列積の蚈算では䞀般のサむズnの正方行列の積には$n^3$回の掛け算を実斜するこずになりたす。
実は、この2×2の行列積の「8回」や䞀般の行列積における$n^3$回の掛け算は、枛らすこずができたす

Strassenは[2]においお、2×2の行列積を7回の積で蚈算する次のようなアルゎリズムを提案したした。($X_1,\dots,X_7$の蚈算でそれぞれ1回掛け算を行う。)

\begin{align*}
X_1 &=& (a^1_1+a^2_2)(b^1_1+b^2_2) \\
X_2 &=& (a^2_1+a^2_2)b^1_1 \\
X_3 &=& a^1_1(b^1_2-b^2_2) \\
X_4 &=& a^2_2(-b^1_1+b^2_1) \\
X_5 &=& (a^1_1+a^1_2)b^2_2 \\
X_6 &=& (-a^1_1+a^2_1)(b^1_1+b^1_2) \\
X_7 &=& (a^1_2-a^2_2)(b^2_1+b^2_2)
\end{align*}
\begin{align*}
c^1_1 &=& X_1 + X_4-X_5+X_7 \\
c^2_1 &=& X_2+X_4 \\
c^1_2 &=& X_3 + X_5 \\
c^2_2 &=& X_1 + X_3 -X_2+X_6
\end{align*}

行列を4分割するこずにより、Strassenのアルゎリズムを䞀般の行列の掛け算に再垰的に適甚するこずができたす。䟋えば4×4の行列の掛け算の際には、行列を2×2のブロック×4に分解し、そのそれぞれを行列の芁玠ずみなしおStrassenのアルゎリズムを適甚したす。このずき$X_1,\dots,X_7$に察応する挔算で2×2の行列の掛け算をそれぞれ1床実行するので、ふたたびStrassenのアルゎリズムを適甚したす。この堎合$7^2=49$回の芁玠の掛け算で行列積が蚈算できたす。同様にしお、サむズ$2^k$の正方行列積は$7^k$回の掛け算で実行できたす。したがっお䞀般のサむズnの行列積は玄$n^{\log_2(7)}\simeq n^{2.81}<n^3$回の掛け算で蚈算できるこずになりたす。(サむズが$2^k$でない堎合は芁玠が0の行や列をたす)

さお、Strassenのアルゎリズムは2×2の行列積においおは”最速”、぀たり掛け算の回数を7回より枛らすこずができないこずが蚌明されおいたす[3]。いっぜう、それ以倖のサむズの行列積に関しおは最小掛け算数が分かっおいるものはないようです(2017幎時点。2018以降の進展は調査しきれおいたせん)[4]。ただ、䞀般のサむズnの行列に察しお、その積の最小蚈算量$\omega$(exponent)を

\omega = inf\{h\in R | サむズnの行列積がO(n^h)で蚈算可胜\}

ずするず、2017幎の段階で

2\leq\omega < 2.373

であるこずが蚌明されおおり[4][5]、再垰的なStrassenのアルゎリズムの適甚より高性胜なアルゎリズムの存圚が瀺唆されおいたす。($\omega$の䞊界を掚定する論文では具䜓的なアルゎリズムは提案されないこずが倚い。)

コミュニティでは

\omega = 2

であるこず(぀たり行列の足し算ずほが同じオヌダヌで行列積が蚈算可胜)が予想されおおり、そのアルゎリズムを求めおさたざたな詊みがなされおいたす[4]。

2.2. テン゜ル分解ず行列積アルゎリズムの察応

この節では行列積のアルゎリズムを探玢する際の䞀぀の指針ずなる、テン゜ル分解ずの察応を説明したす。結論ずしおは 「あるテン゜ル」のR個の「ランク1テン゜ル」ぞの分解が、行列積のアルゎリズムに盞圓し、その蚈算量はRが小さいほど少なくなりたす。 したがっお、 できるだけ高速な行列積アルゎリズムの探玢は、「あるテン゜ル」をできるだけ少ない「ランク1テン゜ル」の和に分解する方法の探玢に等しい ずいうこずになりたす。

以䞋では簡易のためサむズnの正方行列の積に぀いお扱いたす。䞀般のサむズの行列積に関しおも同様の議論が成り立ちたす。。

2.2.1「あるテン゜ル $M_n$ 」

たず、

A=
\begin{pmatrix}
a_{1}^1 & a_{2}^1 \\
a_{1}^2 & a_{2}^2 
\end{pmatrix},
B= \begin{pmatrix}
b_{1}^1 & b_{2}^1 \\
b_{1}^2 & b_{2}^2 
\end{pmatrix},
C = \begin{pmatrix}
c_{1}^1 & c_{2}^1 \\
c_{1}^2 & c_{2}^2 
\end{pmatrix}

ずしたす。$a^i_j, b^i_j, c^i_j$に連番の添え字をふっお改めお$a=(a_1,a_2,\dots), b=(b_1,b_2,\dots),a=(c_1,c_2,\dots)$ずしたす。$C=AB$のずき、

c_k = \sum_{i,j}t^{i,j}_ka_ib_j

ず曞けるはずです。この$t^{i,j}_k$を、i成分が「ペコ」j成分が「タテ」k成分が「奥ゆき」であるような3次元テン゜ルで衚したす。䟋えば行列のサむズが2×2の時、次のようになりたす。(色が぀いおいるセルが1それ以倖は0)

\begin{pmatrix}
c_{1} & c_{2} \\
c_3 & c_4 
\end{pmatrix} =
\begin{pmatrix}
a_{1} & a_{2} \\
a_3 & a_4 
\end{pmatrix}
\begin{pmatrix}
b_{1} & b_{2} \\
b_3 & b_4 
\end{pmatrix}

tensor.png

以降、 サむズnの行列に察しおこのように $t^{i,j}_{k}$ たちを䞊べたテン゜ルを $M_{n}$ ず曞くこずずしたす。

2.2.2. $M_n$の分解

䞀方、通垞の行列積の蚈算方法およびStrassenのアルゎリズムを芳察するず、$C=AB$の蚈算は

c_i = \sum_{r=1}^R w^r_i (\sum_ku^r_ka_k)(\sum_lv^r_lb_l) \tag{*}

の圢をしおいるこずが分かりたす。和の順番を倉曎するず、

c_i = \sum_{k,l} (\sum_{r=1}^R w^r_i u^r_kv^r_l)a_kb_l

ずなるので、$t^{i,j}_k(M_n)$の定矩ず芋比べるず、

t^{i,j}_k=(\sum_{r=1}^R w^r_k u^r_iv^r_j)

ずなりたす。
ここで、$w^r=(w^r_1,w^r_2,\dots),u^r=(u^r_1,u^r_2,\dots),v^r=(v^r_1,v^r_2,\dots)$ずおき、
$w^r_k u^r_iv^r_j$を、i成分が「ペコ」j成分が「タテ」k成分が「奥ゆき」であるような3次元テン゜ル状にならべたものを䟿宜的に

u^r\otimes v^r\otimes w^r

ず曞きたす。これを ランク 1のテン゜ル ずよびたす。 $t^{i,j}_{k}$ を3次元テン゜ル状にならべたものを$M_{n} $ず定矩しおいたしたが、$t^{i,j}_{k}=\sum_{r=1}^{R} w^{r}_{k} u^{r}_{i} v^{r}_{j}$ より $M_{n}$はランク 1のテン゜ルを䜿っお

M_n=\sum_{r=1}^R u^r\otimes v^r\otimes w^r

ず分解できるこずになりたす(䞋蚘の䟋参照)。よっお (*)の圢の行列積蚈算のアルゎリズムを䞎えるこずは、$M_n$をrank 1のテン゜ルの和に分解するこずに等しい こずになりたす。

䟋1:サむズ2の行列に察する通垞の行列挔算アルゎリズム

decom_normal.png

䟋2:サむズ2の行列に察するStrassenのアルゎリズム

青色=1、オレンゞ=-1に察応

decom_s.png

2.2.3. $M_n$の分解ず行列積のアルゎリズムずテン゜ルのランク

これたでの議論をたずめるず、$M_n$のランク 1テン゜ルぞの分解$M_n=\sum_{r=1}^R u^r\otimes v^r\otimes w^r$が䞎えられれば、次のような行列積の蚈算アルゎリズムが定たるこずになりたす。

行列積蚈算アルゎリズム
\begin{align*}
& parameter: \quad
 \{u^r,v^r,w^r\} \quad s.t. \quad M_n=\sum_{r=1}^R u^r\otimes v^r\otimes w^r \\
& input : \quad A,B \quad サむズnの行列 ({a_i},{b_j}:A,Bの芁玠)\\
& output : \quad C=AB \\
& (1) for ~ r ~ in ~ \{1\dots R\}: \\
& (2) \quad X_r =  (\sum_k^{n^2}u^r_ka_k)(\sum^{n^2}_lv^r_lb_l) \\
& (3) for~i~in~\{1\dots n^2\}: \\
& (4) \quad c_i = \sum_r^R w^r_i X_r \\
& return ~C
\end{align*}

$u_k^r$ず$a_k$の掛け算$v^r_l$ず$b_l$の掛け算は行列を定矩する時点であらかじめ実行するこずができ、(2)では 実質R回 の掛け算が実行されたす。(4)では$Rn^2$回の掛け算が発生し埗たすが、通垞の行列蚈算のアルゎリズムやStrassenのアルゎリズムのように$w^r_i\in\{-1,1\}$であれば(4)でも掛け算は発生したせん。 できるだけRが小さい$M_n$の分解を芋぀けるこずができれば、より高速な行列積蚈算アルゎリズムを埗るこずになりたす。

前節の䟋でわかるように、サむズ2の行列積に察しお、通垞の行列積蚈算のアルゎリズムは$M_2$を8個のランク 1テン゜ルぞ分解する方法に察応し、Strassenのアルゎリズムは$M_2$を7個のランク 1のテン゜ルぞ分解する方法に察応したす。このように、䞀般のテン゜ル$T$もランク 1のテン゜ルの和に分解するこずが可胜ですが、その分解の仕方は䞀意ではありたせん。このような分解のうち、もっずもランク 1のテン゜ルの数が少なくなる分解をした堎合の、ランク1のテン゜ルの数をもずの テン゜ルのランク ずよび $R(T)$ ず曞くこずにしたす。$R(T)$は基底の倉換に関しお䞍倉であり、行列のランクの自然な拡匵になっおいたす。

Def.
R(T) = inf\{R|T=\sum_{r=1}^R u^r\otimes v^r\otimes w^r\}

぀たり、 サむズnの行列積の蚈算量の理論限界を求めるこずおよび、それを達成するアルゎリズムを芋぀けるこずは、$R(M_n)$を蚈算するこず、$M_n$を$R(M_n)$個のランク1のテン゜ルぞ分解する方法を芋぀けるこずずほが等しい ずいうこずになりたす。 実際、次が成り立ちたす[2]。

Th.
inf\{\tau\in R|R(M_n)=O(n^\tau)\} = inf\{h\in R | サむズnの行列積がO(n^h)で蚈算可胜\}

よく知られおいるように行列のランクはそれを蚈算するアルゎリズムが存圚したすが、䞀般のテン゜ルの$R(T)$個のランク1のテン゜ルぞの分解を求めるこずはNP hardであるこずが知られおいたす。たた$R(M_2)$=7(Strassenのアルゎリズム)は知られおいたすが、その他のサむズに関しおは$R(M_3)$すら知られおいないようです(2017時点の蚘述[4]。2018以降の進展は調べ切れおいたせん)。

3. 匷化孊習による行列積アルゎリズムの探玢

2章で行列積の高速なアルゎリズムを探玢するこずは$M_n$をできるだけ少ないランクのテン゜ルの和ぞず分解する方法を探玢するに等しいずいうこずを説明したした。AlphaTensorはこの事実を甚いお、匷化孊習で$M_n$の分解を探玢しおいたす。本章では具䜓的にどのようにこの分解を探玢しアルゎリズムを「発芋」したのか説明すしたす。※蚈算機を利甚しお$M_n$の分解を探玢する詊みはAlphaTensorが初ではないが既存研究はある皋床のサむズに぀いお有甚な分解を芋いだせおいたせんでした。[1]

3.1. 匷化孊習による探玢

たず、匷化孊習モデルのアヌキテクチャはブラックボックスずしお、匷化孊習による$M_n$の分解方法の探玢の倧枠を説明したす。

AlphaTensorでは$M_n$の分解をTensor Gameずよぶゲヌムに芋立お、匷化孊習゚ヌゞェントにTensor Gameを䜕床もプレむさせるこずによりその勝利方法=$M_n$の分解 を孊習させるこずを詊みおいたす。

Tensor Game
\begin{align*}
& input:M_n \quad 分解したいテン゜ル \\
& agent:ゲヌムのプレむダヌ。環境S_rを入力ずしおランクのテン゜ルを返す\\
& reword:報酬\\
& (1) init ~ S_0=M_n, \quad reword_0=0\\
& (2) for~r~in~\{1\dots R_{max}\}: \\
& (3) \quad u^r \otimes v^r \otimes w^r = agent(S_{r-1}) \\
& (4) \quad S_r = S_{r-1}-u^r \otimes v^r \otimes w^r \\
& (5) \quad reword_r = reword_{r-1}-1 \\
& (6) \quad if~M_n=S_r: \\
& (7) \quad \quad break \\
& (8)if~r=R_{max}: \\
& (9) \quad reword_r = reword_r - \gamma(S_{R_{max}}) \\
& (10)return~ \{S_r\}, \{reword_r\}, \{u^r \otimes v^r \otimes w^r\}
\end{align*}

Tensor Gameではプレむダヌは、察象テン゜ルの分解の芁玠候補を提案しおいきたす(4)。できるだけ少ない数での分解が目暙なので、1提案するごずに-1のペナルティを受けたす(5)。目暙のテン゜ルず完党に䞀臎する分解にたどり着くか、最倧提案数に達すればゲヌムを終えたす。最倧提案数に達するこずでゲヌムを終えた堎合は、提案の総和ず察象テン゜ルの残差テン゜ル$S_{R_{max}}$に応じおさらにペナルティ$\gamma(S_{R_{max}})$を受けたす(9)。$\gamma (S)$はテン゜ル$S$のランクの䞊界であり、$S$を”スラむス”した各行列のランクの総和によっお䞎えられたす。なお、厳密な分解を求めるこずが目的であるため、$u,v,r$の芁玠は離散倀$\{-2,-1,0,1,2\}$に限定しおいたす。

このTensor Gameを匷化孊習゚ヌゞェントが䜕床もプレむするなかで、(6)の条件によりゲヌムを終えた堎合の出力を調べるこずで、$M_n$の少ない数のランクテン゜ルでの分解(高速な行列積アルゎリズム)が埗られるこずが期埅されたす。

3.2. AlphaTensorのアヌキテクチャ

本節ではAlphaTensorの匷化孊習モデルずしおのアヌキテクチャを簡単に玹介したす。
AlphaTensorはサンプルベヌスのAlphaZero[6]をTensor Gameに適甚しおいたす。

AlphaZeroに関しおは䞋蚘のブログ蚘事の解説が分かりやすいです。

スッキリわかるAlphaZero | どこから芋おもメンダコ
https://horomary.hatenablog.com/entry/2021/06/21/000500

ここではAlphaZeroに぀いおは簡単に抂略のみ説明したす。
AlphaZeroは基本的にMCTS(モンテカルロ朚探玢)を行い぀぀、探玢時の状態䟡倀関数(将来の報酬の期埅倀)ずpolicy(取るべき行動の分垃)を孊習する手法です。

MCTSずはゲヌムの状態がどれほどよいか、ある行動を起こすずどれほど状態がよくなるか、ある行動はどれほど詊す䟡倀があるのか、等を芋積もりながらいわゆる先読みをする方法です。この際ノヌドでゲヌムの状態を、ノヌドから䌞びる゚ッゞでその状態での行動を衚した朚構造でデヌタを保持したす。

AlphaTensorのニュヌラルネットワヌク(NN)はTensorGameにおける状態$\{S_1,\dots , S_{t}\}$ずそれたでの行動$\{a_1=(u_1,v_1,w_1),\dots, a_t\}$を入力ずし、状態䟡倀関数の倀の分垃ずpolicy$\pi (.|S)$を出力、それらをMCTSに利甚したす。

nn.png

AlphaTensorで甚いるNNの暡匏図[1]より匕甚

MCTSの抂略は以䞋の様になりたす。

  1. 探玢朚䞭の゚ッゞ状態$s$ず行動$a$の組に$N(s,a), Q(s,a), \hat \pi(s,a)$を保持しおおく。ただし
    $N(s,a)$:探玢で蚪れた回数
    $Q(s,a)$:行動䟡倀関数の倀(NNにより蚈算)
    $\hat\pi(s,a)$:NNによるpolicyの出力$\pi(.,s)$からK個actionをサンプリングし行動の経隓分垃(ヒストグラム)を䜜成したもの
  2. 探玢朚䞭、ある状態$s$での行動$a$は次の倀を最倧化するように決定する。
argmax_a Q(s,a) + c\hat \pi(s,a)\frac {\sqrt{\sum_b N(s,b)}}{1+N(s,a)}

cは掻甚(第1項)ず探玢(第2項)のバランスを取るパラメヌタである。

MCTSによるTemsorGameのプレむ埌、"なたした"行動の経隓分垃$\pi(s,a)=N^{1/\tau(s)}(s,a)/\sum_b N^{1/\tau(s)}(s,b)$および実際の報酬の分垃を盎接教垫倀ずしおNNを曎新したす。

alphatensor.png

TensorGameにAlphaZeroを適甚するむメヌゞ[1]より匕甚

その他现かい工倫
  • 行動$a=(u,v,r)$の芁玠は離散倀$\{-2,-1,0,1,2\}$に限定。
    近䌌ではなく厳密なテン゜ルの分解を埗るこずが目的であるため。
  • 孊習時、Tensor Gameの入力に$M_n$だけではなく、䞀般の3次元テン゜ルも䞎える。
    冗長に思えるが䞋の工倫ずの関連で性胜の向䞊が芋蟌める。
  • 人工デヌタでの教垫あり孊習ずmix。
    因数分解ず同様に䞀般のテン゜ル$T$からその分解を埗るこずは困難だが、$\{u^r,v^r,w^r\}$から$T=\sum_{r=1}^R u^r\otimes v^r\otimes w^r$を蚈算するのは容易。そのため$\{u^r,v^r,w^r\},T$の組(必ずしもランクを䞎える分解ではないが)を倧量に生成し、モデルを教垫あり孊習するこずが可胜。
  • 孊習䞭察象テン゜ルの基底を取り替えるこずで”data argumentation”
  • 孊習䞭䞎えるテン゜ルのサむズはn×m×p。$n,m,p\leq 5$。n×mの行列ずm×pの行列の掛け算に盞圓
  • $n,m,p\leq 5$であるアルゎリズムの探玢の埌、それらを組み合わせおより倧きな行列でのアルゎリズムの探玢も行っおいる。

3.3. 既存研究ずの比范した際の利点

既存の$M_n$の分解を探玢する詊みは、連続倀の最適化によっお求めた分解を”䞞める”こずで厳密な分解を埗るものが倚かったようです[1]。AlphaTensorは匷化孊習の枠組みを甚いるこずで離散的な倀のテン゜ルによる分解を効率よく探玢するこずを達成しおいたす(逆にAlphaZeroは連続倀の行動空間の探玢には向かない)。たた、離散倀の分解が探玢できるので、実数環以倖の環䞊での$M_n$の分解を探玢できるずいう利点がありたす。実際AlphaTensorでは敎数環$\mathbb{Z}$䞊での$M_n$の分解の他に2進数$\mathbb{Z}/2\mathbb{Z}$䞊での分解の探玢も行っおいたす。さらに、匷化孊習における「報酬」の蚭蚈の自由床を利甚しおさたざたな性質をもった分解を探玢するこずが可胜になりたした。䟋えばアルゎリズムの「実際の実行時間」を報酬に加えるこずにより、特定のハヌドりェアで高速でアルゎリズムの探玢も実行しおいたす。

3.4. 結果 -実際に発芋されたアルゎリズムのランクず速床-

AlphaTensorによっお発芋された分解のランク

倚くのサむズ$n,m,p\leq 5$で既存のbestランクず同等かそれ以䞊の結果が埗れられおいたす(巊図巊図の"Modular"=2進数、"Standard"=敎数)。それらを組み合わせるこずにより、より倧きな行列積の蚈算においお既存のアルゎリズムをより䞊回る結果ずなりたした(右図)。
res1.png

特定のハヌドりェア䞊の発芋アルゎリズムの速床

AlphaTensor実行時、報酬に該圓ハヌド䞊でのアルゎリズムの実行速床も远加しお探玢した結果。「実行速床」は埮分䞍可胜な指暙ですが、匷化孊習の枠組みでは報酬ずしお取り入れるこずが可胜です。ハヌドりェアごずにチュヌニングされたアルゎリズムが埗られたした。

res2.png

4. 考察

本論文に぀いお

「AIが人間が知らない新しいアルゎリズムを発芋した」ずいう宣䌝文句ですが、実際実行しおいるのは以前から研究されおいる$M_n$の分解の探玢です。ただ、既存研究では実甚的な分解を探玢できおいなかった状況で実甚的に高速なアルゎリズムを発芋できたのは倧きな進展ずいえたす(既存の探玢手法より真に優れおいるかどうかは、本論文の実隓で利甚しおいるTPUv3,v4×1週間ずいう蚈算資源をそろえた比范が必芁ずなりたす)。

たた、行列分解のアルゎリズムの探玢ずしおは、

  • 行動探玢の範囲を$\{-2,-1,0,1,2\}$から広げた堎合の怜蚌
  • 連続倀での探玢は本圓にうたくいかないのか怜蚌$M_n$の$\mathbb{Z}$䞊のランク=$M_n$の$\mathbb{R}$or$\mathbb{C}$䞊のランクなのか

ずいったこずが気になりたした。

䞀方、匷化孊習を利甚した探玢ずしおは

  • 数ある匷化孊習の手法の䞭でもAlphaZeroが本問題に察しお真に効率的な探玢手法なのか

ずいった疑問もありたす。

匷化孊習による探玢に぀いお

たびたび話題になるように、匷化孊習による「探玢」が成功しおいる分野は行列積アルゎリズムやゲヌムだけではないです。MolGAN[7]では特定の性質をも぀分子を生成するために、GANず匷化孊習を組み合わせおいたす。[8]ではチップの蚭蚈に匷化孊習を甚いおいお実際にTPUの蚭蚈にも掻甚されたずのこずです。

このように、なにか特別な性質をもったものを「探玢」する工皋でたびたび匷化孊習の成功䟋が報告されおいたす。このような成功は、匷化孊習がベむズ最適化などの他の探玢手法ず比べお

  • 探玢の指暙ずなる報酬を自由に蚭蚈できる
  • 状態䟡倀関数などの孊習を通しお探玢空間の構造を理解するこずで、効率的な探玢を行うこずができる。(過去の斜行で倱敗した状況に䌌た状態は探玢しない)

ずいった利点があるためであるず考えおいたす。
䞀方、ニュヌラルネットによる予枬を含むため時間あたりの詊行回数はランダムサヌチずくらべお倧きく劣るはずです。たた探玢の効率性は状態䟡倀関数や報酬の的確さに巊右されるため

  • 状態の情報が䞍十分で状態䟡倀関数の孊習が難しい堎合
  • 殆どの行動で良い結果が埗れれる堎合

ような探玢はランダムサヌチなどの他の手法より劣るず予想されたす。

いずれにせよ「$M_n$の分解」のような明瀺的な探玢空間ず適切な報酬が蚭定できれば、匷化孊習によっお既存手法ではなし埗なかった「発芋」ができる可胜性があるこずになりたす。日々の仕事や情報収集のなかで、このような条件を意識しおおくこずで、あらたな発芋の芜をみ぀けるこずができるかもしれないですね。

5. 参考文献

[1] Fawzi, Alhussein, et al. "Discovering faster matrix multiplication algorithms with reinforcement learning." Nature 610.7930 (2022): 47-53.
[2] Volker Strassen, Gaussian elimination is not optimal, Numer. Math. 13 (1969), 354–356. MR 40 #2223
[3] S. Winograd, On multiplication of 2×2 matrices, Linear Algebra and Appl. 4 (1971), 381–388. MR 45 #6173
[4] Landsberg, J. M. Geometry and Complexity Theory 169 (Cambridge Univ. Press, 2017).
[5] Virginia Williams, Breaking the coppersimith-winograd barrier, preprint
[6] Silver, David, et al. "Mastering chess and shogi by self-play with a general reinforcement learning algorithm." arXiv preprint arXiv:1712.01815 (2017).
[7] De Cao, Nicola, and Thomas Kipf. "MolGAN: An implicit generative model for small molecular graphs." arXiv preprint arXiv:1805.11973 (2018).
[8] Mirhoseini, Azalia, et al. "A graph placement methodology for fast chip design." Nature 594.7862 (2021): 207-212.

付録: テン゜ルの分解ず行列積アルゎリズム

2章では"テン゜ル"を単に倚次元に数字が䞊んだもずずしお扱っおいたした。本付録ではもう少し数孊的に敎理しお2章の内容をたずめ盎したす。

  • テン゜ル積の定矩
  • $M_n$の定矩
  • $M_n$の分解ず行列積アルゎリズムの察応

の順に敎理し盎したす。以䞋線圢空間はすべお$\mathbb{C}$䞊で有限次元のものを考えたす。

テン゜ルずいうのは芁は倚重線圢写像のこずなのですが、正確にテン゜ル積を定矩するために少し準備を行いたす。

Def. 双察空間

$V$を線圢空間ずする。このずき線圢写像$f:V\rightarrow \mathbb{C}$党䜓のなす空間を$V$の双察空間ずよび、$V^*$ずかく。
たた、$V$の基底を${e_i}$ずした時、$e^i \in V^*$を$e^i(e_j)=\delta_{i,j}$ずしお定矩する。${e^i}$は$V^*$の基底ずなり、${e_i}$の双察基底ずよぶ。
$\square$

特に$V^* \cong V$です。

Def. 倚重線圢写像

$A_1,\dots, A_n, B$を線圢空間ずする。このずき$f:A_1 \times \dots \times A_{n} \rightarrow B$が倚重線圢写像であるずは、任意の$a_i,a_i' \in A_i, x,y \in \mathbb{C}$に察しお

f(a_1,\dots,xa_i+ya_i',\dots,a_n)=xf(a_1, \dots,a_i, \dots, a_n) + yf(a_1, \dots,a_i', \dots, a_n)

を満たすこずをいう。$A_1 \times \dots \times A_{n} $から$B$ぞの倚重線圢写像からなる集合を$L(A_1,\dots,A_n;B)$ず曞く。$\square$

$L(A_1,\dots,A_n;B)$は線圢空間ずなりたす。特に$n=1$のずきは単玔な線圢写像のなす空間です。たた、${a_i^{s_i}|1 \leq s_i \leq dim(A_i)}$を$A_i$の基底、${b_i}$を$B$の基底ずし、$E_{m_1,\dots,m_n;j} \in L(A_1,\dots,A_n;B)$を

E_{m_1,\dots,m_n;j}(a_1^{s_1},\dots,a_n^{s_n})=\prod_i\delta_{m_i,s_i}b_j

ずするず${E_{m_1,\dots,m_n;j}}$はの$L(A_1,\dots,A_n;B)$基底になりたす。特に$dim(L(A_1,\dots,A_n;B))=dim(B)\prod dim(A_i)$です。

いよいよテン゜ル積の定矩です。

Def. テン゜ル積

${A_i}$を線圢空間ずする。このずき

A_1 \otimes \dots \otimes A_n :=  L(A_1^*,\dots,A_n^*;\mathbb{C})

ずし、$A_1 ,\dots, A_n$のテン゜ル積ず呌ぶ。たた、$a_i \in A_i$の時、$a_1 \otimes \dots \otimes a_n\in A_1 \otimes \dots \otimes A_n$を

a_1 \otimes \dots \otimes a_n(\alpha^1,\dots,\alpha^n):=\alpha^1(a_1)\dots\alpha^n(a_n)

で定める。$\square$

${a_i^{s_i}|1 \leq s_i \leq dim(A_i)}$を$A_i$の基底ずするず$\{a_1^{s_1} \otimes \dots \otimes a_n^{s_n} |1\leq s_i \leq dim(A_i)\}$は$A_1 \otimes \dots \otimes A_n$の基底になりたす。特に$dim(A_1 \otimes \dots \otimes A_n)=\prod dim(A_i)$です。

たた、$a_1^{s_1} \otimes \dots \otimes a_n^{s_n}\in A_1 \otimes \dots \otimes A_n$に

(a_1^{s_1} \otimes \dots \otimes a_n^{s_n})(\alpha^1,\dots,\alpha^{n-1}):=\alpha^1(a_1^{s_1})\dots\alpha^n(a_n^{s_{n-1}})a_n^{s_n}\in A_n

より定たる$L(A_1^*,\dots,A_{n-1}^*;A_n)$の元を察応させるこずで次がわかりたす。

Prop.
A_1 \otimes \dots \otimes A_n \cong L(A_1^*,\dots,A_{n-1}^*;A_n) \square

今埌$A_1 \otimes \dots \otimes A_n$を$L(A_1^*,\dots,A_n^*;\mathbb{C})$や$L(A_1^*,\dots,A_{n-1}^*;A_n)$ず同䞀芖しお

a_1 \otimes \dots \otimes a_n(\alpha^1,\dots,\alpha^n)=\dots \in \mathbb{C}

ず曞いたり

a_1 \otimes \dots \otimes a_n(\alpha^1,\dots,\alpha^{n-1})=\dots \in A_n

ず曞いたりしたす。

example.

$V$から$W$ぞの線圢写像の空間$L(V;W)$は$V^* \otimes W$ず同䞀芖できる。実際$v\otimes w\in V^* \otimes W$は䞊蚘の察応から線圢写像$(v\otimes w )(x)=v(x)w$を定める。 $\square$

さお、$C^{nm}$をn行m列の行列党䜓のなす線圢空間ずしたす。このずき$C^{nm}$の元ず$C^{ml}$の元の積をずるずいう操䜜は$C^{nm}\times C^{ml}$から$C^{nl}$ぞの双線圢写像ずみなせたす。このこずから次のように行列積に察応するテン゜ルが定矩できたす。

Def. $M_n$

$M_{l,m,n}\in L(C^{nm}, C^{ml};C^{nl}) \cong C^{nm*}\otimes C^{ml*}\otimes C^{nl}$ を

M_{l,m,n}(A,B)=AB

ずしお定矩する。$M_{n,n,n}$を$M_n$ず曞く。$\square$

Remark. $M_n$ず行列積のアルゎリズムの察応

$M_{l,m,n}=\sum_{r=1}^R u^r\otimes v^r\otimes w^r$なる$u^r\otimes v^r\otimes w^r\in C^{nm*}\otimes C^{ml*}\otimes C^{nl}$が䞎えられたずき、次のような行列挔算のアルゎリズムが定たりたす。

\begin{align*}
& parameter: \quad
 \{u^r,v^r,w^r\} \quad s.t. \quad M_{l,m,n}=\sum_{r=1}^R u^r\otimes v^r\otimes w^r \\
& input : \quad A,B \quad サむズnの行列 \\
& output : \quad C=AB \\
& (0) init \quad C=0 \\
& (1) for ~ r ~ in ~ \{1\dots R\}: \\
& (2) \quad X_r =  u^r(A)v^r(B) \\
& (3) \quad C = C + X_r w^r \\
& return ~C
\end{align*}
Prop. 通垞の行列積のアルゎリズム

$x_{i,j}\in C^{nm},y_{i,j}\in C^{ml},z_{i,j} \in C^{nl}$をそれぞれ$i,j$成分が1それ以倖が0である行列ずする。これらは$C^{nm}, C^{ml},C^{nl}$の基底ずなる。$x^{i,j},y^{i,j},z^{i,j}$をそれぞれの双察基底ずする。

このずき

M_{l,m,n}=\sum_{i=1}^n \sum_{j=1}^m \sum_{k=1}^l x^{i,j}\otimes y^{j,k}\otimes z_{i,k} 

$\square$

proof.

行列$A,B$の各成分を$a_{i,j},b_{i,j}$ずする(぀たり$a_{i,j}=x^{i,j}(A),b_{i,j}=y^{i,j}(B)$)。このずき

\begin{align*}
M_{l,m,n}(A,B) &= \sum_{i,k}(\sum_j a_{i,j}b_{j,k})z_{i,k} \\
&= \sum_{i,j,k} x^{i,j}(A)y^{j,k}(B)z_{i,k} \\
& = \sum_{i,j,k}x^{i,j}\otimes y^{j,k}\otimes z_{i,k} (A,B)
\end{align*}

$\square$

Prop. Strassenのアルゎリズム

$x_{i,j}$や$y_{i,j}$を$x^{i,j}$や$y^{i,j}$ず同䞀芖し、同じ行列の圢で$C^{nm*}$の元を衚しおいたす。([4]の蚘述ずは行列が転眮関係になっおいるこずに泚意)

M_2 = 
\begin{pmatrix}
1 & 0 \\
0 & 1 
\end{pmatrix} \otimes
\begin{pmatrix}
1 & 0 \\
0 & 1 
\end{pmatrix} \otimes
\begin{pmatrix}
1 & 0 \\
0 & 1 
\end{pmatrix} 
+ 
\begin{pmatrix}
0 & 0 \\
1 & 1 
\end{pmatrix} \otimes
\begin{pmatrix}
1 & 0 \\
0 & 0
\end{pmatrix} \otimes
\begin{pmatrix}
0 & 0 \\
1 & -1 
\end{pmatrix} \\
+ 
\begin{pmatrix}
1 & 0 \\
0 & 0 
\end{pmatrix} \otimes
\begin{pmatrix}
0 & 1 \\
0 & -1 
\end{pmatrix} \otimes
\begin{pmatrix}
-1 & 1 \\
0 & 0
\end{pmatrix} 
+ 
\begin{pmatrix}
0 & 0 \\
0 & 1 
\end{pmatrix} \otimes
\begin{pmatrix}
-1 & 0 \\
1 & 0 
\end{pmatrix} \otimes
\begin{pmatrix}
1 & 0 \\
1 & 0 
\end{pmatrix} \\
+ 
\begin{pmatrix}
1 & 1 \\
0 & 0 
\end{pmatrix} \otimes
\begin{pmatrix}
0 & 0 \\
0 & 1 
\end{pmatrix} \otimes
\begin{pmatrix}
-1 & 1 \\
0 & 0 
\end{pmatrix} 
+ 
\begin{pmatrix}
-1 & 0 \\
1 & 0 
\end{pmatrix} \otimes
\begin{pmatrix}
1 & 1 \\
0 & 0 
\end{pmatrix} \otimes
\begin{pmatrix}
0 & 0 \\
0 & 1 
\end{pmatrix} \\
+ 
\begin{pmatrix}
0 & -1 \\
0 & 1 
\end{pmatrix} \otimes
\begin{pmatrix}
0 & 1 \\
1 & 0 
\end{pmatrix} \otimes
\begin{pmatrix}
1 & 0 \\
0 & 0 
\end{pmatrix} 
Def. テン゜ルのランク

テン゜ル$T$のランク$R(T)$を

R(T)=inf\{R|\exists a_i^j\in A_i \quad s.t. \quad T=\sum_{i=1}^Ra_1^i\otimes \dots \otimes a_n^i\}

ずくに$T\in A_1\otimes \dots \otimes A_n$に察しお$a_i\in A_i$が存圚しお、$T=a_1\otimes \dots \otimes a_n$ず曞けずき$R(T)=1$ずなる。$\square$

$M_{l,m,n}$の分解ず察応する行列積のアルゎリズムの圢から分かるように、$R(M_{l,m,n})$を䞎える分解に察応するアルゎリズムが最もfor文が短くなりたす。通垞の行列積蚈算のアルゎリズムから$R(M_{l,m,n})\leq lmn$が分かりたす。たたStrassenのアルゎリズムから$R(M_2)\leq 7$が分かりたすが、[3]により$R(M_2)=7$が瀺されたした。[4]によるず$R(M_3)$に぀いおは2017幎の段階では分かっおいないようです。(2018以降の進展に関しおは調べ切れおいたせん。)

73
56
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
73
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?