はじめての『はじめてのパターン認識』第9章 This is a general introduction of Principal Component Analysis; PCA for machine learning, which includes vector space and subspace, PCA and singular value decomposition; SVD.
, . . . , xr (r ≤ d) V a1 , a2 , . . . , ad W = {a1 x1 + a2 x2 + . . . + ar xr |ai ∈ R, i = 1,2,...,r} εΧϥʔഒͱϕΫτϧͷ͠ࢉ ͰදݱͰ͖ΔϕΫτϧ Ұ࣍ैଐ ઢܗैଐ ͳϕΫτϧΛఆࣜԽ͢Δͱʜ Vd=3 x2 x1 x3 ɹɹฏ໘্ͷ ϕΫτϧ x1 x2 ҙఆ v = d ∑ i=1 ai xi ai xi xi ai ࣍ݩͷϕΫτϧۭؒɹͰҰൠԽ͢Δͱʜ d V جఈ
nk = xk − k−1 ∑ j=1 (nT j xk) nj , nk = ˜ nk ∥ ˜ nk ∥ ͱॻ͚Δɽ͜Εʹ͍ͭͯҙͷجఈɹͱͷੵΛܭࢉ͢Δͱ ni ͳͷͰɹɹɹͷΈ͕Γ nT i nj = 0 (i ≠ j) i = j nT i nk = (nT i xk − (nT i xk) nT i ni) 1 ∥ ˜ nk ∥ = (nT i xk − nT i xk) 1 ∥ ˜ nk ∥ = 0 ͜Ε͕ɹɹɹɹɹɹͷશͯͷɹʹ͍ͭͯΓཱͭͷͰ άϥϜʔγϡϛοτͷਖ਼نަԽҙ࣍ݩͰ͑Δ 1 ≤ i ≤ k − 1 i
ai , Σaj = λj aj , (λi ≠ λj ) aT i (Σaj) = aT i Σaj = (ΣT ai) T aj = (Σai) T aj = (λi ai) T aj = λi aT i aj aT i (Σaj) = aT i (λj aj) = λj aT i aj λi aT i aj − λj aT i aj = 0 ⟺ aT i aj = 0 (λi ≠ λj ) ಉ͡ͷ (Σ − λE) aj = 0
ad λ1 ≥ λ2 ≥ . . . ≥ λd ٻΊͨݻ༗ͱͦΕʹରԠ͢Δݻ༗ϕΫτϧ ֶशσʔλɹʹݻ༗ϕΫτϧɹΛֻ͚ͨϕΫτϧɹͷࢄΛߟ͑Δʜ ¯ X a1 s1 Var{s1 } = Var{ ¯ Xa1 } = aT 1 Σa1 = a1 (Σa1) = aT 1 (λ1 a1) = λ1 aT 1 a1 = λ1 ಉ༷ͷܭࢉ͕ଞͷݻ༗ϕΫτϧʹ͍ͭͯΓཱͭͷͰɼ ֶशσʔλɹͱݻ༗ϕΫτϧɹΛֻ͚ͨϕΫτϧɹ͕࠷େͷ ࢄΛ࣋ͭͷ࠷େͷɹΛ࣋ͭɹΛͱͯ͠બΜͩͱ͖ɽ ͢ͳΘͪɼɹɹͷ࣌ɼ࠷େͷࢄɹΛ࣋ͭઢɹɹ͕Ҿ͚Δɽ ¯ X ai si λi ai i = 1 λ1 f1 (x) = aT 1 x = d ∑ i=1 a1i xi f1 (x)
, . . . , vn) XT Xvi = λi vi Λຬͨ͢ݻ༗ɹΛݻ༗ϕΫτϧɹʹରͯ͠ҰͭఆٛͰ͖Δɽ·ͨɼ λi vi vT i vj = δij = { 1 (i = j) 0 (i ≠ j) ΫϩωοΧʔͷσϧλ ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V
= λi vT i vi = λi XT Xvi = λi vi λi = vT i XT Xvi = (Xvi) T Xvi = (Xvi) T Xvi = ∥Xvi ∥2 ≥ 0 ⟺ { λi ≠ 0 (1 ≤ i ≤ p) λi = 0 (p + 1 ≤ i ≤ n) ɹ͕େ͖͍ॱʹฒͯΔͷͰ ɹ͕ޙΖʹฒͿΑ͏ʹ࡞ΕΔ λi 0 ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V X ҙͷߦྻɹʹରͯ͠ʜ XT Xͷਖ਼نԽͨ͠ݻ༗ϕΫτϧΛɹɹɹɹɹɹɹɹͱ͢Δͱݻ༗Λղ͘͜ͱͰɹ V = (v1 , v2 , . . . , vn)
(Xvi) T Xvj = 1 λi λj vT i XT Xvj = λj λi λj vT i vj = λj λi λj δij = δij = { 1 (i = j) 0 (i ≠ j) ͳͷͰɼɹɹɹɹɹɹޓ͍ʹަ͢Δਖ਼نަجఈʹͳΔʜ {u1 , u, . . . , um } ui = 1 λi Xvi ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V
} ͳͷͰߦྻɹ U U = [u1 , u2 , . . . , up , up+1 , . . . , um] V = [v1 , v2 , . . . , vn] ·ͨɼߦྻɹ V ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V
(Xv1 Xv2 ⋯ Xvn) = uT 1 Xv1 uT 1 Xv2 ⋯ uT 1 Xvn uT 2 Xv2 uT 2 Xv2 ⋯ uT 2 Xvn ⋮ ⋮ ⋱ ⋮ uT m Xvm uT m Xv2 ⋯ uT m Xvn ҙͷߦྻɹʹରͯ͠ߦྻɹɼɹΛ࡞༻ͤ͞Δͱʜ U V X ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V
Xvj = 1 λi vT i XT Xvj = λj λi vT i vj = λi δij = λi (i = j, 1 ≤ i ≤ p) 0 (i ≠ j) 0 (p + 1 ≤ i ≤ n) ٻΊͨߦྻͷҰΛߟ͑Δͱʜ ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V
⋯ uT 1 Xvn uT 2 Xv2 uT 2 Xv2 ⋯ uT 2 Xvn ⋮ ⋮ ⋱ ⋮ uT m Xvm uT m Xv2 ⋯ uT m Xvn = uT 1 Xv1 uT 1 Xv2 ⋯ uT 1 Xvp uT 1 Xvp+1 ⋯ uT 1 Xvn uT 2 Xv1 uT 2 Xv2 ⋯ uT 2 Xvp uT 2 Xvp+1 ⋯ uT 2 Xvn ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ uT p Xv1 uT p Xv2 ⋯ uT p Xvp uT p Xvp+1 ⋯ uT p Xvn uT p+1 Xv1 uT p+1 Xv2 ⋯ uT p+1 Xvp uT p+1 Xvp+1 ⋯ uT p+1 Xvn ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ uT m Xvm uT m Xv2 ⋯ uT m Xvp uT m Xvp+1 ⋯ uT m Xvn uT i Xvj = ( 1 λi Xvi) T Xvj = 1 λi vT i XT Xvj = λj λi vT i vj = λi δij = λi (i = j, 1 ≤ i ≤ p) 0 (i ≠ j) 0 (p + 1 ≤ i ≤ n) ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V
⋯ uT 1 Xvn uT 2 Xv2 uT 2 Xv2 ⋯ uT 2 Xvn ⋮ ⋮ ⋱ ⋮ uT m Xvm uT m Xv2 ⋯ uT m Xvn = λ1 uT 1 Xv2 ⋯ uT 1 Xvp uT 1 Xvp+1 ⋯ uT 1 Xvn uT 2 Xv1 λ2 ⋯ uT 2 Xvp uT 2 Xvp+1 ⋯ uT 2 Xvn ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ uT p Xv1 uT p Xv2 ⋯ λp uT p Xvp+1 ⋯ uT p Xvn uT p+1 Xv1 uT p+1 Xv2 ⋯ uT p+1 Xvp uT p+1 Xvp+1 ⋯ uT p+1 Xvn ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ uT m Xvm uT m Xv2 ⋯ uT m Xvp uT m Xvp+1 ⋯ uT m Xvn ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V uT i Xvj = ( 1 λi Xvi) T Xvj = 1 λi vT i XT Xvj = λj λi vT i vj = λi δij = λi (i = j, 1 ≤ i ≤ p) 0 (i ≠ j) 0 (p + 1 ≤ i ≤ n) (i = j, 1 ≤ i ≤ p) λi
⋯ uT 1 Xvn uT 2 Xv2 uT 2 Xv2 ⋯ uT 2 Xvn ⋮ ⋮ ⋱ ⋮ uT m Xvm uT m Xv2 ⋯ uT m Xvn = λ1 0 ⋯ 0 0 ⋯ 0 0 λ2 ⋯ 0 0 ⋯ 0 ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ 0 0 ⋯ λp 0 ⋯ 0 0 0 ⋯ 0 uT p+1 Xvp+1 ⋯ 0 ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ 0 0 ⋯ 0 0 ⋯ 0 ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V uT i Xvj = ( 1 λi Xvi) T Xvj = 1 λi vT i XT Xvj = λj λi vT i vj = λi δij = λi (i = j, 1 ≤ i ≤ p) 0 (i ≠ j) 0 (p + 1 ≤ i ≤ n) 0 (i ≠ j)
⋯ uT 1 Xvn uT 2 Xv2 uT 2 Xv2 ⋯ uT 2 Xvn ⋮ ⋮ ⋱ ⋮ uT m Xvm uT m Xv2 ⋯ uT m Xvn = λ1 0 ⋯ 0 0 ⋯ 0 0 λ2 ⋯ 0 0 ⋯ 0 ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ 0 0 ⋯ λp 0 ⋯ 0 0 0 ⋯ 0 0 ⋯ 0 ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ 0 0 ⋯ 0 0 ⋯ 0 ಛҟղ X = UΛVT ࣮ߦྻɹɹɹߦྻɹΛɹɹɹߦྻɹ ɹɹɹߦྻɹ ɹɹɹߦྻɹͷࡾʹ ղ͢Δ͜ͱɽ m × n X m × m U m × n Λ n × n V uT i Xvj = ( 1 λi Xvi) T Xvj = 1 λi vT i XT Xvj = λj λi vT i vj = λi δij = λi (i = j, 1 ≤ i ≤ p) 0 (i ≠ j) 0 (p + 1 ≤ i ≤ n) 0 (p + 1 ≤ i ≤ n)
× n X m × m U m × n Λ n × n V UT XV = uT 1 Xv1 uT 1 Xv2 ⋯ uT 1 Xvn uT 2 Xv2 uT 2 Xv2 ⋯ uT 2 Xvn ⋮ ⋮ ⋱ ⋮ uT m Xvm uT m Xv2 ⋯ uT m Xvn = λ1 0 ⋯ 0 0 ⋯ 0 0 λ2 ⋯ 0 0 ⋯ 0 ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ 0 0 ⋯ λp 0 ⋯ 0 0 0 ⋯ 0 0 ⋯ 0 ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ 0 0 ⋯ 0 0 ⋯ 0 = Λ Λ uT i Xvj = ( 1 λi Xvi) T Xvj = 1 λi vT i XT Xvj = λj λi vT i vj = λi δij = λi (i = j, 1 ≤ i ≤ p) 0 (i ≠ j) 0 (p + 1 ≤ i ≤ n)
× n X m × m U m × n Λ n × n V X = UΛVT ͱ͜ΖͰɼڵຯ͕͋Δͷݻ༗͕ඇθϩͷ෦ͷΈͰ͋Δ͔Β X = Up Λp VT p = Up λ1 0 ⋯ 0 0 λ2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λp VT p = ( λ1 u1 vT 1 λ2 u2 vT 2 ⋯ λp up vT p ) ͕ͨͬͯ͠ɼɹɹɹɹߦྻɼɹɹɹɹߦྻɼɹɹɹɹߦྻ ಛʹɹɹɹͷ࣌ɼ͡ύλ Q ಉ༷ʹ͓͘͜ͱ͕Ͱ͖Δɽɹ m × p p × p p × n n = p Up Λp VT p