3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【深層学習の数学】線形変換と凸結合:AIは空間をどう歪ませ、文脈をどう読むのか?(直感でわかる線形代数 #1)

3
Posted at

はじめに

ディープラーニングを学んでいると、「重み行列 $W$ を掛ける」「アテンションの重みを計算する」といった処理が無限に登場します。
数式として計算を追うことはできても、「AIの内部でデータに何が起きているのか」を直感的にイメージするのは難しいですよね。

この記事では、行列の掛け算を「空間全体をゴムシートのように歪ませる操作(線形変換)」として捉え直します。
さらに、現代のAI(大規模言語モデルなど)の心臓部であるアテンション機構が、実は「凸結合(パーセンテージでのブレンド)」というシンプルな図形で説明できることを解き明かします。


1. 行列の正体は「案内標識の引っ越し業者」

ベクトルと行列の掛け算は、「空間の基準となる軸(案内標識)を別の場所に立て直す」という操作です。
以下の図を見てください。顔文字のような図形が、行列によってどう変化するでしょうか。

線形変換のイメージ

元の世界(左図)

私たちがよく知る方眼紙の世界です。基準となるのは「右に進む $w_1$」と「上に進む $w_2$」です。
ここにある図形(目や口)は、絶対的な座標ではなく「$w_1$ の方向に〇歩、$w_2$ の方向に〇歩」という相対的なルールで存在しています。

変換後の世界(右図)

ここで行列 $W$ を掛けるということは、引っ越し業者に「$w_1$ と $w_2$ の標識を斜めの新しい位置に移してね」と指示を出すことです。
標識が斜めに移動したことで、背後にある方眼紙のグリッド全体が斜めに引っ張られて歪みます。空間が歪んでも、図形たちは「$w_1$ と $w_2$ からの相対的な距離」というルールを頑なに守るため、結果として顔全体がグニャッと歪む(線形変換される)のです。

ニューラルネットワークの「全結合層」は、データが上手く分類できないとき、この「空間の歪ませ方(行列 $W$)」を何度も学習・調整し、境界線を引きやすい都合の良い空間を作り出しています。


2. なぜ実装では「縦(Wx)」ではなく「横(xW)」を使うのか?

数学の教科書では、ベクトルは基本的に「縦向き(列ベクトル)」であり、行列は左から掛けます($Wx$)。
しかし、実際のAI開発(PyTorchなど)では、ベクトルが「横向き(行ベクトル)」になり、行列を右から掛ける($xW$)形が標準です。

まずは、この2つが「数学的には全く同じ結果(転置の関係)」になることを、具体的な数式で確認してみましょう。
元の縦ベクトルを $\boldsymbol{x} = \begin{bmatrix} x_1 \ x_2 \end{bmatrix}$、重み行列を $W = \begin{bmatrix} a & b \ c & d \end{bmatrix}$ とします。

① 縦ベクトル(数学の基本)での計算:$W\boldsymbol{x}$
$$ W\boldsymbol{x} = \begin{bmatrix} a & b & c & d \end{bmatrix} \begin{bmatrix} x_1 & x_2 \end{bmatrix} = \begin{bmatrix} ax_1 + bx_2 & cx_1 + dx_2 \end{bmatrix} $$

② 横ベクトル(AIの実装)での計算:$\boldsymbol{x}^\top W^\top$
ベクトルを横向きに寝かせたもの(転置:$\boldsymbol{x}^\top$)に、行列も転置したもの($W^\top$)を右から掛けます。
$$ \boldsymbol{x}^\top W^\top = \begin{bmatrix} x_1 & x_2 \end{bmatrix} \begin{bmatrix} a & c & b & d \end{bmatrix} = \begin{bmatrix} x_1 a + x_2 b & x_1 c + x_2 d \end{bmatrix} $$

結果を見比べると、縦に並んでいるか横に並んでいるかの違いだけで、計算されている中身($ax_1 + bx_2$ など)は完全に一致していますよね。これを数式では $(W\boldsymbol{x})^\top = \boldsymbol{x}^\top W^\top$ と表します。

結果が同じなら、なぜAIの実装の世界ではわざわざ「横向き」が覇権を握ったのでしょうか?最大の理由は「コンピュータの物理メモリとキャッシュの都合」です。


3. アフィン結合と凸結合:アテンション(LLM)の心臓部

行列による「線形結合」は、空間をどこへでも自由に移動できる操作でした。
ここにいくつかの「縛りルール」を追加すると、AIの文脈理解に欠かせない強力なツールに進化します。

アフィン結合と凸結合

  1. アフィン結合(足して1縛り): $x_1 + x_2 = 1$
    図の点線のように、移動できる範囲が「2つのベクトルの先端を結んだ無限の直線」に限定されます。
  2. 凸結合(足して1 + マイナス禁止縛り): $x_1, x_2 \geq 0$
    図の青い太線のように、範囲が「2つのベクトルの間の線分」に完全に閉じ込められます。

凸結合の正体は「ブレンド(配合)」

凸結合(図の $0.7w_1 + 0.3w_2$)を直感的に言うと、「成分 $w_1$ を70%、成分 $w_2$ を30%でブレンドする」ということです。

実はこれこそが、大規模言語モデル(LLM)のアテンション機構そのものです!
アテンションでは、ある単語(例:Bank)の意味を文脈に合わせて確定させるため、周囲の単語のベクトルをパーセンテージで混ぜ合わせます。

もしここで何の縛りもない線形結合を使ってしまうと、元の単語の意味から遠く離れた宇宙の彼方へ飛んでいってしまい、意味(アイデンティティ)が崩壊してしまいます。
しかし「凸結合」という縛りがあるおかげで、ブレンド後のベクトル(中間表現)は必ず元の単語たちの内側に安全に収まり、「元の意味を保ちつつ、文脈のニュアンスを帯びた新しい意味」を作り出すことができるのです。

まとめ

  • 線形変換: 空間全体を歪ませて、データを処理しやすい形に変える(全結合層)。
  • 横ベクトル($xW$): コンピュータのメモリ構造に最適化し、計算を爆速にするエンジニアリングの知恵。
  • 凸結合: 複数のデータをパーセンテージでブレンドし、意味の崩壊を防ぎながら文脈を理解する(アテンション機構)。

数学の幾何学的なイメージと、システム実装の泥臭い最適化。この2つが繋がると、AIの複雑な論文やコードも、ずっと身近で面白いものに見えてくるはずです!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?