数式を図の操作として読む
行列を図で読む線形代数
行列積、射影、SVD、固有分解、二次形式、共分散を、計算手順だけでなく図の構造として眺める。 数式を見た瞬間に、対応する図や動きが頭に浮かぶようにするための教材です。
01 · 行列の読み方
行列積の成分表示と列ベクトルの線形結合
まず行列積 は、左に 、上に を置き、交差する場所ごとに「行ベクトルと列ベクトルの内積」を入れる表として読めます。 その特殊な形として を見ると、出力を列ベクトルの足し合わせとして作る読み方と、各行が入力を測って数値を返す読み方の両方が現れます。 SVDの は「内積リスト」、 は「列の線形結合」として読むと、後の図がつながります。
行列積は、内積で埋める表
内側の は、左から来る横ベクトルと、上から来る縦ベクトルの「同じ長さ」です。 だから、その2本を同じものさしで重ねて内積を取れます。 たとえば なら行列ベクトル積、 なら内積として読めます。 いずれも、同じ「行と列の内積で表を埋める」図の特殊な場合です。
同じ を2枚の絵で見る
列で見ると「材料を混ぜて出力を作る」。行で見ると「入力にセンサーを当てて測定値を並べる」。 SVDはこの2つを と に分けて、きれいな順番にしたものとして読めます。
列 は の列です。 はその列を何倍して足すかを決める係数です。
行 は の行です。 を測った値が、出力ベクトルの各成分になります。
次の射影では、内積で一つの方向の成分を測り、その方向へベクトルとして戻す操作を見ます。
02 · 射影
なぜ が直交射影になるのか
0でないベクトル が張る直線へ、ベクトル を垂直に落とします。行列の形は「方向を測る内積」と「その方向へ戻す操作」に分けて読めます。
は逆行列ではなく補射影です。 方向の影を差し引いた残差だけを残します。
- 測る
- は 方向の成分
- 戻す
- はその成分を 方向へ置いたベクトル
- 確かめる
- かつ
Projection Lab
影と残差
式を左から順に読む
まず を長さ1の方向ベクトル に直す。
が 方向に何単位ぶん進んでいるかを測る。
測った長さぶんだけ を伸ばし、 軸上の点へ戻す。
元のベクトルと射影との差は に垂直になる。したがって、軸へ最短距離で落ちている。
一度軸上へ移ったベクトルは、もう一度射影しても動かない。この性質を行列では と書く。
空間として見ると何が起きるか
射影行列は、空間の点をそれぞれ 軸へ垂直に落とします。軸に垂直な同じ平面にいる点たちは、すべて同じ軸上の点へ潰れます。 この「内積で測り、その方向へ戻す」という形が、SVDの という読み方につながります。
SVDでは、この成分の測定と配置を、複数の直交方向に分けて行います。
03 · SVD
SVDによる線形変換の分解
は、入力ベクトルを右特異ベクトルの座標で読み直し、各座標を特異値だけ伸ばし、 その結果を左特異ベクトルの向きとして出力空間へ組み立てる操作です。 長方形行列でも、入力空間と出力空間を別々の座標系として扱えば同じ絵で読めます。
2次元における線形変換の図示
2次元では、 が円を楕円に変え、 がその楕円を形を変えずに出力空間の向きへ置き直します。
SVDの三段階の個別図示
と各右特異ベクトル の内積を測り、成分のリストにする。
各座標 を 倍する。小さい の方向ほど情報は弱く残る。
伸縮後の座標を、左特異ベクトル の足し合わせとして出力空間に配置する。
と見ると、 は物体を無理に動かすというより、 を「右特異ベクトル 方向に何単位あるか」という座標ベクトルへ翻訳します。
が を に変えたあと、 はその座標ベクトルを左特異ベクトル の線形結合として出力空間に描き直します。
3次元における点の線形変換
入力を置く、各 方向の成分として測る、特異値をかける、出力空間の 方向へ置き直す、最後に足し合わせる、という順番を一段ずつ進めます。
3次元空間全体の線形変換
1本のベクトルだけでなく、周囲の点や座標軸も同じ で動きます。 球面の網目が、特異値の大きい方向ほど強く伸び、小さい方向ほど潰れていく様子に注目します。 最後に、その楕円体が出力空間の左特異ベクトル の向きへ置き直されます。
異なる次元の空間への線形写像
入力空間と出力空間の次元が違うとき、 は同じ場所で物体を回すというより、伸縮後の座標を出力空間の 軸へ置き直します。 余った出力方向は、この入力からは直接使われません。
入力は 、出力は 。同じ空間に戻る変換ではないので、 は入力側の座標系、 は出力側の座標系として別々に持つ。
入力座標は 個しかない。 はそれらを特異値で伸ばしてから、 の中へ置く。余った出力方向は、この行列からは直接は出てこない。
入力方向の方が多いので、 は全部の入力座標を出力に運べない。行数に入らない方向や の方向は潰れ、出力からは区別できなくなる。
ランクを とすると、本当に生き残るのは の方向だけ。 つまり と読める。
SVDで入力軸と出力軸を分けて見たあと、対称行列ではその2つの軸が同じ直線に重なる場合を見ます。
04 · 固有値
対称行列における直交固有基底
SVDでは入力側の軸 と出力側の軸 を別々に持ちます。対称行列のスペクトル分解では、この2つが同じ直線上に揃い、 と読めます。正の固有値は同じ向きへの伸縮、負の固有値は同じ直線上での向き反転です。 正半定値の場合に限れば、固有値を非負の特異値として見られるので、 はそのまま のSVDになります。 一般の対称行列では、特異値は で、負号は出力軸の向きに吸収して読みます。
まず と内積を取り、固有ベクトル方向の成分リストにする。
が正なら同じ向き、負なら同じ直線上で反対向きに返す。
負の はSVDの非負な ではなく、出力軸の向きの反転として吸収して見る。
固有ベクトル方向の不変性と固有値による伸縮
円は固有ベクトル の軸に沿って楕円へ変わります。楕円の長さは が決めます。負の は、点や矢印が同じ軸の反対側へ移ることで見えます。
次の二次形式では、行列で動かしたベクトルを元の方向から測り、一つのスカラーへ戻します。
05 · 二次形式
二次形式が空間に割り当てる値
二次形式 はベクトルを出力するのではなく、各点 に一つの値を割り当てます。等高線として見れば楕円や双曲線になり、高さとして見ればボウルや鞍型の曲面になります。
固有方向ごとの二乗を足す
固有ベクトル方向の成分は符号ではなく二乗で効き、固有値がその方向の重みになります。正の固有値だけなら上向きのボウル、0なら平らな方向、正負が混ざれば鞍型です。
反対称部分は二次形式の値を変えません。曲面の形は が決めます。
半正定値とは、すべての に対して となることです。
共分散行列へ単位方向 を入れると、その方向へ射影した点群の分散になります。
共分散行列では、点群から半正定値な二次形式を作り、任意の方向の広がりを読み取ります。
06 · 共分散
点群の広がりを行列にまとめる
共分散行列は、中心化した各点が作る外積を平均したものです。その同じ行列が、方向別の分散、PCAの主軸、Mahalanobis距離、白色化をまとめて記述します。
同じ点群を4つの見方で読む
一つの点が作るランク1行列と、それらを平均して得られる楕円を対応させます。
固有ベクトルが点群の主な広がりの方向、固有値がその方向へ射影したときの分散です。
が点群を動かすと、その広がりは左から 、右から を受けます。
白色化すると共分散楕円が円になり、Mahalanobis距離は白色化後の通常の距離になります。
この先では、共分散が作る距離を通常の回帰、Fréchet平均、ネットワーク値応答へつなげられます。
教材へのリクエスト
見たいもの・分からないことを送る
数式、言葉、箇条書きのままで構いません。スクリーンショットや手書きの画像も添えられます。 制作をお約束するものではありませんが、今後の教材を考えるために読みます。
送信前の確認
この内容でリクエストします
現在のローカル版では、ここから先の送信・保存は行いません。