線形代数は、どのように使われるか?

こないだ、線形代数ってなんの役に立つの?と聞かれて、至る所で使うよと答えたのだけど、具体性に欠けるので、よくあるパターンを列挙してみる


(1)幾何学的変換としての線形変換
線形代数の教科書の導入として使われてたりする。回転は行列で書けるよね、とか(3次元空間の)アフィン変換も4x4行列で表現できるとか、そういう話。3DCGとかやる人にとっては基本とは言え、概念的に重要な何かがあるというよりは、単に便利なnotationという程度の役割で、線形代数と呼ぶのは憚られる。ただ「主成分分析は超平面への射影」みたいに幾何学的イメージを用いた説明をすることも多いので、幾何的なイメージを持ってないと話が理解できないことはあるかも


(2)関数空間の有限次元近似としてのベクトル空間
線形代数の使い方としては、主流かつ王道。数値シミュレーションとかで、行列が出てくる場合は、ほぼこれ。兵微分方程式を解く問題が行列方程式を解く問題に帰着する。画像とか、信号データでも、本来は連続な空間上の関数と見れるけど、実際のデータは離散的になってて、これも有限次元近似と言える。


(3)大規模データの次元圧縮のための固有値・特異値計算
(2)と並んで、よくある使い方。統計・機械学習とかで使う場合は、多分ほぼこれ。要諦は「要素間の"類似度"を縦横に並べてやると正定値対称行列になってGram行列になる」という点。主成分分析に出てくる共分散行列が内積と関係するのは見やすいけど、一見内積と関係ない数値を縦横に並べただけでも、Gram行列となることがあるというのが凄い(?)。若干毛色の違うものとして、単語文書行列とか、recommendationで使うユーザ・アイテム行列の場合は、単語が各文書に現れる頻度を、単語のベクトル表現として用いようという発想(同様に、文書中の各単語の出現頻度が文書のベクトル表現etc.)。普通に、内積をとれば、単語の類似度を与えると解釈できる。次元圧縮というのは、次元は有限だけど超でかいので(あるいは理論上は無限になるはずのものなので)、もっと次元の低い空間で近似してやろうという話なので、本質的には(2)と同じ思想と言えなくもない。


(4)グラフの隣接行列・距離行列
世に行列と名の付くものは多く、もはや線形代数と関係なく、単に数値を縦横に並べただけじゃね?という感じではあるものの、スペクトラルクラスタリングでは、隣接行列の固有値が意味を持つ。それと、距離行列をmax-plus代数係数の行列と解釈したり、隣接行列をブール代数係数の行列と解釈すると、全点対間最短経路問題や推移閉包の計算が、逆行列の計算と同じだと分かる。でも、こういうことを知ったからって、あまり役には立たない


(5)純粋数学者にとっての線形代数
数学では、空気のように線形代数を使うので、ほんとに至る所で使う。表現論の舞台だったり、行列環は非可換環の最も基本的な例だったり、古典可積分系はLax形式という行列方程式で書けたり、量子論で、状態空間が有限次元だったりすると、線形代数だよねとか。別に無限次元でも線形代数でいいけど。


解析学は、物理の至る所に微分方程式が出てくるので、重要性は見えやすいけど、線形代数は、それほど重要性が見えないのかもしれないなぁ、とか思った