行列による多項式・微分・積分の表現(参考資料)

行列の表記が分かる、また行列の学習時に連立方程式で習った事のある前提で、本来必要な説明をかなり省いています。

おことわり

二元一次方程式と行列表現

行列の計算を習った際に、連立一次方程式が例に挙げられていたと思います。
これは、多項式の各項の係数を行列に取ることで計算しようというものでした。

例えば、以下のような二元一次方程式を考え、

(a1b1a2b2)[xy]=[c1c2](1)\begin{pmatrix} a_1 & b_1 \\ a_2 & b_2 \end{pmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} \cdots(1)

x,yx, yを求めるとき、

A=(a1b1a2b2)A = \begin{pmatrix} a_1 & b_1 \\ a_2 & b_2 \end{pmatrix}

として、行列では(掃き出し法もありますが)逆行列A1A^{-1}を求めて左から掛け、

A1A[xy]=A1[c1c2]A^{-1}A \begin{bmatrix} x \\ y \end{bmatrix} = A^{-1} \begin{bmatrix} c_1 \\ c_2 \end{bmatrix}

E[xy]=[1001][xy]=A1[c1c2]\begin{align*} E \begin{bmatrix} x \\ y \end{bmatrix} &= \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} \\ &= A^{-1} \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} \end{align*}

[xy]=A1[c1c2]\therefore \begin{bmatrix} x \\ y \end{bmatrix} = A^{-1} \begin{bmatrix} c_1 \\ c_2 \end{bmatrix}

より、逆行列A1A^{-1}を求めてから右辺を計算することで解を得たかと思います。

連立二次方程式への置き換え

ここで、(1)の式のx,yx,yを、それぞれx2,xx^{2},xと置き換えると、(1)は、

(a1b1a2b2)[x2x]=[c1c2](2)\begin{pmatrix} a_1 & b_1 \\ a_2 & b_2 \end{pmatrix} \begin{bmatrix} x^2 \\ x \end{bmatrix} = \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} \cdots(2)

と表現することが出来ます。 通常、二次方程式はax2+bx+c=0ax^2+bx+c=0で表現しますが、(2)の左辺を計算すると、

[a1x2+b1xa2x2+b2x]=[c1c2]\begin{bmatrix} a_1x^2 + b_1x \\ a_2x^2 + b_2x \end{bmatrix} = \begin{bmatrix} c_1 \\ c_2 \end{bmatrix}

より、右辺を移項して、

[a1x2+b1xc1a2x2+b2xc2]=[00]\begin{bmatrix} a_1x^2 + b_1x - c_1 \\ a_2x^2 + b_2x - c_2 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}

と、(符号はさておき、比較的)見慣れた表現に置き換えられます。
このように、多項式も「係数を行列として取る」ことで、行列のルールに置き換えて表現・計算することが出来ます。

行列上の「微分」

多項式も行列として表現できることが分かったところで、微分の行列表現を大ざっぱに説明します。
改めて、2次の多項式を係数のベクトルに置き換えることを考えます。

例えば、

(abc)[x2x1]\begin{pmatrix} a &b &c \end{pmatrix} \begin{bmatrix} x^2 \\ x \\ 1 \end{bmatrix}

を計算すると、ax2+bx+cax^2+bx+cになることが分かります。 このような[x2,x,1][x^2,x,1]^\intercal\intercalは転置の意味。文中はカンマ付きでこう表現することがあります)とその係数行列で表現される関数ffを用意し、これを微分するような行列ff'を考えます。これは、

f=(02ab000)[x2x1]\begin{align*} f' &= \begin{pmatrix} 0 &2a &b \\ \quad &0 &0\\ \quad &\quad &0 \end{pmatrix} \begin{bmatrix} x^2 \\ x \\ 1 \end{bmatrix} \end{align*}

と表現出来ないでしょうか。
この係数行列の第1行のみを解くと、

f=0x2+2ax+b=2ax+b\begin{align*} f' &= 0x^2+2ax+b \\ &= 2ax+b \end{align*}

となり、微分を行列として表現出来たと言えないでしょうか。
生成AIでは、(おそらく)連立高次方程式の係数行列を微分することで計算の省力化を図ろうとしていると考えられます。
このような方法は、統計の主成分分析でも同じようにベクトルとして置き換えられ、「主成分を求める」ことは「係数行列の微分」を行うことと同じ処理をすると考えられます。

行列上の「積分」

行列で微分を(何となく)表現出来たところで、逆の操作である積分を考えてみます。
二次方程式f(x)=ax2+bx+cf(x)=ax^2+bx+cについて表現すると、

f(x)=(abc000)[x2x1]\begin{align*} f(x) &= \begin{pmatrix} a &b &c \\ \quad &0 &0\\ \quad &\quad &0 \end{pmatrix} \begin{bmatrix} x^2 \\ x \\ 1 \end{bmatrix} \end{align*}

とできます。
ここで、この不定積分F(x)=f(x)dx+CF(x)=\int f(x)dx+Cの形を表現してみます。(CCは積分定数とし、係数行列内の係数ccとは異なります)

F(x)=(13a12bc00000000)[x3x2x1]+[000C]=[13ax3+12bx2+cx+C]\begin{align*} F(x) &= \begin{pmatrix} \frac{1}{3}a &\frac{1}{2}b &c &0 \\ \quad &0 &0 &0 \\ \vdots &\quad &0 &0 \\ 0 &\cdots &\quad &0 \end{pmatrix} \begin{bmatrix} x^3 \\ x^2 \\ x \\ 1 \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \\ 0 \\ C \end{bmatrix} \\ &= \begin{bmatrix} \frac{1}{3}ax^3+\frac{1}{2}bx^2+cx+C \end{bmatrix}^\intercal \end{align*}

以上より、積分も行列で表現出来るといえます。
これらの発展から、三次以上の高次方程式も、多変数の多項式も同様に、係数を割り当てることで表現出来るといえます。

実際には手順は異なりますが、「微分積分、あるいは人工知能分野での行列計算で表現されているものはおおよそこうである」という理解は可能だと思います。

理解の助けにおすすめの理数書

(以上)