この章の目標
- 主成分分析を分散の最大化として定式化し、主成分が標本共分散行列の固有ベクトルであることをレイリー商から証明できる
- 中心化が必要な理由を説明し、主成分分析を特異値分解で計算できる
- エッカート–ヤングの定理を証明し、寄与率・白色化・推薦の低ランク近似(欠損値の注意を含む)を理解する
- k 平均法の目的関数が単調に減少して有限回で止まることを証明し、局所解に止まる例を挙げられる
- ジョンソン–リンデンシュトラウスの補題を正確に述べ、主成分分析との違いを説明できる
前提:02-linear-algebra 第7章(直交射影・実対称行列の対角化)、02-linear-algebra 第8章(特異値分解・レイリー商)。3.8 節の証明では 22-statistics 第1章 の正規分布・モーメント母関数・マルコフの不等式を使う。3.3・3.4 節では第1章のデータ漏洩と交差検証を、3.6 節では第2章のリッジ回帰を参照する。
通販サイトが顧客ごとに 200 の商品カテゴリ別の購入額を記録しているとする。顧客は R200 の点だが、眺めることもできず、似た顧客を探す計算も重い。一方で購入額どうしは強く相関しており(子育て中の世帯はおむつも粉ミルクも買う)、少数の要因で大部分が説明できることが多い。情報をなるべく失わずに低い次元で表すことを次元削減 (dimensionality reduction) という。
本章の中心は主成分分析 (principal component analysis, PCA) で、02-linear-algebra 第8章の線形代数がそのまま使える。同じ線形代数は推薦のための低ランク近似の土台でもあるが、欠損の多い実データでは特異値分解をそのまま使うと誤る。後半では、必ず止まるが最適とは限らない k 平均法と、ランダムな線形写像で距離をほぼ保って次元を下げるジョンソン–リンデンシュトラウスの補題を扱う。
データ x1,…,xn∈Rd に対し、xi⊤ を第 i 行とする n×d 行列 X をデータ行列という。ベクトルは縦ベクトルで、転置を A⊤ と書く(02-linear-algebra の tA、実行列の A∗ と同じ)。1 は成分がすべて 1 のベクトル、∥A∥ と ∥A∥F は作用素ノルムとフロベニウスノルムである。
3.1 データ行列と中心化
定義 3.1(標本平均・中心化・標本共分散行列)xˉ=n1∑i=1nxi を標本平均、x~i=xi−xˉ を中心化 (centering) したデータ、x~i⊤ を第 i 行とする Xc=X−1xˉ⊤ を中心化データ行列といい、
Σ^=n1i=1∑nx~ix~i⊤=n1Xc⊤Xc
を標本共分散行列 (sample covariance matrix) という。
本章では n で割るが、n−1 で割る流儀もある(NumPy の np.cov の既定)。定数倍なので固有ベクトルや寄与率は変わらない。w⊤Σ^w=n1∑i(w⊤x~i)2≥0 なので Σ^ は半正定値の実対称行列であり、固有値 λ1≥⋯≥λd≥0 と正規直交固有ベクトル v1,…,vd をもつ(02-linear-algebra 第7章 定理 7.32)。本章ではこの記号を通して使う。
補題 3.2 任意の c,w∈Rd について
n1i=1∑n∥xi−c∥2=n1i=1∑n∥x~i∥2+∥xˉ−c∥2,n1i=1∑n(w⊤xi−w⊤xˉ)2=w⊤Σ^w
である。特に ∑i∥xi−c∥2 を最小にする c は xˉ だけで、n1∑i∥x~i∥2=trΣ^(全分散)である。
証明. ∑ix~i=0 なので、xi−c=x~i+(xˉ−c) を展開すると交差項が消えて第 1 式を得る。第 2 式は (w⊤x~i)2=w⊤x~ix~i⊤w を平均すればよく、最後は tr(x~ix~i⊤)=∥x~i∥2 による。□
3.2 分散最大化としての主成分分析
データを平均を通る方向 w(単位ベクトル)の直線に射影すると、各点は数 w⊤x~i で表される。データの違いをなるべく残すため、その分散 w⊤Σ^w(補題 3.2)が大きい方向を選ぶ。
定義 3.3(主成分)∥w∥=1 のもとで w⊤Σ^w を最大にする w1 を第 1 主成分方向、w1,…,wj−1 を定めたあと、さらに w⊥w1,…,wj−1 のもとで最大にする wj を第 j 主成分方向という。zij=wj⊤x~i を第 j 主成分得点 (principal component score) という。
定理 3.4(主成分と固有ベクトル)各 j について、∥w∥=1 かつ w⊥v1,…,vj−1 のもとでの w⊤Σ^w の最大値は λj で、w=vj で達成される。したがって v1,…,vd は主成分方向の列であり、第 j 主成分得点の分散は λj、異なる主成分の得点の標本共分散は 0 である。固有値が相異なれば、主成分方向は符号を除いて一意に wj=±vj である。
証明. 条件のもとで w=∑i≥jcivi, ∑ici2=1 と書け(02-linear-algebra 第7章 命題 7.8)、w⊤Σ^w=∑i≥jλici2≤λj で、等号は w=vj で成り立つ(02-linear-algebra 第8章 8.10 節のレイリー商の議論。j=1 が命題 8.29)。固有値が相異なれば、等号には i>j で ci=0 が必要なので w=±vj で、帰納法で wj=±vj。得点の分散は vj⊤Σ^vj=λj(補題 3.2)、共分散は vj⊤Σ^vl=λlvj⊤vl=0(j=l)。□
k 個の主成分を同時に考えると、分散の最大化と再構成誤差の最小化が一致する。
定理 3.5(主成分部分空間の最適性)M を d 次実対称行列とし、固有値を λ1≥⋯≥λd、正規直交固有ベクトルを v1,…,vd、Vk=(v1 ⋯ vk) とする。W⊤W=Ik を満たす任意の d×k 行列 W について
tr(W⊤MW)≤λ1+⋯+λk=tr(Vk⊤MVk)
である。M=Σ^(標本共分散行列)のとき、W の列空間への直交射影 WW⊤ について
n1i=1∑n∥x~i−WW⊤x~i∥2=trΣ^−tr(W⊤Σ^W)≥λk+1+⋯+λd
である。つまり第 1〜第 k 主成分方向が張る部分空間は、射影の分散の和を最大にし、同時に平均二乗再構成誤差を最小にする。
証明. cl=∥W⊤vl∥2 とおく。V=(v1 ⋯ vd) は直交行列なので ∑lcl=tr(W⊤VV⊤W)=tr(W⊤W)=k。WW⊤ は直交射影(02-linear-algebra 第7章 定理 7.15)で ∥WW⊤v∥2=v⊤WW⊤v=∥W⊤v∥2 だから、cl=∥WW⊤vl∥2≤1。M=∑lλlvlvl⊤ より tr(W⊤MW)=∑lλlcl で、
l=1∑dλlcl−l=1∑kλl=l≤k∑λl(cl−1)+l>k∑λlcl≤λk(l≤k∑(cl−1)+l>k∑cl)=λk(l=1∑dcl−k)=0
(l≤k では cl−1≤0, λl≥λk、l>k では cl≥0, λl≤λk)。W=Vk では cl が 1(l≤k)か 0 で等号が成り立つ。後半:ピタゴラスの定理より ∥x~i∥2=∥W⊤x~i∥2+∥x~i−WW⊤x~i∥2 で、W の列 wl について補題 3.2 より n1∑i∥W⊤x~i∥2=∑lwl⊤Σ^wl=tr(W⊤Σ^W)。□
例 3.6 5 点 (1,4),(2,3),(3,5),(4,7),(5,6) の平均は xˉ=(3,5)、中心化した点は (−2,−1),(−1,−2),(0,0),(1,2),(2,1) で
Σ^=(28/58/52),λ1=518, v1=21(11),λ2=52, v2=21(1−1)
である。第 1 主成分得点は (−3,−3,0,3,3)/2(分散 3.6)、第 2 主成分得点は (−1,1,0,−1,1)/2(分散 0.4)で、両者の共分散は 0。第 1 主成分だけで再構成した点 xˉ+zi1v1(例えば (1,4) は (1.5,3.5) に写る)の平均二乗再構成誤差は λ2=0.4 である。
射影先が平均を通るのは偶然ではない。
命題 3.7(中心化の必要性)P を部分空間 L への直交射影、Q=I−P とする。データからアフィン部分空間 m+L までの距離の 2 乗の平均は
E(m)=n1i=1∑n∥Q(xi−m)∥2=n1i=1∑n∥Qx~i∥2+∥Q(xˉ−m)∥2
である。よって E は m=xˉ で最小になり、k 次元アフィン部分空間とデータとの距離の 2 乗の平均の最小値は λk+1+⋯+λd で、xˉ+span(v1,…,vk) で達成される。
証明. x と m+L の距離は ∥Q(x−m)∥ である(02-linear-algebra 第7章 定理 7.17)。点 Qxi の平均は Qxˉ なので、補題 3.2 を点 Qxi と c=Qm に適用すればよい。m=xˉ のあとの最小化は定理 3.5 である。□
例 3.8(中心化を忘れると)n1X⊤X=Σ^+xˉxˉ⊤ なので、中心化せずに固有ベクトルを求めると平均の方向が混ざる。例 3.6 では 51X⊤X(第 1 行 (11,83/5)、第 2 行 (83/5,27))の第 1 固有ベクトルは第 1 軸から約 57.9∘ の方向で、v1(45∘)より平均 (3,5) の方向(約 59.0∘)に近い。データが原点から遠いほど、これは散らばりではなく位置を表す。
3.3 特異値分解との関係とエッカート–ヤングの定理
命題 3.9(主成分分析と特異値分解)Xc の特異値分解を Xc=UΣV⊤=∑j=1rσjujvj⊤(r=rankXc、02-linear-algebra 第8章 定理 8.19。Σ は特異値を並べた n×d 行列で、Σ^ とは別のもの)とする。
- 右特異ベクトル vj は Σ^ の固有値 λj=σj2/n の固有ベクトルである(j>r では λj=0)。
- 第 j 主成分得点を並べたベクトルは Xcvj=σjuj である。
- 第 k 主成分までで再構成した XcVkVk⊤ は、特異値分解を k 項で打ち切った ∑j=1kσjujvj⊤ である。
証明. 1 は Xc⊤Xc=VΣ⊤ΣV⊤ から、2 は Xcvj=UΣej から、3 は vj⊤VkVk⊤ が j≤k なら vj⊤、j>k なら 0 であることから従う。□
例 3.6 では σ1=32, σ2=2 で σj2/5=λj である。命題 3.9 の 3 が最良の近似であることを次の定理が保証する。
定理 3.10(エッカート–ヤングの定理, Eckart–Young theorem)A∈Mm,n(R) の特異値分解を A=∑j=1rσjujvj⊤(σ1≥⋯≥σr>0)、k<r について Ak=∑j=1kσjujvj⊤ とする。rankB≤k を満たす任意の B∈Mm,n(R) について
∥A−B∥F2≥j=k+1∑rσj2=∥A−Ak∥F2,∥A−B∥≥σk+1=∥A−Ak∥
が成り立つ。すなわち Ak は、フロベニウスノルムでも作用素ノルムでも、階数 k 以下の行列による最良近似である。
証明. 等号部分:A−Ak=∑j>kσjujvj⊤ は特異値 σk+1,…,σr の特異値分解の形なので、02-linear-algebra 第8章 命題 8.21 による。
フロベニウスノルムの不等式:A,B の第 i 行を ai⊤,bi⊤ とする。B の行空間を含む k 次元部分空間の正規直交基底 w1,…,wk をとり(02-linear-algebra 第7章 系 7.10)、W=(w1 ⋯ wk) とする。bi は W の列空間にあるので、最良近似定理(同 定理 7.17)とピタゴラスの定理より
∥A−B∥F2=i∑∥ai−bi∥2≥i∑∥ai−WW⊤ai∥2=i∑(∥ai∥2−∥W⊤ai∥2)=∥A∥F2−tr(W⊤A⊤AW)
定理 3.5 の前半を対称行列 A⊤A(固有値は σ12≥⋯≥σr2 と 0)に適用すると tr(W⊤A⊤AW)≤σ12+⋯+σk2。∥A∥F2=∑jσj2 と合わせて結論を得る。□
作用素ノルムの不等式は主張にとどめる(証明は 02-linear-algebra 第8章 定理 8.27。KerB と span(v1,…,vk+1) が交わることを使う)。同定理のフロベニウスノルムの場合の証明(ワイルの不等式による)とここでの証明は別の道筋である。
最小点の一意性は特異値の重なりで決まる。フロベニウスノルムでは、σk>σk+1 なら最小点は Ak だけである。実際、上の証明で等号が成り立つには、定理 3.5 の証明の l>k の項(σl2<σk2)から cl=∥W⊤vl∥2=0、すなわち W の列空間が span(v1,…,vk) で、さらに最良近似の等号条件から bi=WW⊤ai、つまり B=AVkVk⊤=Ak でなければならない。σk=σk+1 なら特異ベクトルの選び方で Ak 自体が変わるので一意でない(A=I2, k=1 では単位ベクトル u による uu⊤ がすべて最小点)。作用素ノルムでは σk>σk+1 でも一意とは限らない(A=diag(3,2,1), k=1 では diag(3+t,0,0)(∣t∣≤2)の誤差はすべて σ2=2)。
ヒント
実務では
(1) 主成分分析は Xc の特異値分解(np.linalg.svd など)で計算する。Xc⊤Xc の固有値分解は条件数を 2 乗にして小さい特異値を失う。±(1,1), ±(δ,0), ±(0,δ) の 6 行の Xc(δ=10−8)では、Xc⊤Xc の対角成分 2+2δ2 が倍精度で 2 に丸められて第 2 固有値が 0 になるが、特異値分解は σ2=2δ を正しく返す。(2) 平均と主成分方向は訓練データだけで求めてテストデータに適用する。全データで求めると前処理にテストデータの情報が漏れる(第1章 1.8 節)。(3) 固有ベクトルの符号は任意で、ライブラリや計算法、データのわずかな違いで反転しうる。
3.4 寄与率と次元の選び方
定義 3.11(寄与率)第 j 主成分の寄与率 (proportion of variance explained) を λj/(λ1+⋯+λd)、第 k 主成分までの累積寄与率を (λ1+⋯+λk)/(λ1+⋯+λd) と定める。
定理 3.5 より、累積寄与率は最良の k 次元部分空間への射影で残る分散の割合、すなわち 1−(平均二乗再構成誤差)/(全分散)である。例 3.6 の第 1 主成分の寄与率は 0.9 である。
次元 k は、累積寄与率が 80% や 90% を超える最小の k、固有値のグラフ(スクリープロット)の「肘」、相関行列の固有値が 1 以上の成分の数などで選ばれることが多いが、これらは経験則であって定理ではない。後に予測などの目的があるなら、k ごとの性能を交差検証(第1章 1.7 節)で比べるのがよい。
注意 3.12(単位への依存)主成分分析は特徴量の単位に依存する。ある特徴量をメートルからセンチメートルに変えると分散は 104 倍になり、第 1 主成分はその軸に引き寄せられる(問題 3.3)。単位の違う特徴量は、標準偏差で割って標準化してから(相関行列について)主成分分析することが多い。ただし標準化は雑音のような小さい特徴量も同じ重みに引き上げるので、同種のセンサーの値のように大きさを比べられる場合は標準化しないこともある。
注意
寄与率の小さい主成分を「ノイズ」として捨ててよいとは限らない。主成分分析は目的変数を見ないので、予測に効く方向の分散が小さいこともある。2 クラスのデータが x1 方向に大きく広がり、クラスの違いが x2 の符号(ばらつき ±0.1 程度)にだけ現れるなら、第 2 主成分を捨てると分類はできない。
3.5 白色化
主成分得点は無相関だが分散 λj はまちまちである。さらに標準偏差で割って、すべての方向の分散を 1 にそろえる前処理を白色化という。
定義 3.13(白色化)Σ^ を正定値とする。d 次正方行列 W による zi=Wx~i の標本共分散行列 WΣ^W⊤ が Id になるとき、W を白色化 (whitening) 行列という。Σ^=VΛV⊤(Λ=diag(λ1,…,λd))として、W=Λ−1/2V⊤ を PCA 白色化、W=Σ^−1/2=VΛ−1/2V⊤ を ZCA 白色化という(Σ^1/2 は 02-linear-algebra 第8章 命題 8.15 の正の平方根)。
命題 3.14 Σ^ を正定値とする。
- W が白色化行列であるための必要十分条件は、ある直交行列 Q で W=QΣ^−1/2 と書けることである。
- 白色化行列 W について ∥Wx−Wy∥2=(x−y)⊤Σ^−1(x−y)。右辺の平方根をマハラノビス距離 (Mahalanobis distance) という。
証明. 1:W=QΣ^−1/2 なら WΣ^W⊤=QQ⊤=I。逆に WΣ^W⊤=I なら Q=WΣ^1/2 は QQ⊤=WΣ^W⊤=I を満たす直交行列で、W=QΣ^−1/2。2:W⊤W=Σ^−1/2Q⊤QΣ^−1/2=Σ^−1。なお PCA 白色化は Q=V⊤ の場合である。□
例 3.15 例 3.6 では Σ^−1 は第 1 行 (5,−4)、第 2 行 (−4,5) の行列の 5/18 倍である。新しい点 (4,4) と (5,7) の平均 (3,5) からのユークリッド距離は 2≈1.41 と 22≈2.83 だが、マハラノビス距離は 5≈2.24 と 25/3≈1.49 で、大小が逆転する。(4,4) はデータがほとんど散らばらない v2 方向にずれているからで、異常検知でマハラノビス距離が使われるのはこのためである。
白色化は小さい λj で割るので雑音を大きく増幅する。実際には (Λ+εI)−1/2(ε>0 は小さい定数)を使うか、小さい固有値の成分を捨ててから白色化する。
3.6 低ランク近似と推薦
m 人の利用者が n 個の商品につけた評価の行列 R=(rij) を考える。好みが少数の要因で決まるなら、k 次元のベクトル pi,qj で rij≈pi⊤qj、すなわち R≈PQ⊤ と書けるはずである。R がすべてわかっていれば、∥R−PQ⊤∥F の最小は打ち切った特異値分解 Rk で達成される(定理 3.10)。しかし実際の評価行列は大部分が欠損している。観測された添字の集合を Ω、利用者 i が評価した商品の集合を Ωi として、解くべき問題は
P,Qmin(i,j)∈Ω∑(rij−pi⊤qj)2+λ(∥P∥F2+∥Q∥F2)
であり、特異値分解はそのままでは使えない。欠損を 0 で埋めて特異値分解すると、「評価していない」を「評価 0」として近似してしまう。
例 3.16 3×3 のランク 1 の行列(第 i 行が i⋅(1,2,3))の (1,3) 成分 r13=3 だけが欠損しているとする。ランク 1 では 2 次の小行列式が 0 なので r12r23=r13r22 となり、観測値と整合する値は r13=2⋅6/4=3 だけである。ところが 0 で埋めた行列の最良ランク 1 近似では (1,3) 成分の予測は約 1.08 で、観測済みの r11=1 まで約 0.37 に引き下げられる。観測値の平均で埋めても約 3.77 である。上の問題を k=1, λ=0 として観測値だけで解けば、誤差 0 で r13=3 を得る。
注意 3.17(非凸性と交互最小二乗法)上の目的関数は (P,Q) について凸でない(1×1 の (r−pq)2(r=0)でも、原点は勾配が 0 でヘッセ行列の固有値が ±2r の鞍点である)。よく使われる交互最小二乗法 (alternating least squares, ALS) では、Q を固定して各 pi をリッジ回帰(第2章 定理 2.5)の解
pi=(j∈Ωi∑qjqj⊤+λI)−1j∈Ωi∑rijqj
に更新し、次に P を固定して Q を同様に更新する。各段階でその変数について厳密に最小化するので目的関数は増えないが(定理 3.19 と同じ論法)、大域最適解に到達する保証はない。
ヒント
実務では
推薦の欠損はランダムではない(利用者は気に入りそうな商品を選んで評価する)ので、欠損を 0 とみなしても観測値だけに当てはめても偏りが生じうる。クリックや購入しか記録がなければ「反応なし」を重みの小さい負例として扱うなどの工夫をする。評価は観測値の一部を隠して行い、時間順のデータでは過去で学習して未来で評価する。観測のない新しい利用者・商品は低ランクモデルだけでは予測できない(コールドスタート問題)。
3.7 k 平均法
顧客を購買傾向の似たグループに分けたい。各グループの中心とのずれの 2 乗和を小さくする分け方を探すのが k 平均法である。
定義 3.18(k 平均法)割り当て c:{1,…,n}→{1,…,k} と中心 μ1,…,μk∈Rd について J(c,μ)=∑i=1n∥xi−μc(i)∥2 とする。ロイドのアルゴリズム (Lloyd's algorithm) は、初期中心から次の 2 段階を繰り返し、(a) で割り当てが変わらなくなったら止まる。
- (a) 割り当て:各 i を最も近い中心に割り当てる(同点なら今の割り当て先を優先し、次に番号の小さい中心を選ぶ)。
- (b) 更新:Cj={i∣c(i)=j} が空でなければ μj を {xi}i∈Cj の平均にする(空なら変えない)。
定理 3.19(k 平均法の単調性)ロイドのアルゴリズムの各段階で J は増えず、アルゴリズムは有限回で止まる。止まったとき、空でない各クラスタの中心はそのクラスタの平均で、各点は最も近い中心に割り当てられている。
証明. (a):μ を固定すると J は項 ∥xi−μc(i)∥2 の和なので項ごとの最小化で増えず、割り当てが 1 つでも変われば(厳密に近い中心へ移るので)厳密に減る。(b):c を固定すると J=∑j∑i∈Cj∥xi−μj∥2 で、補題 3.2 より内側の和は μj が Cj の平均のとき最小である。有限性:(b) の直後の J は、空でないクラスタの平均までの距離の 2 乗和 F(c) に等しく、割り当て c だけで決まる。止まらずに c が c′ に変われば、(a) で厳密に減り (b) で増えないので F(c′)<F(c)。よって同じ割り当ては 2 度現れず、割り当ては高々 kn 通りなので有限回で止まる。最後の主張は、止まる直前の (b) と最後の (a) から従う。□
保証されるのは止まることと J が減ることだけで、止まった点が最小点とは限らない。
例 3.20(局所解に止まる例)4 点 (0,0),(0,1),(4,0),(4,1) を k=2 で分ける。初期中心を μ1=(0,0), μ2=(0,1) とすると、(a) で (0,0),(4,0) が中心 1 に、(0,1),(4,1) が中心 2 に割り当てられ(J=32)、(b) で μ1=(2,0), μ2=(2,1)、J=16 となって止まる。しかし左右に分ければ J=4⋅(1/2)2=1 で(空でない 2 組への 7 通りの分け方の中で最小)、初期中心を (0,0),(4,0) にとればこちらに到達する。
k 平均法の大域最小点を求める問題は一般に NP 困難であることが知られている(本書では証明しない。NP 困難は 23-optimization 第7章で扱う)。実際には、初期中心を互いに離れるように確率的に選ぶ k-means++ などの初期化と、複数回の実行で J が最小のものを採ることが行われる。ユークリッド距離を使うので特徴量の単位に依存し、最適な J は k について増えない(k=n なら 0)ので J の大小で k は選べない。
3.8 ジョンソン–リンデンシュトラウスの補題
d=104 次元のベクトルが n=106 個あり、近いものを探したいとする。主成分分析は捨てた方向だけで異なる 2 点を同じ点に写すので、個々の距離を保証しない。ここではすべての 2 点間の距離をほぼ保つことを求める。驚くべきことに、データを見ずに選んだランダムな線形写像で、d によらない次元までそれができる。
定理 3.21(ジョンソン–リンデンシュトラウスの補題, Johnson–Lindenstrauss lemma)0<ε<1、x1,…,xn∈Rd(n≥2)とし、正の整数 k が
k≥ε2/2−ε3/34lnn
を満たすとする。成分が独立に N(0,1/k) に従う k×d のランダム行列 G について、確率 1/n 以上で、すべての i,j で
(1−ε)∥xi−xj∥2≤∥Gxi−Gxj∥2≤(1+ε)∥xi−xj∥2(1)
が成り立つ。特に (1) を満たす線形写像 Rd→Rk が存在する。ε2/2−ε3/3≥ε2/6 なので k≥24ε−2lnn なら十分で、k=O(ε−2logn) でよい。
証明. a=ε2/2−ε3/3 とおき、u=xi−xj=0 を固定する(u=0 なら (1) は自明)。G の第 l 行 gl⊤ について、gl⊤u は独立な正規変数の 1 次結合なので N(0,∥u∥2/k) に従い、G の別々の行から作られるので l について独立である(22-statistics 第1章 系 1.17 の 1、命題 1.4 の 3)。よって Y=k∥Gu∥2/∥u∥2 は k 個の独立な標準正規変数の 2 乗和で、(1) は (1−ε)k≤Y≤(1+ε)k と同値である。Z∼N(0,1), t<1/2 について E[etZ2]=2π1∫e−(1−2t)z2/2 dz=(1−2t)−1/2 なので、独立な和のモーメント母関数は積であること(22-statistics 第1章 1.4 節)から E[etY]=(1−2t)−k/2。マルコフの不等式(同 定理 1.25)を etY に使い t=ε/(2(1+ε)) とおくと
P(Y≥(1+ε)k)≤et(1+ε)kE[etY]=((1+ε)e−ε)k/2≤e−ka/2
(最後は ln(1+ε)≤ε−ε2/2+ε3/3 による。差は ε=0 で 0、導関数は ε3/(1+ε)≥0)。同様に e−tY と t=ε/(2(1−ε)) から P(Y≤(1−ε)k)≤((1−ε)eε)k/2≤e−kε2/4≤e−ka/2(ln(1−ε)≤−ε−ε2/2 と ε2/2≥a による)。各組で (1) が破れる確率は 2e−ka/2 以下で、k≥4lnn/a より e−ka/2≤n−2 だから、n(n−1)/2 組のどこかで破れる確率は n(n−1)e−ka/2≤1−1/n 以下であり、すべての組で (1) が成り立つ確率は 1/n 以上である。□
同じ計算で、0<δ<1 について k≥(4lnn+2ln(1/δ))/a なら e−ka/2≤δn−2 となり、すべての組で (1) が成り立つ確率は 1−δ 以上になる。
k は n の対数にしか依存せず、元の次元 d にはよらない。写像はデータを見ずに選べるので、後から来た点にも同じ G を使える。
import numpy as np
rng = np.random.default_rng(0)
n, d = 200, 10_000
X = rng.standard_normal((n, d)) # 200 点(10,000 次元)
iu = np.triu_indices(n, 1) # 点の組 i < j
def sqdist(A): # すべての組の距離の 2 乗
sq = (A**2).sum(axis=1)
return (sq[:, None] + sq[None, :] - 2 * A @ A.T)[iu]
D = sqdist(X)
for k in [50, 200, 1000]:
G = rng.standard_normal((k, d)) / np.sqrt(k) # 成分は独立に N(0, 1/k)
r = sqdist(X @ G.T) / D
print(f"k={k:4d}: 比の最小 {r.min():.3f}, 最大 {r.max():.3f}")
k= 50: 比の最小 0.406, 最大 1.872
k= 200: 比の最小 0.638, 最大 1.369
k=1000: 比の最小 0.831, 最大 1.176
n=200 で定理 3.21 が要求する次元は ε=0.5 なら 255、ε=0.2 なら 1223 で、実験では k=1000 で比が [0.83,1.18] に収まった。
注意 3.22(主成分分析との比較)主成分分析はデータに合わせて部分空間を選び平均二乗誤差の意味で最適だが、個々の距離は保証しない。ジョンソン–リンデンシュトラウスの補題はデータによらない写像で全組の距離を保証する代わりに、必要な次元が大きくなりうる(n=106, ε=0.1 では定理 3.21 の要求は k≥11842 で、3.8 節の冒頭の d=104 を超える。定理 3.21 は十分条件なので、実際にはもっと小さい k で足りることも多い)。データが低次元の部分空間の近くにあるなら主成分分析が、そうでない高次元データの近傍探索ではランダム射影が向く。
まとめ
- 主成分方向は標本共分散行列の固有ベクトル、分散は固有値である(レイリー商)。第 k 主成分までの部分空間は射影の分散の和を最大にし、再構成誤差を最小にする。最良の近似アフィン部分空間は平均を通るので、中心化が必要である。
- 主成分分析は中心化データ行列の特異値分解そのもので、分散は σj2/n である。Xc⊤Xc は作らずに計算する。
- エッカート–ヤングの定理:打ち切った特異値分解は、フロベニウスノルムでも作用素ノルムでも最良のランク k 近似である。
- 累積寄与率は最良の k 次元部分空間に残る分散の割合である。次元の選び方の基準は経験則で、主成分分析は単位に依存する。
- 白色化行列は QΣ^−1/2(Q は直交行列)に限られ、白色化後の距離はマハラノビス距離である。
- 欠損の多い評価行列に特異値分解はそのまま使えない。観測値への当てはめは非凸である。
- k 平均法は目的関数を単調に減らして有限回で止まるが、局所解に止まりうる。
- ジョンソン–リンデンシュトラウスの補題:ランダムな線形写像で、n 点の距離の 2 乗の比をすべて 1±ε の範囲に保ったまま O(ε−2logn) 次元に写せる。
演習問題
問題 3.1 ★ 4 点 (0,0),(2,2),(4,4),(6,2) について、標本共分散行列(n で割る)、主成分方向、各主成分の分散と寄与率、第 1 主成分得点を求めよ。
解答
平均は (3,2)、中心化した点は (−3,−2),(−1,0),(1,2),(3,0) で、Σ^ は第 1 行 (5,2)、第 2 行 (2,2) の行列である。固有多項式は t2−7t+6=(t−6)(t−1) なので λ1=6, λ2=1、主成分方向は v1=(2,1)/5, v2=(1,−2)/5(符号は任意)、寄与率は 6/7≈0.857 と 1/7。第 1 主成分得点は (−8,−2,4,6)/5 で、2 乗の平均は (64+4+16+36)/20=6=λ1 に一致する。
問題 3.2 ★ 第 1 行 (3,0)、第 2 行 (4,5) の行列 A の特異値分解(02-linear-algebra 第8章 例 8.20:σ1=35, u1=(1,3)/10, v1=(1,1)/2, σ2=5)から最良のランク 1 近似 A1 を求め、∥A−A1∥F2=σ22 を確かめよ。第 1 行を 0 にした行列 B の誤差と比べよ。
解答
A1=σ1u1v1⊤ は 2035=23 より第 1 行 (1.5,1.5)、第 2 行 (4.5,4.5) の行列。A−A1 の成分は 1.5,−1.5,−0.5,0.5 で 2 乗和は 5=σ22。一方 ∥A−B∥F2=9>5 で、定理 3.10 のとおり A1 のほうが近い。
問題 3.3 ★★ 例 3.6 のデータで第 2 特徴量だけを 10 倍したとき、標本共分散行列、第 1 主成分の寄与率、第 1 主成分方向が第 1 軸となす角を求めよ。元の方向 (1,1) をこの座標で表したものと比べ、各特徴量を標準化した場合とも比べよ。
解答
Σ^′=diag(1,10) Σ^ diag(1,10) は第 1 行 (2,16)、第 2 行 (16,200) で、固有値は 101±10057(約 201.28 と 0.715)、寄与率は約 0.9965(元は 0.9)。第 1 固有ベクトルは (16,λ1−2)≈(16,199.28) の方向で、第 1 軸と約 85.4∘ をなす。元の方向 (1,1) はこの座標では (1,10) の方向(約 84.3∘)なので、主成分は同じ方向の座標変換にはならず、分散の大きい特徴量に引き寄せられ、寄与率も見かけ上上がる。標準化すると、どちらの単位でも相関行列は第 1 行 (1,0.8)、第 2 行 (0.8,1)(固有値 1.8,0.2)で単位によらない。
問題 3.4 ★★ 1 次元のデータ 0,1,4,5,8,9 を k=3 で分ける。(1) 初期中心を 4,8,9 としてロイドのアルゴリズムを実行し、止まったときの J を求めよ。(2) J の最小値が 1.5 であることを示せ。
解答
(1) (a) で 0,1,4,5 が中心 4 に(5 から 4 までは 1、8 までは 3)、8,9 はそれぞれ自分の中心に割り当てられ、(b) で中心は 2.5,8,9。次の (a) でも 5 は 2.5 のほうが近く(2.5<3)割り当ては変わらないので止まり、J=2.52+1.52+1.52+2.52=17。
(2) {0,1},{4,5},{8,9} で J=6⋅0.52=1.5。下界:最小 a、最大 b のクラスタの寄与は、平均 m について (a−m)2+(b−m)2≥(b−a)2/2 以上である。空のクラスタがあるときは、2 点以上のクラスタの 1 点を移しても J は増えないので、大きさが (2,2,2), (3,2,1), (4,1,1) の場合を調べればよい。2 点の幅は 1 以上、3 点の幅は 4 以上、4 点の幅は 5 以上なので、それぞれ J≥1.5, J≥8, J≥12.5。よって最小値は 1.5 で、(1) は局所解である。
問題 3.5 ★★ 顧客の解約予測(特徴量 300 個)について次の報告があった。「全データを標準化して主成分分析し、累積寄与率 90% となる 25 成分を残した。その後データを訓練用とテスト用に分けてロジスティック回帰を学習し、テストの正解率は 91% だった。残りの 275 成分は寄与率が小さいのでノイズである。」問題点を指摘せよ。
解答
(1) 標準化と主成分分析をテストデータを含む全データで行っており、データ漏洩である(第1章 1.8 節)。訓練データだけで求めた変換をテストデータに適用すべきである(目的変数を使わないので影響は小さいことも多いが、手順として誤り)。(2) 累積寄与率 90% は経験則で、成分数は訓練データ内の交差検証で選ぶべきである。(3) 分散の小さい方向が解約の予測に効くこともある(3.4 節の WARNING)。「ノイズ」と断定する根拠はなく、捨てた成分を含めたモデルと比べる必要がある。
問題 3.6 ★★ 評価行列 R の第 1 行が (2,4)、第 2 行が (3,?) で、(2,2) 成分が欠損している。(1) ランク 1 の行列として観測値と整合する r22 を求めよ。(2) 欠損を 0 で埋めた最良ランク 1 近似の (2,2) 成分は約 1.47 である(計算機で確かめよ)。なぜ (1) から大きくずれるのか。(3) k=1, λ=0 の交互最小二乗法で q=(q1,q2) を固定したときの p1,p2 の更新式を書き、目的関数が増えない理由を述べよ。
解答
(1) ランク 1 なら r11r22=r12r21 なので r22=4⋅3/2=6。(2) 埋めた 0 を含む全成分との 2 乗誤差を最小にするので、近似は (2,2) 成分を 0 に近づけようとし、ほかの成分もゆがむ((1,1) 成分は約 2.78 になる)。「未評価」を「評価 0」と扱った偏りである。(3) 観測は (1,1),(1,2),(2,1) なので p1=(2q1+4q2)/(q12+q22), p2=3/q1(q1=0)。これは q を固定したときの ∑(i,j)∈Ω(rij−piqj)2 の各 pi についての厳密な最小化(1 変数の最小二乗)なので、値は増えない。q の更新も同様である。q=(1,2) なら p=(2,3) で誤差 0、予測は p2q2=6 となる。
問題 3.7 ★★ (1) n=104, ε=0.2 のとき定理 3.21 が要求する次元 k を求めよ。(2) 標準基底 e1,…,en∈Rd(n≤d)を、d 個の座標から k 個を選んで残し定数倍する写像 f で写す。k≤n−2 なら、座標の選び方と定数によらず定理 3.21 の (1) 式が破れる組があることを示せ。
解答
(1) a=0.02−0.008/3≈0.017333、4ln104/a≈36.841/0.017333≈2125.5 なので k=2126。(2) 残す座標に含まれない ei は 0 に写る。k≤n−2 なら少なくとも 2 つの ei,ej が 0 に写り、∥f(ei)−f(ej)∥2=0<2(1−ε)=(1−ε)∥ei−ej∥2。座標を選ぶ方法は疎なデータに弱いが、成分が正規分布に従う G ならデータによらず定理 3.21 が成り立つ。