特異値分解(SVD)について読みました。ほとんどすべての教科書では、指定された仕様で行列を3つの行列に分解することが言及されています。
しかし、そのような形式でマトリックスを分割する背後にある直観は何ですか?次元削減のためのPCAおよびその他のアルゴリズムは、アルゴリズムに優れた視覚化特性があるという意味で直感的ですが、SVDではそうではありません。
特異値分解(SVD)について読みました。ほとんどすべての教科書では、指定された仕様で行列を3つの行列に分解することが言及されています。
しかし、そのような形式でマトリックスを分割する背後にある直観は何ですか?次元削減のためのPCAおよびその他のアルゴリズムは、アルゴリズムに優れた視覚化特性があるという意味で直感的ですが、SVDではそうではありません。
回答:
行列(実数、)のSVDをとして ここで、は、は対角、はです。行列との列に関して、を書くことができます 。これは、ランク1行列の合計として記述された示しています。ランク1マトリックスはどのように見えますか?どれどれ: n × p X = U D V T U n × p D p × p V T p × p U V X = ∑ p i = 1 d i u i v T i X p (1 2 3)(4 5 6) = (4 5 6 8 10 12 12 15
ここで、白黒画像のグレースケール値を含んでいると考えてください。マトリックスの各エントリは1ピクセルを表します。たとえば、次のヒヒの写真:
次に、この画像をRに読み込み、おそらくライブラリを使用して、結果の構造の行列部分を取得しますpixmap
。
結果の再現方法に関する段階的なガイドが必要な場合は、ここでコードを見つけることができます。
SVDを計算します。
baboon.svd <- svd(bab) # May take some time
これについてどう考えますか?単純な画像の合計として表されるヒヒの画像を取得します。各画像は、垂直および水平構造のみを示します。つまり、垂直および水平ストライプの画像です。したがって、ヒヒのSVDは、ヒヒの画像を単純な画像の重ね合わせとして表し、各画像は水平/垂直ストライプのみを表示します。成分と成分の画像の低ランク再構成を計算してみましょう。512 512 1 20
baboon.1 <- sweep(baboon.svd$u[,1,drop=FALSE],2,baboon.svd$d[1],"*") %*%
t(baboon.svd$v[,1,drop=FALSE])
baboon.20 <- sweep(baboon.svd$u[,1:20,drop=FALSE],2,baboon.svd$d[1:20],"*") %*%
t(baboon.svd$v[,1:20,drop=FALSE])
次の2つの画像が生成されます。
左側では、ランク1イメージの垂直/水平ストライプを簡単に見ることができます。
最後に、最小の特異値を持つランク1イメージから再構築されたイメージ(上記のようにコードは示されていません)を見てみましょう。ここにあります:
これは非常に興味深いです。元の画像の中で、垂直線/水平線、主に斜めの鼻毛とテクスチャ、そして目を重ね合わせて表現するのが難しい部分があります。
してみましょう実数で行列。簡単にするために、と仮定します。これは、どの方向に尋ねるのが自然だん最もインパクト(またはほとんどの爆発性、あるいはほとんど増幅力)を持っています。答えは
自然なフォローアップの質問は、後、次に爆発的な方向?答えは
してみましょう(そう定量化の爆発力方向で)。単位ベクトルがなるように定義されている
と仮定し
式(2)は、簡潔のように行列表記を用いて表現することができる
である行列番目の列である、ある行列番目の列はで、
ここで欠落部分、重要な事実である:それはことが判明に直交する:
することをI請求これが真でなかった場合には、問題(1)には最適ではありません。実際、(4)が満たされない場合、の方向に少し乱すことでを改善することが可能。
(矛盾のために)(4)が満たされないと仮定します。場合直交方向にわずかに摂動さ、のノルム変化しない(または少なくとも、のノルムの変化無視できます)。地球の表面を歩いても、地球の中心からの距離は変わりません。しかし、方向に摂動さ、ベクトルで乱される非直交方向とのノルムの変化ようある無視できません。の標準無視できない量だけ増やすことができます。これは、が問題(1)に最適ではないことを意味します。これは矛盾です。1)直感が非常に明確であるため。2)直観を厳密な証明に直接変換できます。
同様の引数は、がと両方に直交することを示しています。ベクトルはペアワイズ直交です。これは、単位ベクトルがペアごとに直交するように選択できることを意味します。つまり、上記の行列は直交行列です。これでSVDの発見が完了しました。
上記の直観的な議論を厳密な証明に変換するには、がの方向に摂動した場合、摂動ベクトル
は実際には単位ベクトルではないという事実に立ち向かう必要があります。(その標準はです。)厳密な証明を取得するには、
ベクトルは、まさに単位ベクトルです。しかし、あなたは簡単に(4)が満たされない場合には、十分に小さい値のため、表示することができますよう我々が持っている
(符号が
(ちなみに、私はここで SVDのQiaochu Yuanの説明を読むことをお勧めします。特に、上記で説明した「Key lemma#1」を見てください。Qiaochuが言うように、key lemma#1特異値分解の」。)
男は1日1時間をかけて次の講義をご覧ください:https : //www.youtube.com/watch?v=EokL7E6o1AE
この男は非常に率直で、最終的にすべて一緒になるため、いずれもスキップしないことが重要です。最初は少し遅いように見えるかもしれませんが、彼は重要なポイントを突き止めようとしています。
皆が行う3つのマトリックスを単に与えるのではなく、あなたのためにそれを要約します(他の説明を読んだときに混乱していたので)。それらの行列はどこから来て、なぜそのように設定するのですか?講義はそれを釘付けにします!すべての行列(evereverの歴史の中で)は、同じ次元の基本行列から構築し、それを回転させ、引き伸ばすことができます(これが線形代数の基本定理です)。これら3つのマトリックスはそれぞれ、初期マトリックス(U)、スケーリングマトリックス(シグマ)、および回転マトリックス(V)を表しています。
スケーリング行列は、どの回転ベクトルが支配的であるかを示します。これらは特異値と呼ばれます。分解は、U、シグマ、およびVを解いています。