Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
PCAの最終形態
GPLVMの解説
antiplastics@RIKEN  ACCC
2015.11.14
⾃自⼰己紹介
・露露崎弘毅(つゆざき  こうき)
・理理化学研究所  情報基盤センター
          バイオインフォマティクス研究開発ユニット
      (RIKEN  ACCC  BiT)
          特別研究員
・Single-‐‑‒cell  RNA-‐‑‒Seqのデータ解析、解析⼿手法・ソフトウェア
開発をやっています
・連絡先
-‐‑‒  @antiplastics
-‐‑‒  koki.tsuyuzaki  [at]  gmail.com
GPLVMってぐぐってみると...
なるほど、わからん\(^o^)/	
→	
  一体、何をしているのかくらいは理解したい	
PCA(主成分分析)のド発展版に相当する、ガウス過程を用いた
GPLVMを…by	
  Small	
  Data	
  Scien3st	
  Memorandum	
  
PCAのお化けのような手法とでもいえばよいのでしょうか。	
  
by	
  京都大学医学部統計遺伝学分野	
  
今⽇日の発表の流流れ
1	
 2	
 3	
4	
 5	
 6	
Probabilis3c	
  PCA	
  with	
  GPLVM	
この順番に話します
今⽇日の発表の流流れ
1	
 2	
 3	
4	
 5	
 6	
決定論的な解法	
確率論的な解法
今⽇日の発表の流流れ
1	
 2	
 3	
4	
 5	
 6	
普通の	
 カーネルVer	
双対Ver
今回のデータ
p次元のデータセットXをd次元のデータセットYにする(次元圧縮)	
データ、サンプル(n)	
次元、変数、変量	
  
(p)	
  
データ、サンプル(n)	
低次元	
  
(d,	
  2,3次元くらい
が多い)	
  
X	
 Y	
Xはあらかじめデータごとに平均値が
引かれているものとする
考える上でのポイント
n	
p	
  
X	
n	
p	
  
X	
XT	
p	
  
n	
=	
=	
XT	
 n	
p	
  
2種類の行列が登場	
  
(形だけに注目)	
n	
n	
p	
p	
S	
G	
グラム行列と同じ形	
  
	
  
p>>nの場合、サイズが小さい	
  
→	
  計算が速い(Dual	
  PCA)	
  
	
  
カーネル法と関連する	
  
→	
  非線形性を扱える(Kernel	
  PCA)	
  
	
  
こっちの方が嬉しい事が多い	
  
共分散行列と同じ形	
  
(通常のPCAと関係)
補⾜足  :  固有値分解とは
ある正方行列Aにベクトルuをかけたときに、uの定数倍λに
なる場合、uをAの固有ベクトル、λを固有値という	
=Au = λu
λ, uの具体的な求め方
Aが4次元以下 → 手計算(固有方程式を解く)
それ以上 →数値計算(べき乗法、ヤコビ法など)	
固有値は、行列の次元だけ存在するので、行列でまとめて書くと	
AU =UΛ =
UT
AU = Λ
A =UΛUT
“スペクトル分解”	
“行列の対角化”
PCA(1/2)
y1
データ次元空間のデータ点を、より低次元空間へ射影したい
PCAは分散が大きい順に軸を取り出す	
例 : 3次元	
 例 : 2次元	
y2
x3
x1
x2 第1主成分軸方向
1番目に分散が
大きい方向 u1	
第2主成分軸方向
2番目に分散が
大きい方向 u2	
まず、第1主成分で考える
結合係数u1をかけて、データXをy1軸に射影する
y1 = XT
u1
y1
y1軸でのデータの分散は以下の通り
1
N
u1
T
yn −u1
T
y{ }
n=1
N
∑ = u1
T
Su1
ただし、Sは共分散行列
Sp
p
S =
1
n −1
XXT
y1( )= (x1, x2 )
u1
u2
!
"
#
#
$
%
&
&
= u1x1 +u2 x2
PCA(2/2)
この分散を最大化させるu1を求めたいが、このままでは|u1|→∞が解
になるので、|u1|=1という拘束条件を設定する	
第i主成分も、i-­‐1以前の主成分と直行するという仮定を置くことで	
  
逐次的にもとめることができる(PRML下巻、演習12.1)	
PCA	
  =	
  共分散行列の固有値分解	
  
第i主成分得点 yi	
  =	
  XTui	
  
第i主成分における分散	
  =	
  ui
TXui	
  =	
  λi	
f (u1,λ1) = u1
T
Su1 + λ1(1−u1
T
u1)
ラグランジュ未定乗数法でこの最適化問題を解く	
  
