MNISTのデータ (手書き数字の画像データ) の各画像間の変化に対して,PCAを適用した場合,下記のような式展開となります.
(画像1枚に対して,PCAを適用する場合は,また別の式展開となります.)
概要
- 変数間に相関のある観測値を,相関の無い主成分に変換する直交変換手法
- 特徴
- データの特徴抽出
- ばらつき (分散) が大きい部分,つまり,共通点の無い (変動する) 部分を抽出.
- データの (次元) 圧縮
- ばらつき (分散) が小さい部分,つまり,共通する部分を削除.
- 画像データの圧縮や,文字の識別など
- 多次元特徴量の可視化
- 人間が認識できないデータの関係性の調査
アルゴリズム
- 全データの重心を求める (平均)
- 重心を通り,分散が最大となる方向を見つける (固有値計算)
- 2の方向に,新しい軸を引く
- 3と直交する方向で,分散が最大となる方向を探す (固有値計算)
- 4の方向に,新しい軸を引く
- 次元数分だけ繰り返す
数学的背景の概略
- NN 枚 D pixel(次元)の画像データについて,n 枚目の第 d 主成分 zn,d を求める.
- ラグランジュの未定計数法より,zn,d の分散を最大にする問題は,以下の固有値問題に帰着する.
- 結局,PCA後の画像データ Z は以下のようにして求められる.
zn,d=ld,1xn,1+ld,2xn,2+⋯+ld,Dxn,D
Vl=λdl
(V: X の分散共分散行列, X: D 行 N 列の画像データ)
(V: X の分散共分散行列, X: D 行 N 列の画像データ)
Z=LTX
(L: X の固有ベクトル行列)
数学的背景: 証明
- 1枚のサンプルが D 次元持つときの総合特性 z (の分散 (=情報量) を最大化するように,変換係数 ln を求めたい.)
z=l1x1+l2x2+⋯+lDxD
ただし,l=(l1x1 l2x2⋯lDxD)T: 未知の重み係数‖l‖2=lTl=l21+l21+⋯+l2D=1: 制約条件
z の分散を最大化するように,l を定めたい
- n 枚目のサインプルにおける第 d 主成分 (d 番目に主要な (寄与率の大きな) 特性) (を定義しておく.) z1(ld)=l1,dx1,1+l2,dx2,1+⋯+lD,dxD,1⋮zN(ld)=l1,dx1,N+l2,dx2,N+⋯+lD,dxD,N xn≡(x1 x2⋯xD)T: サンプル1枚
X≡(x1 x2⋯xN): サンプルN枚
- z(ld)=XTld の分散 Vz(ld) (Vz(ld) はスカラ)
(n 枚サンプル間の第 d 主成分得点 z(ld)=XTld の分散 Vz(ld) を最大化するために,まずは z(ld) を分散の定義に代入して,Vz(ld) を求める.)
Vz(ld)=1N(XTld−¯XTld)T(XTld−¯XTld)=1N(lTdX−lTd¯X)(XT−¯XT)ld=lTd1N(X−¯X)(X−¯X)Tld=lTdVld
ただし, (AB)T=(BTAT),
V≡1N(X−¯X)(X−¯X)T: 元データの分散共分散行列.
このとき,Vは,下記のようになる.
V=(1N∑Nn=1(x1n−¯xn)2⋯1N∑Nn=1(x1n−¯xn)(xDn−¯xn)⋮⋱⋮1N∑Nn=1(xDn−¯xn)(x1n−¯xn)⋯1N∑Nn=1(xDn−¯xn)2)
- ラグランジュの未定係数法 (を用いて,Vz(ld) を最大化する.) L: ラグランジュ関数, λd: 第d主成分のラグランジュ関数
- L 関数の偏微分が0となる条件で L 関数は極値をとる. このとき,分散 VZ(ld) は最大となる. ∂L∂ld=∂∂ld{lTdVld−λd(lTdld−1)}=Vld+lTdV−λd(ld+ld)=2Vld−2λdld=2(Vld−λdld)=0 ただし,Vは実対象行列より, lTdV=Vld. ∂L∂λd=∂∂λd{lTdVld−λd(lTdld−1)}=−1(lTdld−1)=0 したがって,PCAは次の固有値問題に帰着する. {Vld=λdldlTdld=1
L(l,λd)=Vz(ld)−λ(‖ld‖2−1)=lTdVld−λ(lTdld−1)
- Z,L を次のように定義する. Z≡(z(l1) z(l2)⋯z(lD))L≡(l1 l2⋯lD)X≡(x1 x2⋯xN)xn≡(x1 x2⋯xD)T
- 結局,PCA後の画像データ Z は以下のようにして求められる.
Z=LTX
数学的背景: 性質
- 次の性質を利用して,PCAの性質を探る. {Vld=λdldlTdld=1
- d 番目に大きな固有値 λd ⇔ 分散 VZ(ld) VZ=lTdVld=lTd(Vld)=lTd(λdld)=λdlTdld=λd 結局,分散 VZ(ld) は,固有値 λ の大きな順に最大化される.
(Z(ld)=XTld を,第 d 主成分と呼ぶ. また,V は実対象行列のため,l は互いに直交し,主成分同士は無相関.)
定理 1.
実対象行列は常に対角化可能.
定理 2.
行列が対角化可能なとき,固有値の和は元の行列の対角和に等しい.
証明. | A: 実対象行列 (今回は X の分散共分散行列 V ) |
P: 固有ベクトル行列 | |
Λ: 固有値行列 |
-
補題.Tr(A)≡∑ni=1ai,i,
Tr(AB)=Tr(BA)
- このとき,第 d 主成分の寄与率 (情報量) は,次のように与えられる. 第d主成分の寄与率(情報量)=固有値の大きさ/固有値の総和=固有値の大きさ/分散共分散行列Vの対角和=λd/Tr(V)
- 元の行列 X を平均0,分散1に標準化した場合,V の対角成分は分散なので,全て1 (非対角成分は共分散) したがって,
- "固有値の総和 =D "を用いれば,すべての固有値を求めずとも,寄与率を計算できる.
第d主成分の寄与率(情報量)=λd/Tr(V)=λd/D. ただし,V は D×D 行列.
終わりに
下記のSlideShareにアップロードしたスライドを示す.(ただし,日本語が表示できなかったため,画像化済み.)参考資料
10分でわかる主成分分析(PCA)
datB_prin00.doc Ver.4 主成分分析 (PCA: Principal Component Analysis)
MNISTのPCA結果の画像を借用: 主成分分析PCAを用いて手書き数字を分析する。その1
下記書籍の page.59~71.(FORTRAN ではあるが,サンプルプログラムも収録されている)
datB_prin00.doc Ver.4 主成分分析 (PCA: Principal Component Analysis)
MNISTのPCA結果の画像を借用: 主成分分析PCAを用いて手書き数字を分析する。その1
下記書籍の page.59~71.(FORTRAN ではあるが,サンプルプログラムも収録されている)
UNIX/Windowsを使った実践気候データ解析 ―気候学・気象学・海洋学などの報告書・論文を書く人が知っておきたい3つのポイント 著者: 松山 洋, 谷本 陽一 出版社: 古今書院 発売日: 2005/01 メディア: 単行本 ページ数: 107 ページ
![]()
使用ソフト
使用させていただいたBeamerのテンプレート
0 件のコメント:
コメントを投稿