メインコンテンツへスキップ
見出し画像

線形代数って何者? ― AIを支える「変換の数学」入門

    学び直し研究所

    AI時代になった今、線形代数はこれまで以上に重要な学問になっています。LLM(大規模言語モデル)の根底には、行列やベクトル空間の考え方が深く関わっています。私自身も、AIをただ便利な道具として使うだけでなく、その仕組みを理解できるよう、線形代数を改めて勉強していこうと思います📚✨

    そもそも行列って何なの?

    「行列」という言葉を聞くと、数字がぎっしり並んだ表を思い浮かべる人が多いと思う。

    でも実は、行列の本質は「変換のルール」だ。

    たとえばAIに画像を入力すると、数値の羅列が別の数値の羅列に変わって出てくる。この変換を担っているのが行列なんだ。

    y=Wx\boldsymbol{y} = W\boldsymbol{x}

    WW が行列、xx が入力、yy が出力。プログラムで言えば入力が関数の引数、行列が関数の本体、出力が戻り値に対応する。

    AIの学習とは、「正しい変換をする行列 WW を探す作業」と言い換えられる。


    まず「スカラー・ベクトル・行列」を整理しよう

    数の世界には3つのレベルがある。

    スカラーはただの1つの数。a=3a = 3 とか b=−1.5b = -1.5 とか。

    ベクトルは数を1列に並べたものだ。

    x=(1−25)\boldsymbol{x} = \begin{pmatrix} 1 \cr -2 \cr 5 \end{pmatrix}

    プログラムで言えば1次元配列。AIでは「画像のピクセル値を全部並べたもの」がベクトルになる。

    行列は数を縦横に並べた2次元の表だ。

    A=(1amp;2amp;34amp;5amp;6)A = \begin{pmatrix} 1 & 2 & 3 \cr 4 & 5 & 6 \end{pmatrix}

    これが「変換のルール」の正体だ。


    行列の計算、意外とシンプル

    画像

    行列の計算で一番大事なのが「積」だ。

    AA の列数と BB の行数が同じなら、C=ABC = AB が計算できる。計算のルールは「AA の ii 行目と BB の jj 列目の内積が cijc_{ij} になる」というものだ。

    cij=∑lailbljc_{ij} = \sum_{l} a_{il} b_{lj}

    具体例を見てみよう。

    (1amp;23amp;4)(5amp;67amp;8)=(19amp;2243amp;50)\begin{pmatrix} 1 & 2 \cr 3 & 4 \end{pmatrix} \begin{pmatrix} 5 & 6 \cr 7 & 8 \end{pmatrix} = \begin{pmatrix} 19 & 22 \cr 43 & 50 \end{pmatrix}

    ひとつ注意点がある。行列の積は順番を変えると答えが変わる。AB≠BAAB \neq BA だ。数の掛け算とは全然違うので要注意。


    転置・逆行列・行列式もサクッとおさえよう

    画像

    転置は行と列をひっくり返すだけだ。

    A=(1amp;2amp;34amp;5amp;6)  ⟹  A⊤=(1amp;42amp;53amp;6)A = \begin{pmatrix} 1 & 2 & 3 \cr 4 & 5 & 6 \end{pmatrix} \implies A^\top = \begin{pmatrix} 1 & 4 \cr 2 & 5 \cr 3 & 6 \end{pmatrix}

    性質として (AB)⊤=B⊤A⊤(AB)^\top = B^\top A^\top が成り立つ。

    逆行列 A−1A^{-1} は「掛けると単位行列(数で言う1)になる行列」だ。

    AA−1=A−1A=IAA^{-1} = A^{-1}A = I

    2×2行列の逆行列はこう計算できる。

    (aamp;bcamp;d)−1=1ad−bc(damp;−b−camp;a)\begin{pmatrix} a & b \cr c & d \end{pmatrix}^{-1} = \frac{1}{ad-bc} \begin{pmatrix} d & -b \cr -c & a \end{pmatrix}

    行列式は「この変換が面積を何倍に拡大するか」を表す数だ。

    det⁡(aamp;bcamp;d)=ad−bc\det \begin{pmatrix} a & b \cr c & d \end{pmatrix} = ad - bc

    重要な等価関係——det⁡(A)≠0\det(A) \neq 0 ⟺ 逆行列が存在する ⟺ フルランク。これはSVDで特異値がゼロかどうかと直結する。


    ベクトルの「近さ」を測る道具たち

    画像

    AIで「この文章とあの文章は似ている」を計算するとき、内積とノルムが活躍する。

    内積は2つのベクトルの「似ている度合い」だ。

    a⋅b=∑iaibi=∣a∣∣b∣cos⁡θ\boldsymbol{a} \cdot \boldsymbol{b} = \sum_{i} a_i b_i = |\boldsymbol{a}||\boldsymbol{b}|\cos\theta

    内積がゼロなら「直交(垂直)」、つまり全然似ていないということだ。コサイン類似度はこの考え方を使って文章検索やRAGの根っこで使われている。

    ノルムはベクトルの「長さ」だ。

    ∣x∣2=∑ixi2|\boldsymbol{x}|2 = \sqrt{\sum{i} x_i^2}

    そして行列の大きさを表すフロベニウスノルム。

    ∣A∣F=∑i,jaij2|A|F = \sqrt{\sum{i,j} a_{ij}^2}

    これが後のSVDの誤差評価で活躍する。特異値との重要な関係がこれだ。

    ∣A∣F2=∑iσi2|A|F^2 = \sum{i} \sigma_i^2

    特異値の2乗和がフロベニウスノルムの2乗と等しい。これはあとで絶対使う。


    「ランク」が全部の鍵を握っている

    画像

    最後に一番大事な概念を紹介する。ランクだ。

    ランクは「行列が実質何方向の情報を持っているか」の数。

    たとえば 1000×10001000 \times 1000 の行列があっても、実質10方向の変換しかしていなければランクは10だ。残り990方向は冗長で、意味のある情報を持っていない。

    「見かけは大きいけど中身は薄い」——これがランクが低い行列のイメージだ。

    そして後で登場するLoRAの発見は「AIのファインチューニングに必要な変化のランクは、意外と低い」というものだった。1677万パラメータの変化に見えても、本質的な方向は数十次元だったんだ。

    ランクとSVDの橋渡しになる重要な事実——「ランク=ゼロでない特異値の個数」とだけ覚えておけば十分だ。


    まとめ

    • 行列は「変換のルール」であり、AIの学習は「正しい変換を探す作業」だ

    • 積・転置・逆行列・行列式は行列を扱う基本道具

    • 内積・ノルムはベクトルの類似度や大きさを測る

    • ランクは行列が持つ「実質的な情報の次元数」で、SVD・LoRAの核心概念に直結する

    次章ではこのランクという概念を使って、SVD(特異値分解)を理解していく。


    この記事が参加している募集

     
     
     
    元物理屋の組み込みソフト屋。 半導体製造装置を作りながら、 - 数学 - 物理 - AI - 投資 - 英語 - 歴史 をゆっくり学び直しています。 日本物理学会で論文執筆と発表経験有り Zennで数学の本を無料公開中! https://zenn.dev/schhrcat

    あなたへのおすすめ