SVDの背後にある直感とは何ですか?


50

特異値分解(SVD)について読みました。ほとんどすべての教科書では、指定された仕様で行列を3つの行列に分解することが言及されています。

しかし、そのような形式でマトリックスを分割する背後にある直観は何ですか?次元削減のためのPCAおよびその他のアルゴリズムは、アルゴリズムに優れた視覚化特性があるという意味で直感的ですが、SVDではそうではありません。


4
SVDは、正方行列ではなく、あらゆる種類の行列の拡張であるため、固有値-固有ベクトル分解の直感から始めたいと思うかもしれません。
JohnK

インターネットに関する多くのメモとSVDとその動作に関するCVに関する回答がここにあります。
ヴラディスラフドブガレス

2
SVDは、圧縮/学習アルゴリズムと考えることができます。これは、リニアコンプレッサーデコンプレッサーです。行列MはSVDの乗算で表すことができます。SはコンプレッサーVで、必要なエラーの量(損失のある圧縮)を決定し、Dはデコンプレッサーです。Vのすべての対角値を保持すると、ロスレスコンプレッサーになります。小さな特異値を捨てる(それらをゼロにする)場合、初期行列を正確に再構築することはできませんが、それでも近いままです。ここで、クローズという用語はフロベニウスのノルムで測定されます。
カグダスオズゲンク

2
@Cagdasを行う場合は、「S」、「V」、および「D」を使用する対象を数学的に慎重に定義してください。私はこれまでにイニシャルが表記自体にオーバーロードされたことを見たことはありません(例えば、特異値が入っていますか?)。混乱の原因と思われます。
Glen_b

3
SVDでPCAを推定する方法を知っていますか?もしそうなら、SVDの理解に何かが欠けていると感じる理由を説明できますか?これを
-Aksakal

回答:


63

行列(実数、)の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 34 5 6 = 4 5 6 8 10 12 12 15Xn×p

X=UDVT
Un×pDp×pVTp×pUVX=i=1pdiuiviTXp
(123)(456)=(45681012121518)
行は比例し、列は比例します。

ここで、白黒画像のグレースケール値を含んでいると考えてください。マトリックスの各エントリは1ピクセルを表します。たとえば、次のヒヒの写真:X

ヒヒの画像

次に、この画像をRに読み込み、おそらくライブラリを使用して、結果の構造の行列部分を取得しますpixmap


結果の再現方法に関する段階的なガイドが必要な場合は、ここでコードを見つけることができます。


SVDを計算します。

baboon.svd  <-  svd(bab) # May take some time

これについてどう考えますか?単純な画像の合計として表されるヒヒの画像を取得します。各画像は、垂直および水平構造のみを示します。つまり、垂直および水平ストライプの画像です。したがって、ヒヒのSVDは、ヒヒの画像を単純な画像の重ね合わせとして表し、各画像は水平/垂直ストライプのみを表示します。成分と成分の画像の低ランク再構成を計算してみましょう。512 512 1 20512×512512512120

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およびランク20の再構成

左側では、ランク1イメージの垂直/水平ストライプを簡単に見ることができます。

最後に、最小の特異値を持つランク1イメージから再構築されたイメージ(上記のようにコードは示されていません)を見てみましょう。ここにあります:20

ランク20のヒヒの再構成からの残差の画像

これは非常に興味深いです。元の画像の中で、垂直線/水平線、主に斜めの鼻毛とテクスチャ、そして目を重ね合わせて表現するのが難しい部分があります。


11
低域ではなく、低ランクの再構築を意味していると思います。気にしないで。これは非常に良い説明です(+1)。それがリニアコンプレッサー減圧装置である理由です。画像は線で近似されます。実際に線形活性化機能を備えたニューラルネットワークで同様のオートエンコーダーを実行すると、実際には、垂直線と水平線だけでなく任意の勾配の線も許可され、SVDよりもわずかに強力になることがわかります。
カグダスオズゲンク

@はKjetil-B-HalvorsenのないはずSVDのための行列中の結果ある、ある及びである?打ち間違え? N × P X U N × N Σ N × P VのP × PX=UΣVn×pXUn×nΣn×pVp×p
マーティンクレーマー

1
参照math.stackexchange.com/questions/92171/...を 他のいくつかの例について
HalvorsenのはKjetil B

@ kjetil-b-halvorsenアプリケーションの拒否にPCAを使用した場合、説明がどのように変わるかを知りたいです。stats.stackexchange.com/questions/412123/…で
Dushyant Kumar

@CowboyTrader興味深い観察。機械学習/ニューラルネットワークの私の理解はかなり限られています。ノイズの多い画像が1つしかなく、トレーニングするものが他にない場合、ニューラルネットワークはどのように機能するかを理解できません。
Dushyant Kumar

