パターン認識特論 - VRL - Vision and Robotics

パターン認識特論
担当:和田 俊和
部屋 A513
Email [email protected]
主成分分析
http://vrl.sys.wakayama-u.ac.jp/PRA/
主成分分析1
(正規直交基底をデータから求める)
• 特徴ベクトルの各要素の分散を最大化する。
ci  ( xi  μ・) φ
1 n
c   ( xi  μ)・ φ
n i 1
μ
φ
|| φ ||


 xμ φ
μx  c0
主成分分析2
• 特徴ベクトルの各要素の分散
n


2
1
V (φ)   ( xi  x・) φ
n i 1
n
1
T
T
T
 {( xi  x ) φ} {( xi  x) φ}
n i 1
n
この値を
1
T
T

φ
(
x

x
)(
x

x
)
φ
2

i
i
|| φ ||  1
n i 1
1
n
という条件
の下で最
大化する.
 φ φ
T
n
T
(
x

x
)
(
x

x
)
 i
i
i 1
共分散行列 
知識:ベクトルの操作に関する公式
内積
a  b  aT b  bT a  b  a
( a   b)  x   a  x   b  x
転置
微分
(ab)  b a
T
T
 T
a ba
b
T
(a )  a
T T
 T
a Aa  2 Aa
a

 T
2
|| a || 
a a  2a
a
a
主成分分析3
ラグランジェの未定係数法
F (φ,  )  φ φ   (|| φ || 1)
T
2
この式を最大化するのが解.
⇒ φ と  で微分し,それらを0と置く


2
F (φ,  )  || φ || 1  0
F (φ,  )  2  φ  φ   0

φ
正規化する だけ
で満足でき る
φ   φ
固有値問題になる
φ   φ 固有値問題の例
• 線形変換  φ
• φ を起点として終点を
 φ とするベクトルを描
く.
• 右図に固有ベクトル
の方向を書き加える
と,
知識:固有値問題の解き方
固有方程式
φ   φ
特性方程式
|   I | 0
各固有値が求められれば,それに対応する固
有ベクトルが求められる.
実例
• x1= (2,4,3)T,
x2= (2,2,4)T, x3= (1,1,2)T, x4= (3,1,3)T
1 N
x  (2, 2,3),    ( xi  x)( xi  x)T
N i 1

0

0
1
   2 
4
 0 


 0 0
1
  0 4
4
 0 0
2 0
0
 0 
1 
0
0 1
 1
  1
 1
 1
1 1
1
  1
 0 
0  0 0 0  1 1 1  1 1 0  

0   0 0 0   1 1 1   1 1 0  
0  0 0 1  1 1 1  0 0 0  

2 0 1
1
  0 6 1  ←これが,共分散行列
4
1 1 2 
1
1 0






計算結果
2
1
  0
4
1
x  (2,2,3)
0
6
1
1
1 
2
  10  26  16  0
 '1  6.2491405381
2955
 '2  2.8536345109
6709
 '3  0.8972249509
0336
3
•
•
特性方程式
固有値
(本当の固有
値はこれを4
で割る)
•
固有ベクトル:次ページ
2
固有ベクトルの導出
2

0
1

0
6
1
1  x 
 x
 
 
1  y    '  y 
z
2  z 
 
 2x  z 
 x


 
 6 y  z   ' y 
 x  y  2z 
z


 
(2   ' ) x  (6   ' ) y  x : y  6   ': 2   '
(2 '8) x  (6   ' )(2   ' ) z
 x : z  (6   ' )(2   ' ) : 2 '8
x : y : z  (6   ' )(2   ' ) : (2   ' ) : 2 '8
2
固有ベクトル
 -0.664776 
 0.056802
 0.744880 






φ1   0.968772 φ2  0.202092 φ3   -0.143667 


 0.241360
 0.733098 
 0.635855 






1  6.2491405381
2955/ 4
2  2.8536345109
6709/ 4
3  0.8972249509
0336/ 4
  1φ1φ1  2φ2φ2  3φ3φ3 を計算すると
T
2
1
  0
4
1
0
6
1
T
T
1
1 が得られ、上記結果が
正しいことが確認でき
る。
2
直交展開
 2
 
 4   1.9375φ1  0.4042φ2  0.2873φ3  x
 3
 
 2
 
 2   0.2414φ1  0.6359φ2  0.7331φ3  x
 4
 
1
 
 1   1.2669φ1  1.1786φ2  0.0753φ3  x
 2
 
 3
 
 1   0.9120φ1  0.9470φ2  0.5211φ3  x
 3
 
Octaveを使えば,簡単に計算できる.
http://www.octave.org/
octave:1> sigma=[2,0,1;0,6,1;1,1,2]
sigma =
2 0 1
0 6 1
1 1 2
octave:2> [v,lambda]=eig(sigma)
v=
-0.664776 0.744880 0.056802
-0.143667 -0.202092 0.968772
0.733098 0.635855 0.241360
lambda =
0.89722 0.00000 0.00000
0.00000 2.85363 0.00000
0.00000 0.00000 6.24914
octave:3> v*lambda*v'
ans =
2.0000e+00 -4.1975e-16 1.0000e+00
-4.8881e-16 6.0000e+00 1.0000e+00
1.0000e+00 1.0000e+00 2.0000e+00
octave:4>
主成分分析
• 共分散行列Σの性質
  12  1 2

2



2 1
2


 


 n 1  n 2
μ
φ
各成分の標準偏差
i
|| φ ||
対称行列なので次式による
対角化が 可能
  VV
V  φ1 φ2  φN 
T
1
0



0
0
2

0
  1 n 

  2 n 

 
2 
 n 
0
 0 
 

 n 

主成分分析
• 共分散行列Σの分解
  VV
T
V  φ1 φ2  φN 
 φ1 
 φ  
2 
T
0



V 
   
0

 
 φN 
0
1
2

0
N
行列式
|  | det   i
N
トレース(行列の対角要素の和)
0
 0 
 

 n 

i 1
trace   i
i 1
直交行列
正規直交基底を並べてできる行列は直交行列
V  φ1 φ2  φN 
 φ1 
T
T
1
V
V

I

V

V
φ 
2 
T

V 
|| Vx |||| x ||
 
 
 φN  VとV は回転を表している:
T
VT
V
対角行列
対角行列は各軸ごとの伸縮を表している
1
0



0
0
2

0

0
 0 
 

 n 

共分散行列が表す幾何学的変換
  VV
V
T

T
V
主成分分析によって何が分かるか
• 分散の大きくなる軸の向き φi
• その軸方向の偏差 i 分散 i
• 共分散行列のランクがrである場合、次式が成
r
り立つ
x   (φ・i (x  x))φi  x
i 1
• r未満の数qに対する直交展開
q
x'   (φ・i (x  x))φi  x
i 1
を計算する際に誤差||x-x’||を最小化する基底が
求まっている。
V (φi )  φiT φi =φiTV V T φi
「固有値=軸上
の分散」の確認
0
 φ1  1 0
 0

 

 φ1T
 φiT  φi  
i
 

0
 
φN   0
0 N 
0
0 1 0

 0

 
 0
 1  
i
1

 
0
 
0  0
0 N 
φiT
0  i
φTN  φi
次回以降の講義
• 識別(統計的手法、判別分析、線形識別関数
とニューラルネットワーク、最近傍識別)
• クラスタリング(K-means、 EMアルゴリズム)
• より進んだ識別手法:SVM、BOOSTINGなど