SVD分解エクスプローラー

行列を方向、伸縮の強さ、そして低ランク再構成に分解します。

インタラクティブシミュレーションを読み込んでいます...

SVD を打ち切るのは証明つきで最良の方法 🖖

大きいほうから k 個の特異値だけを残して他を捨てると、そこそこ良い階数 k の近似が得られる、という話ではありません。それが最適解なのです。エッカート–ヤング–ミルスキーの定理によれば、階数 k の他のどんな行列も、フロベニウスノルムでもスペクトルノルムでも、元の行列にこれより近づくことはできません。誤差は見積もりではなく厳密に定まります。スペクトルノルムでは、捨てた最初の特異値そのもの σk+1 に等しく、フロベニウスノルムでは捨てたすべての値の 2 乗和の平方根になります。画像圧縮、主成分分析、潜在意味インデックスがどれも同じ一つの指示に帰着する理由は、この定理ひとつです。SVD を計算し、そこで打ち切る。それだけです。

どんな行列も層の積み重ね 🖖

特異値分解は、どんな行列も単純なランク1の層の重み付き和として書き直します。各層は左側と右側の1つずつのパターンから作られ、特異値の大きい順に並びます。各特異値を2乗すると、その層が行列全体のエネルギーのどれだけを担うかがわかります。上位の数層だけ残せば、ごくわずかな数値からデータの大部分を復元できます。だからこそ、保持エネルギーのバーは最初に急激に立ち上がるのです。

役立つ前に五回発見された 🖖

特異値分解はコンピュータ時代の発明ではありません。ベルトラミ(1873年)、ジョルダン(1874年)、シルベスター(1889年)、シュミット(1907年)、ワイル(1912年)がそれぞれ独立に導き出した、応用の当てのない純粋な行列理論でした。数値的に安定した計算法は1965年にゴルブとカハンが発表して初めて実現し、それがここに見えるすべて——画像圧縮、ノイズ除去、検索エンジン、レコメンダーシステム——への扉を開いたのです。

全プロセスの詳細解説

  1. エネルギーを88.1%保持した際の3つの特異値と34.5%の誤差 6 ステップ

    このページの行列の3つの特異値を手計算で求めよ(固有多項式は因数分解できる)。そのうえで、エネルギーの88.1%を保持してもなお34.5%の誤差が残る理由を説明せよ。

    1. 特異値は AᵀA の固有値の平方根であるため、まずその積を計算する。AᵀA は対称行列であり、固有値が実数かつ非負であることが保証される。

    2. AᵀA − λI の行列式が因数分解できる点が好都合である。第1列から括弧がきれいに括り出され、2次式が残る。

    3. 1つの固有値は正確に 10 であり、残りの2つは2次方程式の根となる。根号表示が厳密解であり、小数表示がそれに続く。

    4. 平方根をとる。検算は容易である。3つの特異値の2乗の和は AᵀA のトレース(対角成分の和)に等しくなければならず、対角成分の和は 26 である。

    5. 2つの方向を保持することは、その 26 のうちの対応する割合を保持することを意味する。フロベニウス誤差は切り捨てられた割合の平方根であり、その平方根こそが求める答えである。

    6. 同じ3つの数値からさらに2つの等式が得られる。それらの積は行列式の絶対値であり、それらの比は条件数である。2.04 という値から、この行列の挙動はきわめて良好であり、34.5% は特異近傍によるものではなく、本質的な第3の方向が存在することを示している。

    解答

    誤差が平方根だからである(√0.119 = 0.345)。エネルギーは特異値の2乗で測定され、誤差は2乗されていない特異値で測定されるため、エネルギーの8分の1を切り捨てるとノルムの3分の1を失うことになる。パネル上の2つの数値は、同じ事実を2つの異なる尺度で表したに過ぎない。「分散の95%を保持した」というあらゆる主張には罠があり、95%のエネルギー保持であっても22%の再構成誤差となり、99%であってもなお10%の誤差が残る。エッカートとヤングは1936年に、ランク2の行列で34.5%を超える精度を出せるものは存在しないことを証明した。したがって、これは打ち切りの問題ではなく、行列自体によって定まる下限である。

学習の道すじ

ものを動かす行列

この次に 主成分

参考文献 (2)

例題