4

してみましょう実数で行列。簡単にするために、と仮定します。これは、どの方向に尋ねるのが自然だん最もインパクト(またはほとんどの爆発性、あるいはほとんど増幅力)を持っています。答えは 自然なフォローアップの質問は、後、次に爆発的な方向?答えは Am×nmnvA

(1)v1=argmaxvRnAv2subject to v2=1.
v1A
v2=argmaxvRnAv2subject to v1,v=0,v2=1.
このように続けて、正規直交基底を取得します。この特別な基礎は、ある意味でを理解ために最も重要な方向を教えてくれます。v1,,vnRnRnA

してみましょう(そう定量化の爆発力方向で)。単位ベクトルがなるように定義されている と仮定し 式(2)は、簡潔のように行列表記を用いて表現することができる である行列番目の列である、ある行列番目の列はで、σi=Avi2σiAviui

(2)Avi=σiuifor i=1,,n.
(3)AV=UΣ,
Vn×niviUm×niuiΣ番目の対角要素がである対角行列です。行列は直交しているため、(3)の両側にを乗算して、を取得でき のSVD をほぼゼロの労力で導出したように見えるかもしれません。これまでの手順はどれも難しくありませんでした。ただし、画像の重要な部分が欠落していますが直交していることはまだわかりません。n×niσiVVT
A=UΣVT.
AU

ここで欠落部分、重要な事実である:それはことが判明に直交する: することをI請求これが真でなかった場合には、問題(1)には最適ではありません。実際、(4)が満たされない場合、の方向に少し乱すことでを改善することが可能。Av1Av2

(4)Av1,Av2=0.
v1 v1v2

(矛盾のために)(4)が満たされないと仮定します。場合直交方向にわずかに摂動さ、のノルム変化しない(または少なくとも、のノルムの変化無視できます)。地球の表面を歩いても、地球の中心からの距離は変わりません。しかし、方向に摂動さ、ベクトルで乱される非直交方向とのノルムの変化ようある無視できません。の標準v1v2v1v1v1v2Av1Av2Av1Av1無視できない量だけ増やすことができます。これは、が問題(1)に最適ではないことを意味します。これは矛盾です。1)直感が非常に明確であるため。2)直観を厳密な証明に直接変換できます。v1

同様の引数は、がと両方に直交することを示しています。ベクトルはペアワイズ直交です。これは、単位ベクトルがペアごとに直交するように選択できることを意味します。つまり、上記の行列は直交行列です。これでSVDの発見が完了しました。Av3Av1Av2Av1,,Avnu1,,unU


上記の直観的な議論を厳密な証明に変換するには、がの方向に摂動した場合、摂動ベクトル は実際には単位ベクトルではないという事実に立ち向かう必要があります。(その標準はです。)厳密な証明を取得するには、 ベクトルは、まさに単位ベクトルです。しかし、あなたは簡単に(4)が満たされない場合には、十分に小さい値のため、表示することができますよう我々が持っている (符号がv1v2

v~1=v1+ϵv2
1+ϵ2
v¯1(ϵ)=1ϵ2v1+ϵv2.
v¯1(ϵ)ϵ
f(ϵ)=Av¯1(ϵ)22>Av122
ϵが正しく選択されます)。これを表示するには、チェックするだけです。これは、が問題(1)に最適ではないことを意味します。これは矛盾です。f(0)0v1

(ちなみに、私はここで SVDのQiaochu Yuanの説明を読むことをお勧めします。特に、上記で説明した「Key lemma#1」を見てください。Qiaochuが言うように、key lemma#1特異値分解の」。)


0

男は1日1時間をかけて次の講義をご覧くださいhttps : //www.youtube.com/watch?v=EokL7E6o1AE

この男は非常に率直で、最終的にすべて一緒になるため、いずれもスキップしないことが重要です。最初は少し遅いように見えるかもしれませんが、彼は重要なポイントを突き止めようとしています。

皆が行う3つのマトリックスを単に与えるのではなく、あなたのためにそれを要約します(他の説明を読んだときに混乱していたので)。それらの行列はどこから来て、なぜそのように設定するのですか?講義はそれを釘付けにします!すべての行列(evereverの歴史の中で)は、同じ次元の基本行列から構築し、それを回転させ、引き伸ばすことができます(これが線形代数の基本定理です)。これら3つのマトリックスはそれぞれ、初期マトリックス(U)、スケーリングマトリックス(シグマ)、および回転マトリックス(V)を表しています。

スケーリング行列は、どの回転ベクトルが支配的であるかを示します。これらは特異値と呼ばれます。分解は、U、シグマ、およびVを解いています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.