1. ホーム
  2. プログラマーのための線形代数
  3. 線形代数とは何か
  4. 線形代数のはじまり

線形代数のはじまり

線形代数とは何かをより深く理解するために、そのはじまりを簡潔に把握しておきましょう。線形代数は元々は連立線型方程式(linear equations)を解くために 1700 ~ 1800 年台に形式化されたことから始まった学問です。

線型方程式とは、以下のような一次方程式のことです。

\[\begin{eqnarray}
y=4x+1
\end{eqnarray}\]

この式を「線型(linear)」と呼ぶのは、これが平面グラフ上の直線を意味しているからです。そして、それがどのような直線であるかは、説明変数 \(x\) に様々な値を代入して目的変数 \(y\) がどのように変化するのかを求めることでわかります。

例として、以下のように未知の説明変数が \(x_1\) と \(x_2\) の 2 つの式を縦に並べるとします。

\[\begin{eqnarray}
&y_1=&0.1x_1+0.4x_2\\
&y_2=&0.3 x_1+0.9x_2
&\cdots&
\end{eqnarray}\]

このように並べると、左辺の目的変数 \(y\) の列は、右辺の線型方程式の答えが入った列ベクトルであると見ることができます。そして右辺に 2 つある小数がデータである行列 \(A\) です。\(x_1\) と \(x_2\) は説明変数でありベクトル \(x\) です。

\[\begin{eqnarray}
\overset{\small ベクトル \ y}
{\begin{pmatrix}
y_1 \\ y_2
\end{pmatrix}}
=
\overset{\small 行列 \ A}
{\begin{pmatrix}
0.1 & 0.4 \\
0.3 & 0.9
\end{pmatrix}}
\overset{\small ベクトル \ x}
{\begin{pmatrix}
x_1 \\ x_2
\end{pmatrix}}
\end{eqnarray}\]

こうして見ると、この連立線型方程式は、以下のようにシンプルな記号の組み合わせで表せることがわかります。

\[
y=Ax
\]

これが線形代数で最も基本となる式です。

さて義務教育では、連立線型方程式の問題には必ず正しい解答が一つ用意されていたと思います。具体的に言えば、未知の説明変数 \(x\)が \(a\) 個あったとしたら、目的変数 \(y\) の数(線型方程式の数)は必ず \(a\) 個以上用意されていたはずです。

しかし機械学習で扱うデータでは、そのように説明変数 \(x\) と目的変数 \(y\) の数が同じであることは、ほとんどありません。大抵の場合で、説明変数 \(x\) の方が、目的変数 \(y\) の数よりも多くなるのです。

そうした場合は、連立線型方程式を満たす一つの解は存在することができず、答えとなる平面上の直線は、エラーなしには存在することができません。たとえば機械学習にとって欠かすことのできない線形回帰システムでは、説明変数が無限個に存在し、無限個の解が存在します。

このような、本来はとても解けないような問題を解決するのが線形代数の本質であり、線形代数の算術の大半はこのためにあると言えます。

ポイント

  • 線形代数は元々は連立線型方程式(linear equations)を解くために 1700 ~ 1800 年台に形式化された。
  • 義務教育では、連立線型方程式の問題には必ず正しい解答が一つ用意されていた。
  • 機械学習で扱うデータでは、連立線型方程式の答えが一つに求まるということはほとんどなく、そうした問題を解決するのが線形代数の本質である。