(以下の目的関数を最大化)	
u1で微分する	
∂f (u1,λ1)
∂u1
= 2Su1 − 2λ1u1 = 0
Su1 = λ1u1
よって、u1は共分散行列Sの固有ベクトルだとわかる
補⾜足  :  双対とは
双対問題	
f(x, y) = 2x2 + 3y2を最小にする
(x, y)を求めよ
ただし、x + y = 1とする	
g(x, y) = x + yを最大にする
(x, y)を求めよ
ただし、2x2+3y2 = 3/5とする	
x + y = 1
(拘束条件、固定)	
r=3/5	
r=1	
r=2	
目的関数
g(x, y) = x + y = s
2x2 + 3y2 = 3/5
(拘束条件、固定)	
目的関数	
  
f(x,	
  y)	
  =	
  2x2	
  +	
  3y2	
  =	
  r	
s=0	
s=1/2	
s=1	
どちらかを説いたら、両方解いたことになる関係になる場合、	
  
双対(Dual,	
  Duality)という	
主問題	
これらは本質的に同じ問題を解いている	
  
Dual  PCA
PCAをn×nの共分散行列の固有値分解でも解けるようにしたもの	
  
QモードのPCAともいう(⇄	
  Rモード)	
  
h[p://www2.imm.dtu.dk/pubdb/views/edoc_download.php/5742/pdf/imm5742.pdf	
  
PRML下巻285,	
  286ページ	
1
n −1
XXT
ui = λiui
XXTの固有値分解
(普通のPCA)	
1
n −1
XT
X(XT
ui ) = λi (XT
ui )
左からXT
をかける	
XTXの固有値分解
(Qモード)
1
n −1
XT
Xvi = λivi
viを単位ベクトルとすると、
vi=aXTuiとする
(aは定数)	
| vi |2
= a2
(XT
ui )T
(XT
ui ) = a2
(ui
T
XXT
ui ) = a2
λi (n −1) ui
T
ui =1
vi =
1
(n −1)λi
XT
ui
となり、aが求まるので、XXTとXTX固有ベクトルには、
以下のような関係性があるとわかる(楽なほうで計算すれば良い)
ui = (n −1)λi Xvi
S =p p
p
G =n n
n
Dualn次元ベクトル
(データ次元)
p次元ベクトル
(高次元)
Kernel  PCA(1/3)
高次元空間でのPCA	
  
グラム行列(n×n)の固有値分解	
データ次元空間にあるデータを、より高次元空間に射影する	
  
φという関数を考える	
h[ps://www.dtreg.com/solu3on/view/20	
  
	
高次元空間の方が、よりデータの特徴をとらえられている	
  
可能性があるため、高次元でPCAをしたい	
  
データ次元空間	
  
(例	
  :	
  2D)	
さらに高次元空間	
  
(例	
  :	
  3次元)	
φ	
X	
 Φ	
n	
n	
p	
 p’
Kernel  PCA(2/3)
高次元空間でのPCAは以下の通り	
  
(X→φ、共分散行列がでかすぎて解けない可能性も)	
1
n −1
ΦΦT
ui = λiui
φφTの固有値分解
(普通のPCA)	
ΦTΦにおける
固有値分解
1
n −1
ΦT
Φvi = λivi
S =p' p'
p'
G =n n
n
φの設定の仕方で、この共分散行列は幾らでも大きくなるが(無限大にすら)	
  
Dual	
  PCAにすれば、高々n×n行列の固有値分解として解ける	
  
めちゃくちゃでかく
なりえる	
vi =
1
(n −1)λi
ΦT
ui ui = (n −1)λi Φvi
n次元ベクトル(データ次元)
p’次元ベクトル(超高次元)
yi = ΦT
ui = (n −1)λi ΦT
Φvi
第i主成分得点の求め方もn次元で解決できる	
  
データ数	
Gn
n
n
Dual
Kernel  PCA(3/3)
ΦT
Φそれでも	
  
当然カーネル関数やパラメーターの選び方で、解析結果は大きく影響する	
  
実はカーネル関数κという類似度を返す関数を使うと、	
  
Φ を陽に計算せずに、内積値だけを得る事ができる(カーネルトリック)	
  
どのような関数でも良いというわけではなく、グラム行列が半正定値性	
  
(固有値が全て0以上)を満たすものだけが、カーネル関数になれる	
  
を計算する上で、事前に	
  
を計算しないといけないのでは?と考えられるが	
  
Φ
κ(xi, xj ) = φ(xi )T
φ(xj )
n次元データ同士の
何らかの類似度(軽い)
p’次元データ同士
の内積(重い)
nn p'
p`
RBFカーネル	
  
カーネル関数はいっぱいある	
  
κ(xi, xj ) = exp(−σ xi − xj
2
)
κ(xi, xj ) = αxi
T
xj +c( )
d h[p://crsouza.com/2010/03/kernel-­‐
func3ons-­‐for-­‐machine-­‐learning-­‐applica3ons/	
  
	
多項式カーネル	
  
(p’	
  ×	
  n行列)	
  
なので、カーネル関数でn×n行列(グラム行列)を計算して	
  
(カーネル置換)、固有値分解するだけでよい	
  
p(xi | yi )
Probabilistic  PCA
PCAの確率的解法	
  
xi = Wyi +ε
以下のような確率モデルを考える	
x1	
x1	
x2	
x2	
wy1	
wで射影	
  
(1D→2D)	
等方性	
  
ガウスノイズ	
p(y1)
y1	
潜在空間(主成分)を先に設定	
 wy1	
x1	
wy1	
データのモデルへの	
  
適合度(尤度)を計算	
x2	
p(yi ) = N(yi | 0, I)
p(xi | yi ) = N(xi |Wyi,β−1
I)
←	
  ガウス!	
ガウス!!	
  
↓	
yiの事前分布	
xiの尤度	
例	
  :	
  2次元	
  →	
  1次元
Probabilistic  PCA
このままでは解けないので、尤度をyiで周辺化して、
周辺尤度を最大化する	
p(xi |W,β) = p(xi | yi,W,β)p(yi )dyi∫
= N(xi | 0,WWT
+ β−1
I)
同様の計算を全データに対して行うため、全体の尤度は以下の通り	
  
p(X |W,β) = N(xi | 0,WWT
+ β−1
I)
i
n
∏
この関数を最大化させる(最尤法)	
  
解き方は、最尤法、EMアルゴリズムなど(PRML、第12章)	
  
× →
やっぱりガウス!	
p(y1) p(x | w)p(xi | yi,w)
Probabilistic  PCAの弱点
潜在空間上で、直線上にしかyiは動けない	
  
非線形に拡張したい!	
x1	
x2	
wy1	
x1	
x2	
wy1	
線形モデルで十分	
 線形モデルでは不十分	
陽に非線形な関数を定義せず、カーネル法の枠組み
でPPCAを非線形へ拡張させる	
  
↓	
  
GPLVM
Probabilistic  Dual  PCA
尤度をyではなくWで周辺化したもの	
尤度をWで周辺化	
p(xi | yi,β) = p(xi | yi,W,β)p(W)dW∫
= N(xi | 0,YT
Y + β−1
I)
同様の計算を全データに対して行うため、全体の尤度は以下の通り	
  
p(X |Y,β) = N(xi;d | 0,YT
Y + β−1
I)
d=1
D
∏
Wの事前分布を設定する(D:	
  潜在空間の次元数)	
  
p(W) = N(wd | 0, I)
d=1
D
∏
=
やっぱりガウス!!	
p(W) p(x | y)p(xi | yi )
尤度と共役関係にある	
  
(式が簡単になる)ガウス分布を設定	
=×
p(xi | yi,w)
解析的に解けない
ので、最急勾配法
などで最適化	
  
Probabilistic  Dual  PCA  →  GPLVM
あるデータxiの尤度	
  
p(X |Y,β) = N(xi;d | 0,YT
Y + β−1
I)
d=1
D
∏p(X |W,β) = N(xi | 0,WT
W + β−1
I)
i
N
∏
Probabilis3c	
  PCA	
  
(Yで周辺化)	
Probabilis3c	
  Dual	
  PCA	
  
(Wで周辺化)	
p(xi | yi ) = N(xi |Wyi,β−1
I)
このGを各種カーネル関数で計算することで、非線形化させたもの = GPLVM	
Gn
n
Dual
GC
Cp
p
(周辺化)対数尤度関数	
最適化法	
  
最尤法、EMアルゴリズム	
最適化法(解析的には解けない)	
  	
  
最急勾配法、Scaled	
  Conjugate	
  Gradient	
(周辺化)対数尤度関数	
全データの尤度	
   全データの尤度	
  
log p(X |W,β) = −
N
2
Dln 2π( )+ ln C +tr C−1
S( ){ } log p(X |Y,β) = −
N
2
Dln 2π( )+ ln G +tr G−1
S( ){ }
ちなみに
人の動作のトラッキング研究で最初に適用された経緯から、棒人間がよく登場する	
  
	
  
歩く、飛ぶなど一連の動作は、少数の動作パターンの組み合わせでしかない	
  
→	
  潜在空間で同じところを非線形にぐるぐる回る	
計測データ	
  
(データ空間)	
主成分得点	
  
(潜在空間)	
h[p://www.dgp.toronto.edu/~jmwang/gpdm/2dgpdm.html	
  
	
h[p://www.cs.ubc.ca/~duoli/	
  
	
h[ps://www.youtube.com/watch?v=YLSmvEyJo1U	
  
	
h[p://grail.cs.washington.edu/projects/styleik/	
  
GPLVMの拡張モデル
・	
  Gaussian	
  Process	
  Dynamic	
  Model(GPDM)	
  :	
  GPLVMの時系列データへの拡張	
h[p://www.dgp.toronto.edu/~jmwang/gpdm/	
  
	
・	
  Bayesian	
  GPLVM	
  :	
  GPLVMのベイズ版	
  
	
  →	
  パラメーターの分布、データの予測分布が手に入る	
h[p://inverseprobability.com/vargplvm/	
  
GPLVMの拡張モデル
・	
  Scaled	
  Gaussian	
  Process	
  Latent	
  Variable	
  Model	
  (SGPLVM)	
  :	
  	
  
	
  	
  	
  正規化をほどこしたGPLVM	
  
	
  	
  	
  h[p://www.cvlibs.net/publica3ons/Geiger2007.pdf	
  
・	
  Balanced	
  GPDM	
  (BGPDM) : 潜在空間でより滑らかにフィッティングするGPDM	
比較論文	
  :	
  	
  
Comparing	
  GPLVM	
  Approaches	
  for	
  Dimensionality	
  Reduc3on	
  in	
  Character	
  Anima3on	
  	
  
h[p://www.cs.toronto.edu/~fleet/research/Papers/urtasunCVPR06.pdf	
  
	
・	
  Supervised	
  GPDM	
  (SGPLVM) : ラベル情報も利用したGPLVM(Jiang,	
  X	
  et	
  al.,	
  2012)	
  
バイオ分野での適⽤用事例例
・Characteriza3on	
  of	
  transcrip3onal	
  networks	
  in	
  blood	
  stem	
  and	
  progenitor	
  cells	
  using	
  high-­‐
throughput	
  single-­‐cell	
  gene	
  expression	
  analysis,	
  Nature	
  Cell	
  Biology,	
  2013	
・A	
  novel	
  approach	
  for	
  resolving	
  differences	
  in	
  single-­‐cell	
  gene	
  expression	
  pa[erns	
  from	
  zygote	
  to	
  
blastocyst,	
  Bioinforma2cs,	
  2012	
細胞の分化は8細胞期から始まるという説がある	
  
(Johnson	
  and	
  McConnell,	
  2004)	
  
	
  
single-­‐cell	
  qPCRで遺伝子発現を計測したところ、	
  
普通のPCAでは8細胞期でデータが分かれなかった	
  
	
  
→	
  supervisedなGPLVMでデータを分けることに成功	
  
	
  	
  	
  	
  	
  (ラベルを与えたら、ラベルごとに分かれるのは当たり前では…?)	
GPLVMを血液細胞データ	
  
(single-­‐cell	
  qPCR)に適用
バイオ分野での適⽤用事例例
・Computa3onal	
  analysis	
  of	
  cell-­‐to-­‐cell	
  heterogeneity	
  in	
  single-­‐cell	
  RNA-­‐sequencing	
  data	
  reveals	
  
hidden	
  subpopula3ons	
  of	
  cells,	
  Nature	
  Biotechnology,	
  2015	
・Probabilis3c	
  PCA	
  of	
  censored	
  data:	
  accoun3ng	
  for	
  uncertain3es	
  in	
  the	
  visualiza3on	
  of	
  high-­‐
throughput	
  single-­‐cell	
  qPCR	
  data,	
  Bioinforma2cs,	
  2014	
Single-­‐cellレベルの遺伝子発現データでは	
  
細胞周期による変動が大きい	
  
GPLVMでSingle-­‐cell	
  RNA-­‐Seqデータにおける	
  
細胞周期の影響を補正した	
  
scLVMというツールとして公開(GitHub)	
Single-­‐cell	
  qPCRデータに対して、PCAとGPLVMを比較し
たら、後者のほうがより既知の細胞集団を分離できた
まとめ
•  GPLVM  =  Probabilistic  Kernel  PCA
•  PCA  →  共分散⾏行行列列(XXT)の固有値分解
•  Dual  PCA  →  サンプル側での共分散⾏行行列列(XTX)の固有値分解で解いたPCA
–  嬉しいこと  :  pとnでサイズが⼩小さい⽅方の共分散⾏行行列列で計算すればよい
•  Kernel  PCA  →  ⾼高次元空間でのPCA、グラム⾏行行列列の固有値分解
–  嬉しいこと  :  ⾮非線形への拡張
•  Probabilistic  PCA  →  PCAの確率率率的解法
–  嬉しいこと  :  予測分布が得られる(ベイズなら)、⽋欠損値を扱える
•  GPLVMはKernel  PCAとProbabilistic  PCAの両⽅方の性質を持つ
•  拡張モデルが幾つも提案されている
•  バイオ分野でも多少は使われたことがある

More Related Content

PCAの最終形態GPLVMの解説