行列っていったい何ですか?
公開日
2021年12月22日
更新日
2021年12月22日

この記事の主な内容
1. まえおき
こんにちは. 数学教室「和」大阪校講師の山本拓人です. 理系大学 1 年生の多くは線形代数学で行列を学びますが, 「行列があるとどう嬉しいのかイマイチ分からなかった」という相談をよく頂きます. 行列は\begin{bmatrix}1 & 2 & 3 \\4 & 5 & 6 \\\end{bmatrix}のように数を長方形に並べて表されるもので, この行列を用いる背景には「多変数の比例」という考え方があります.
線形代数学は純粋数学ではもちろん統計学や機械学習などといった分野にも用いられ, 現代数学では欠かせないものとなっています. また, 行列は線形代数学のベースとなるものなので, 行列の気持ちを理解していることは線形代数学を理解する上でとても大切なことといえます.
そこでこの記事では, 線形代数学のベースである行列にどのような背景があるのかを「多変数の比例」の観点からお伝えします.
2. 1変数関数と多変数関数
中学校ではy = 2xやy=-3xのようにy=ax(a は実数) の形の関数を学びます. 比例の関数y=ax ではxを2倍, 3倍, ……とするとyも2倍, 3倍,\cdotsとなるわけですが,このときyは xに比例するといい, aを比例係数というのでした.
大学に入るまで関数は主に1変数関数を扱います. 1変数関数とは大雑把にいえば「変数を1つ定めると値が1つ返ってくる規則」のことで, 例えば比例y=2xはxに具体的に値x=3を代入するとy=6とひとつだけ値が返ってくるので1変数関数 (yは1変数xの関数) です.
大学に入ると関数の変数は1つとは限らなくなり, 変数が複数ある関数を多変数関数といいます. 実は多変数関数は身近にも溢れていて
- ・りんご100円
- ・みかん80円
としたとき, りんごx個とみかんy個買うときの合計金額をz円とするとz=100x+80yが成り立ちますが, これはまさにzが2変数y, zの関数になっていますね.
変数が複数の関数は全て多変数関数というので,例えば
- ・z = x + 2y, z = x^yなどは2変数x, yの多変数関数
- ・w=xyz, w = (y + z^2)\sin{x}などは3変数x, y, zの多変数関数
です.
変化するものが2つ以上あれば自然に多変数関数が現れるので, 数学を応用する際に多変数関数が広く用いられることは納得して頂けることと思います.
3.多変数関数の比例
何か新しいものを考えるとき, いきなり複雑なものを考えることはあまり現実的ではなく, まずは簡単なものから考察を始めるのはいつでも大切です. 多変数関数を学ぶ際にも, まずは簡単な多変数関数から考えることは自然なことですね.
では, 多変数関数の中で簡単な関数とはどんなものでしょうか?
1変数関数の中では先ほどの比例y=axが(最も)簡単な関数と言って良いでしょう. このことから, 多変数関数の中でも「比例に相当する関数」が(最も)簡単な関数であろうと考えることは自然ですね.
そこで, 中学校で学ぶ比例を多変数関数に拡張することを考えてみましょう. たとえば,
\left\{ \begin{array}{l} y_1=x_1+2x_2+3x_3 \\ y_2=4x_1+5x_2+6x_3 \end{array} \right. は比例y=axのxが3つ(x_1とx_2とx_3)に増え, yが2つ(y_1とy_2) に増えたと考えると, この2つの等式を併せたものは多変数の比例と言って良さそうです.
この他にも
\left\{
\begin{array}{l}
y_1 = x_1 + 2x_2 + 3x_3, \\
y_2 = 4x_1 + 5x_2 + 6x_3, \\
y_3 = 7x_1 + 8x_2 + 9x_3,
\end{array}
\right. \\\,\\
\left\{
\begin{array}{l}
y_1 = x_1 – x_2 + x_3- x_4,\\
y_2 = 2x_1 + x_2 – x_4
\end{array}
\right.
なども「多変数の比例」といって良さそうですね.
4.行列と数ベクトル
ここでは先ほど紹介したこちらの「多変数の比例」関数について考えてみましょう.
\left\{
\begin{array}{l}
y_1=x_1+2x_2+3x_3 \\
y_2=4x_1+5x_2+6x_3
\end{array}
\right.
比例y=axは定数aと変数xをかけてyになるという意味ですから,「多変数の比例」でもこのような考え方をしてみましょう.つまり,係数をまとめて
\begin{bmatrix}1 & 2 & 3 \\4 & 5 & 6 \\\end{bmatrix}
と表し,変数をまとめて
\begin{bmatrix}x_1 \\x_2 \\ x_3 \end{bmatrix}, \,\,\, \begin{bmatrix}y_1 \\y_2 \end{bmatrix}
と表します.そして,線形代数の世界ではこの関数を
\begin{bmatrix}y_1 \\y_2 \end{bmatrix} = \begin{bmatrix}1 & 2 & 3 \\4 & 5 & 6 \\\end{bmatrix}\begin{bmatrix}x_1 \\x_2 \\ x_3 \end{bmatrix}
と表します.
この書き方が比例y=axのように見えるでしょうか?うまく見えない方は
{\boldsymbol y} =\begin{bmatrix}y_1 \\y_2 \end{bmatrix}, \,\,\, A = \begin{bmatrix}1 & 2 & 3 \\4 & 5 & 6 \\\end{bmatrix}, \,\,\, {\boldsymbol
x} =\begin{bmatrix}x_1 \\x_2 \\ x_3 \end{bmatrix}
とおいてみてください.そうするとこの関数は
{\boldsymbol
y} = A{\boldsymbol x}
と表すことができ,あたかもAを「比例定数」とし{\boldsymbol y}は{\boldsymbol x}に「比例」していると思えますね!
このAのように数を長方形に並べたものを行列といい,{\boldsymbol x}, {\boldsymbol y} のように数を並べたものを数ベクトルといいます.
このように行列には「多変数の比例の比例係数」という背景があり,線形代数学は多変数の比例を考える分野ということができるわけですね.
5.統計学への行列の応用 (最小二乗法)
最後に行列 (線形代数) がどのように応用されるかを具体例を紹介します.
あるアイスクリーム屋さんの1日の売り上げ(s円)は
- ・平均気温(t℃)
- ・店の前を通った人の数(n人)
に独立にほぼ比例するとしましょう.つまり
s=at+bn
が成り立つとします.もちろん日によって揺れはあるでしょうが,係数a,bが分かれば,平均気温tと人数nを代入すれば売り上げsがある程度予想できますね.
そこで, a,bを求めるために 100 日間のs,t,nを調べたところ,それぞれ
s_1, s_2,\dots,s_{100}, \,\,t_1, t_2,\dots , t_{100},\,\, n_1, n_2,\dots , n_{100}
になったとしましょう.このとき,s_i=at_i+bn_i(i = 1, 2,\dots, 100) が成り立っていると考えて良さそうですから,
{\boldsymbol s} =\begin{bmatrix}s_1 \\s_2 \\ \vdots \\ s_{100} \end{bmatrix}, \,\,\, {\boldsymbol t} =\begin{bmatrix}t_1 \\t_2 \\ \vdots \\ t_{100} \end{bmatrix},\,\,\, {\boldsymbol n} =\begin{bmatrix}n_1 \\n_2 \\ \vdots \\ n_{100} \end{bmatrix}
とおくと{\boldsymbol s}=a{\boldsymbol t}+b{\boldsymbol n}となりますね.
いま
a{\boldsymbol t}+b{\boldsymbol n} =\begin{bmatrix}at_1+bn_1\\at_2+bn_2 \\ \vdots \\ at_{100}+bn_{100} \end{bmatrix}
ですから,行列X, 数ベクトル{\boldsymbol a}を
X=[{\boldsymbol t},{\boldsymbol n}]=\begin{bmatrix}t_1 & n_1\\t_2 & n_2\\ \vdots & \vdots \\ t_{100} & n_{100} \end{bmatrix}, \,\,\, {\boldsymbol a} =\begin{bmatrix}a \\b \end{bmatrix}
で定めると,予想の売り上げa{\boldsymbol t} + b{\boldsymbol n}を行列と数ベクトルを用いてX{\boldsymbol a}と表すことができます.
さて,a,b (すなわち{\boldsymbol a}) を変えると予想される売り上げ X{\boldsymbol a}が変わるわけですが,この予想される売り上げが実際の売り上げ{\boldsymbol s}に近いほど予測の精度がいいといえそうですね.つまり,|{\boldsymbol s}-X{\boldsymbol a}|^2(各成分の2乗和) が最小となる(最も0に近い)a,bをとれば,{\boldsymbol s}を最もよく予測するX{\boldsymbol a}が出来上がるわけですね.このように,予想の売り上げと実際の売り上げの差の各成分の2乗和が最小となるように係数a,bを定める方法を最小二乗法と呼びます.
ここからは|{\boldsymbol s}-X{\boldsymbol a}|^2をa,bで偏微分して0になるようにa,b を選べば良いのですが,もしも行列やベクトルがなければこの時点で煩雑な計算をすることになりますね.この計算は行列とベクトルのまま普通の微分と同様にすることができ,結果だけ書くとX^{T}Xが逆行列をもてば予測に最適な{\boldsymbol a}が{\boldsymbol a}=(X^{T}X)^{-1}X^{T}{\boldsymbol s} と得られます(X^{T}はXの転置行列,(X^{T}X)^{-1}はX^{T}Xの逆行列).このように行列と数ベクトルを用いることで,多くの成分をまとめられ楽に計算ができます.
統計学は多くのデータから予測を行う分野のため,多くのデータをまとめて表すことのできる行列や数ベクトルと非常に相性が良いのです.最後は少し難しくなってしまいましたが,行列を用いることで長い式をシンプルに表すことができる便利さを感じて頂けたなら幸いです.
<文/山本 拓人>
■本記事に関連するおすすめ講座
お問い合わせはこちらから。お問い合わせページへ