非線形データの次元圧縮 150905 wacode 2nd
TRANSCRIPT
2015/09/05 WACODE 2nd
〜そのままでは使いづらい非線形データの次元圧縮〜
@nakaneko143
非線形データ
https://en.wikipedia.org/wiki/Manifold
「そのままでは使いづらいデータの解析」
非線形データの次元圧縮
…について理解を深めたい
(今回のテーマ)
現実のデータは非線形が多い
https://tamosblog.wordpress.com/2015/01/09/signal_processing_by_r/
気象データ (気象庁 降水確率) 音声データ (音の信号波形)
http://www.nikkei.com/markets/chart/#!/0101
金融データ (日経平均株価)
生体データ(時系列の発現変動)
http://bi.biopapyrus.net/transcriptome/de-analysis/examples/masigpro.html
非線形とはどういうことか
• 線形ではないデータ
– 線形の性質をもたない→色々と使いにくい
• 直線に当てはめることができない
• ユークリッド空間の定義はあてはまらない
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%AF%E3%83%AA%E3%83%83%E3%83%89%E7%A9%BA%E9%96%93
• ユークリッド平面の点は、二次元の座標ベクトルに対応する。
• 平面上の平行移動は、ベクトルの加法に対応する。
• 回転を定義する角度や距離は、内積から導かれる。
次元の呪いへの対策
• 高次元空間の対象を扱う場合の問題
– クラスタリング• 球面集中現象
– 超高次元空間の点は、ほぼ球殻に集中
• 高次元になるほどデータ間の距離が離れていく
– モデル推定• 高次元=説明変数が多い
• パラメータ最適化問題の複雑化
→次元圧縮
主成分分析(PCA)
• データを高次元ベクトル空間から、重要な特徴を表現する低次元空間に縮約
• →分散共分散行列Sの固有値問題でok
http://stats.stackexchange.com/questions/2691/making-sense-of-principal-component-analysis-eigenvectors-eigenvalues
• 2次元データxiを1次元軸へ射影
• 分散を最大化する係数μをもとめる
• Sは共分散行列• ラグランジュの未定数乗法より
y = mT xi
1
NmT (xn - x ){ }
2
= mTSmn=1
N
å
Sm = lm
非線形ではうまくいかない
cell1 cell2 ・・ ・・ cell95
gene1 6.8 0 3.6
gene2 31 4 53
:
:
gene53781
90 44 2
PCAはデータの線形性に基づいて軸をとっている
Quartz-Seq (53781gene*95cell)
非線形のための次元圧縮法L.J.P.van der Maaten, E.O.Postma, H.J.van den Herik"Dimensionality reduction: A comparative review" (2008)
比較的メジャーなもの
非線形データの次元圧縮
カーネル主成分分析で
手法同士の関係性を見てみる
カーネル主成分分析(PCA)
• カーネル法
– データを高次元の特徴空間に写像する手法
• カーネルPCA
– 固有値問題はPCAと共通
– 共分散行列Sが、特徴空間の内積行列K(カーネル関数値)に置き換えられた
http://www.murata.eb.waseda.ac.jp/researches/kernel
xi
x j
F
特徴写像
F(xi )
F(x j )
★内積計算はカーネル関数で評価
F(xi ),F(x j )
= k(xi, x j )
MDS (多次元尺度構成法)
空間内の点同士の距離から距離行列を作る。2重中心化で内積行列Gを構成し、固有値分解して多次元座標を得る。
Isomap
多様体上の点同士の測地距離をK近傍グラフを用いて近似し、距離行列を作る。以降はMDS。
距離からカーネルの値を計算して内積行列Kを再構成すると、カーネルPCAになる。
LLE(局所線形埋め込み)
多様体の点xの近傍点を決め、各点との距離の最小化問題を重みWについて解く。
得られた線形式を繋ぐ式の解は最終的に行列Wの固有値問題に帰着する。行列Wがカーネル関数の場合は、カーネルPCAになる。
ラプラシアン固有マップ
近傍グラフを構成し、頂点同士の類似度K行列をガウスカーネルで構成し、距離の最小化問題を解く。
グラフラプラシアン行列L=D-K(D:Kのrowsum)を導入。
固有値分解すると、カーネルPCAの固有値問題にDが補正値としてかかる式になる。
拡散マップ
近傍グラフを構成し、頂点同士の遷移確率行列をガウスカーネルで構成する。拡散距離を、点同士の推移確率で定義する。
グラフラプラシアン行列L=D-Kの正規化行列L’ の固有値問題を解く。
固有ベクトルで推移確率行列を再構成し、低次元空間の拡散距離を得る。
内積行列がカーネルか否か
カーネルPCA
特徴空間内の点同士の内積行列を元のデータから得られたカーネル関数値で構成し、PCAと同様に固有値問題を解く。
多様体学習への適用
距離行列の作り方が異なる
結果的にカーネルPCAと等しくなる
拡張
拡張(拡散距離)
非線形の次元圧縮まとめ
距離分布のKL情報量最小化
RNA-Seqデータでの比較
• 比較手法
– PCA : prcomp
– カーネルPCA : kernlab::kpca
– 拡散マップ : destiny(Haghverdi L et. al, Bioinformatics. 2015)
• テストデータ(Single-Cell)
– 弊ラボにてscRNA-Seq → Sailfishで発現定量を行った277細胞
– G1期、S期、G2M期からなる
– edgeR::TMMにて正規化
PCA (PC1, PC2, PC3)
PC1/PC2
PC1/PC3
PC2/PC3
カーネルPCA (X2 vs X3)軸は固定(第二,第三) ガウスカーネルのσを振った結果→パラメータの影響をうけやすい、PCAよりやや分離が悪い
拡散マップ (DC2 vs DC3)軸は固定(第二,第三) ガウスカーネルのσを振った結果→パラメータの影響にロバスト、PCAよりも良い分離
一細胞の次元圧縮について
大規模一細胞RNA-Seq
発現データの特徴量によるクラスタリング
– レアな細胞集団の検出
• 新たな制御機構や疾患の原因因子の特定
– 時系列変化、相互作用の特徴抽出
• 発生分化など、複雑な共振関係をもつ機構の解明
• 現状、PCA / t-SNE / 拡散マップ を用途に応じて使い分けるのが良さそう
補足:グラフラプラシアン
• グラフの構造を行列で表現した対称行列
• 対角行列(ノードの次数) - 隣接行列(重み)
• 隣接行列は、1あるいはガウスカーネルで構成
• 固有値問題
argminmTLm s.t.mTDm =1 Lm = lDm対角行列が固有ベクトルにかかっている→カーネルPCAよりも、分母σに影響をうけにくい
https://en.wikipedia.org/wiki/Laplacian_matrix
L =D-W
補足:Diffusion map
wij (xi, x j ) = exp(-xi - x j
2
2s 2)
pij (xi, x j ) =wij xi, x j( )di
)
d = rowsum = wijj=1
N
å
固有値問題
Lrm = D-1W
重みつき近傍グラフ
遷移確率行列 拡散距離
低次元空間での拡散距離再構成
補足:t-SNE
低次元空間での点間の距離分布
P
Q
低次元空間のデータ点y
高次元空間での点間の距離分布
Journal of Machine Learning Research 9 (2008) 2579-2605