t-SNEを用いた遺伝子データの可視化
立命館大学理工学部数理科学科二回生
谷口泰地
簡単な自己紹介から。。。
勉強してる分野:機械学習
苦手なこと:いっぱいあるけどとりあえず英語
趣味:ラーメンをたまに京都まで食べに行く
Homepage->https://takutori.github.io/
Blog->https://takutori.blogspot.com/
Github->https://github.com/takutori
簡単な自己紹介から。。。
勉強してる分野:機械学習
• Logistic Regression
• Support Vector Machine
• NuralNetwork
• Kernel K-means
簡単な自己紹介から。。。
これから勉強したい:ロジスティクスの輸送最適化
• ロジスティクスとは
• 原材料調達から生産・販売に至るまでの物流、またはそれを管理する
過程。
様々な問題がある。最適化の分野です。
https://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B8%E3%82%B9%
E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9より
概要
1.遺伝子
2.統計的な知識の説明
3.SNEの説明
4.実験
遺伝
イケメン、、、
遺伝
美人、、、
てか、可愛いな
遺伝
遺伝的にどう
違う???
遺伝
遺伝子配列 形質
身長, 体重,etc
決定づける!!
遺伝
そもそも遺伝子とは??
決定づける!!
遺伝
そもそも遺伝子とは??
遺伝子(いでんし)は、ほとんどの生物にお
いてDNAを担体とし、その塩基配列にコー
ドされる遺伝情報である
https://ja.wikipedia.org/wiki/%E9%81%BA%E4%BC%9
D%E5%AD%90 より
遺伝
そもそも遺伝子とは??
遺伝子(いでんし)は、ほとんどの生物にお
いてDNAを担体とし、その塩基配列に
コードされる遺伝情報である
https://ja.wikipedia.org/wiki/%E9%81%BA%E4%BC%9
D%E5%AD%90 より
遺伝
塩基配列には遺伝子情報が詰
まっている
遺伝
全ての塩基が形質に影響して
いるわけではない!!!!
遺伝
SNP(一塩基多形)・・・遺伝情報を決定づける遺伝子配列は、塩基配列で
できている。塩基配列の中で塩基が他と違っているもののことをSNPという。身長
や体重はもちろん、特定の病気にかかりやすい、薬の副作用が他人より強い、など
を決定づける要因。ヒトゲノムでは約30億の塩基の中に約1000万か所あるといわれ
ている。
遺伝
このSNPを分析することが遺伝子と形質
の関係を調べることに役立つ
遺伝
数百,数千の1000万個次元のSNPのサンプルをみて,
「どの個体がどの個体に遺伝的に近い(遠い)」かとい
うのを網羅的にみて,可視化したい.
SNPの高次元行列
二つの行ベ
クトルの距
離を網羅的
に見たい。
何万個体(何万行)もあ
るので一つ一つ見てても
しゃあない。
二つの行ベクトルの距離を網羅的に見たい。
視覚化が一番!!!
距離間を視覚的に掴みたい
視覚化が一番!!!
網羅的に見たいとは??
二次元
三次元
問題点
• SNPは三次元以上どころか1000万次元近くある。
視覚化は無理!!!
と見せかけて無理じゃない!!!
次元削減・・・データの次元を減らすこと
例えば…
•PCA(主成分分析)
•Random Projection
•Linear Discriminant Analysis
単純に次元を減らせばいい
わけではない!
次元削減
•PCA(主成分分析)
データの分散を最大に保つような次元を選ぶ
距離の情報をなるべく残して次元圧縮したい
今回
二次元か三次元まで圧縮すれば、SNPのよう
な高次元データも可視化できる
…距離の情報をなるべく残して次元圧縮
今回
SNE(Distributed Stochastic Neighbor Embedding)
SNE(Distributed Stochastic Neighbor Embedding)
個人1
個人2
個人3
遠い!!
近い!
普通。
遺伝的距離の関係を保ちながら,高次元のデータを二次元のデータ
に変換することで可視化を可能にしたい
N次元
二次元だと距離関係が
直感的につかめる
個人1 個人2
遠いやつは遠くに!!
近いやつは近くに!
普通は適度に。
個人3
Nが大きいと可視化は難しい
X_i
X1
X2
X3
pi1
pi2
pi3
SNE(Distributed Stochastic Neighbor Embedding)
i番目の個体とそれ以外の個体の距離の関係がガウス分布
に従うと仮定する
𝑃 𝑋𝑗 𝑋𝑖 :
離散化された経験的ガウス分布
X_i
X1
X2
X3
pi1
pi2
pi3
SNE(Distributed Stochastic Neighbor Embedding)
i番目の個体とそれ以外の個体の距離の関係を確率分布に
見立てる
𝑝 𝑖𝑗 =
S(i番目の個体とj番目の個体の距離)
S(i番目の個体とそれ以外の個体の距離)の総和
𝑃 𝑋𝑗 𝑋𝑖 :
S(i番目の個体とj番目の個体の
距離)のS(全体)に対する比
X0
X1
X2
X3
p01
p02
p03
SNE(Distributed Stochastic Neighbor Embedding)
𝑝𝑖𝑗 =
exp(− (||𝑥𝑖 − 𝑥𝑗||)2
2𝜎2
)
Σ 𝑘≠𝑙exp(− ||𝑥 𝑘 − 𝑥𝑙||2 2𝜎2)
離散化されたガウス分布
確率分布pi
X0
X1
X2
X3
p01
p02
p03
SNE(Distributed Stochastic Neighbor Embedding)
確率分布p0
個体の数だけ確率分布が存在する
p01
p02
p03
確率分布p3
p01
p02
p03
確率分布p1
p01
p02
p03
確率分布p2
X0
X1
X2
X3
Y1 Y2
p01
p02
p03
q01
q02
q03
𝑝𝑖𝑗 =
exp(− (||𝑥𝑖 − 𝑥𝑗||)2
2𝜎2
)
Σ 𝑘≠𝑙exp(− ||𝑥 𝑘 − 𝑥𝑙||2 2𝜎2)
Y3
𝑌0
埋め込み関数 g
SNE(Distributed Stochastic Neighbor Embedding)
距離の関係を保てるような二次元への埋め込み関数gを探す
X0
X1
X2
X3
Y1 Y2
p01
p02
p03
q01
q02
q03
𝑞𝑖𝑗 =
exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑗)||)2
)
Σ 𝑘≠𝑙exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑙)||)2)𝑝𝑖𝑗 =
exp(− (||𝑥𝑖 − 𝑥𝑗||)2
2𝜎2
)
Σ 𝑘≠𝑙exp(− ||𝑥 𝑘 − 𝑥𝑙||2 2𝜎2)
Y3
𝑌0
埋め込み関数 g
SNE(Distributed Stochastic Neighbor Embedding)
二次元でも同じような確率分布を定義する
g に依って決定する「埋込後」の距離の分布 Q(g)
𝑞𝑖𝑗 =
exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑗)||)2
)
Σ 𝑘≠𝑙exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑙)||)2)
𝑝𝑖𝑗 =
exp(− (||𝑥𝑖 − 𝑥𝑗||)2
2𝜎2
)
Σ 𝑘≠𝑙exp(− ||𝑥 𝑘 − 𝑥𝑙||2 2𝜎2)
SNE(Distributed Stochastic Neighbor Embedding)
この二つの分布をなるべく同じような分布になる
ようにしたい!!
高次元の距離の情報を持った確率
分布p
低次元の距離の情報を持った確率
分布p
𝑞𝑖𝑗 =
exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑗)||)2
)
Σ 𝑘≠𝑙exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑙)||)2)
𝑝𝑖𝑗 =
exp(− (||𝑥𝑖 − 𝑥𝑗||)2
2𝜎2
)
Σ 𝑘≠𝑙exp(− ||𝑥 𝑘 − 𝑥𝑙||2 2𝜎2)
SNE(Distributed Stochastic Neighbor Embedding)
分布間の違いを図る物差しはないのか??
高次元の距離の情報を持った確率
分布p
低次元の距離の情報を持った確率
分布p
p01
p02
p03
q01
q02
q03
𝑞𝑖𝑗 =
exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑗)||)2
)
Σ 𝑘≠𝑙exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑙)||)2)
𝑝𝑖𝑗 =
exp(− (||𝑥𝑖 − 𝑥𝑗||)2
2𝜎2
)
Σ 𝑘≠𝑙exp(− ||𝑥 𝑘 − 𝑥𝑙||2 2𝜎2)
SNE(Distributed Stochastic Neighbor Embedding)
分布間の違いを図る物差しはないのか??
高次元の距離の情報を持った確率
分布p
低次元の距離の情報を持った確率
分布p
KLダイバージェンス
KLダイバージェンス
確率分布: 𝑃, 𝑄
𝐾𝐿 𝑃 𝑄 = ∫ 𝑝(𝑥)𝑙𝑜𝑔
𝑝(𝑥 )
𝑞(𝑥 )
式で書くとこう
一旦、統計学の話へ
目標はKLダイバージェンスを理解する
知っている方はすいません。。。
統計学
1.自己エントロピー
2.平均エントロピー
3.KLダイバージェンス
統計学
1.自己エントロピー
2.平均エントロピー
3.KLダイバージェンス
自己エントロピー
情報量について考えよう
「ある事象Eがおこる確
率が𝑃(𝐸)
としたとき事象Eが起こ
るとわかった時に得ら
れる情報量はどれくら
いか??
今からEが
起こるよ~
自己エントロピー
事象Eが起こるとわかった時の情報量をI(P)とする。
1.加法性
2.減少性
情報量の性質
自己エントロピー
事象Eが起こるとわかった時の情報量をI(P(E))とする。
1.加法性
2.減少性
情報量の性質
自己エントロピー 情報量の性質1(加法性)
事象𝐸1:宝くじ一等が当たって1億円もらえる
事象𝐸2: 競馬で2000万円勝つ
二つは互いに独立な事象
自己エントロピー 情報量の性質1(加法性)
事象𝐸1, 𝐸2が
同時におこるよ~
𝐸_1, 𝐸_2どっちも起
こるのか、マジか!
自己エントロピー 情報量の性質1(加法性)
事象𝐸1, 𝐸2が
同時におこるよ~
𝑰 𝑷 𝑬 𝟏⋂𝑬 𝟐 = 𝑰 𝑷 𝑬 𝟏 + 𝑰(𝑷 𝑬 𝟐 )
互いに独立な事象が起こると
わかった時の情報量はそれぞ
れの情報量の和
自己エントロピー 情報量の性質1(加法性)
事象𝐸1, 𝐸2が
同時におこるよ~
𝑰 𝑷 𝑬 𝟏)𝑷(𝑬 𝟐 = 𝑰 𝑷 𝑬 𝟏 + 𝑰(𝑷 𝑬 𝟐 )
𝑃 𝐸1⋂𝐸2 = 𝑃 𝐸1 𝑃 𝐸2
𝐸1と𝐸2は独立
自己エントロピー
事象Eが起こるとわかった時の情報量をI(P(E))とする。
1.加法性
2.減少性
情報量の性質
自己エントロピー 情報量の性質2(減少性)
事象𝐸1:宝くじ一等が当たって1億円もらえる
事象𝐸2:宝くじで外れる
二つの事象の情報量を比べてみよう!
自己エントロピー 情報量の性質2(減少性)
今から𝐸1
が起こるよ~
宝くじで一億!!!??
自己エントロピー 情報量の性質2(減少性)
今から𝐸2
が起こるよ~
宝くじが外れる?!
まあ、そうですよね。。。
自己エントロピー 情報量の性質2(減少性)
宝くじで一億!!!??
宝くじが外れる?!
まあ、そうですよね。。。
情報量はこっちの
ほうが圧倒的に高
い
自己エントロピー 情報量の性質2(減少性)
つまり情報量は確率が低いほど
高くなる!!!
注意:情報量に我々が感じる価値などは一切考えない。
自己エントロピー
𝐼 𝑃1 𝑃2 = 𝐼 𝑃1 + 𝐼 𝑃2
𝑃1 ≤ 𝑃2ならば𝐼 𝑃1 ≥ 𝐼(𝑃2)
情報量の性質
自己エントロピー
𝐼 𝑃1 𝑃2 = 𝐼 𝑃1 + 𝐼 𝑃2
𝑃1 ≤ 𝑃2ならば𝐼 𝑃1 ≥ 𝐼(𝑃2)
このような性質を満たす関数Iって???
自己エントロピー
𝐼 𝑃1 𝑃2 = 𝐼 𝑃1 + 𝐼 𝑃2
𝑃1 ≤ 𝑃2ならば𝐼 𝑃1 ≥ 𝐼(𝑃2)
このような性質を満たす関数Iって???
答えは−𝐥𝐨𝐠‼
自己エントロピー
定義
事象Eが起こる確率がP(E)の時、その自己エ
ントロピーは
−log(𝑃 𝐸 )
さっきの情報量のこと
統計学
1.自己エントロピー
2.平均エントロピー
3.KLダイバージェンス
平均エントロピー
定義
確率分布Pの平均エントロピーは
𝐸[− log 𝑃 𝐸 ]
平均エントロピー
𝐸 − log 𝑃 𝐸 = − 𝑝 𝑥 𝑙𝑜𝑔 𝑝(𝑥) 𝑑𝑥
期待値の計算
平均エントロピー
平均エントロピー − 𝑝 𝑥 𝑙𝑜𝑔 𝑝(𝑥) 𝑑𝑥は
確率分布の不確定性を示す値
直観と合うか確かめてみよう
平均エントロピー
𝑚𝑎𝑥 −
𝑖=
𝑛
𝑝 𝑥_𝑖 𝑙𝑜𝑔 𝑝(𝑥_𝑖)
ラグランジュの未定乗数法を使う!!
次の最適化問題を考える
subject to 𝑖=1
𝑛
𝑝 𝑥 𝑑𝑥 = 1
簡単のため、離散分布で考えます。
平均エントロピー
min𝐿 𝑝, 𝜆 = 𝑚𝑖𝑛 𝑖=1
𝑛
𝑝 𝑥_𝑖 𝑙𝑜𝑔 𝑝(𝑥_𝑖) + 𝜆( 𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1)
最適化問題を考える
𝜕𝐿
𝜕𝜆
=
𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1 = 0
𝜕𝐿
𝜕𝑝_𝑖
= log 𝑝 𝑥𝑖 + 1 − λ = 0
平均エントロピー
min𝐿 𝑝, 𝜆 = 𝑚𝑖𝑛 𝑖=1
𝑛
𝑝 𝑥_𝑖 𝑙𝑜𝑔 𝑝(𝑥_𝑖) + 𝜆( 𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1)
最適化問題を考える
𝜕𝐿
𝜕𝜆
=
𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1 = 0𝜕𝐿
𝜕𝑝_𝑖
= log 𝑝 𝑥𝑖 + 1 − λ = 0
𝑝 𝑥𝑖 = exp(𝜆 − 1)
𝑖=1
𝑛
𝑝 𝑥_𝑖 = 1
平均エントロピー
min𝐿 𝑝, 𝜆 = 𝑚𝑖𝑛 𝑖=1
𝑛
𝑝 𝑥_𝑖 𝑙𝑜𝑔 𝑝(𝑥_𝑖) + 𝜆( 𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1)
最適化問題を考える
𝜕𝐿
𝜕𝜆
=
𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1 = 0𝜕𝐿
𝜕𝑝_𝑖
= log 𝑝 𝑥𝑖 + 1 − λ = 0
𝑝 𝑥𝑖 = exp(𝜆 − 1)
𝑖=1
𝑛
𝑝 𝑥_𝑖 = 1
代入
平均エントロピー
𝑚𝑖𝑛𝐿 𝑝, 𝜆 = 𝑚𝑖𝑛
𝑖=1
𝑛
𝑝 𝑥_𝑖 𝑙𝑜𝑔 𝑝(𝑥_𝑖) + 𝜆(
𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1)
最適化問題を考える
𝜕𝐿
𝜕𝜆
=
𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1 = 0𝜕𝐿
𝜕𝑝_𝑖
= log 𝑝 𝑥𝑖 + 1 − λ = 0
𝑖=1
𝑛
exp(𝜆 − 1)= 1
平均エントロピー
min𝐿 𝑝, 𝜆 = 𝑚𝑖𝑛 𝑖=1
𝑛
𝑝 𝑥_𝑖 𝑙𝑜𝑔 𝑝(𝑥_𝑖) + 𝜆( 𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1)
最適化問題を考える
𝜕𝐿
𝜕𝜆
=
𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1 = 0𝜕𝐿
𝜕𝑝_𝑖
= log 𝑝 𝑥𝑖 + 1 − λ = 0
𝑖=1
𝑛
exp(𝜆 − 1)= 1 n exp(𝜆 − 1)=1 n exp(𝜆 − 1)=1
平均エントロピー
min𝐿 𝑝, 𝜆 = 𝑚𝑖𝑛 𝑖=1
𝑛
𝑝 𝑥_𝑖 𝑙𝑜𝑔 𝑝(𝑥_𝑖) + 𝜆( 𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1)
最適化問題を考える
𝜕𝐿
𝜕𝜆
=
𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1 = 0𝜕𝐿
𝜕𝑝_𝑖
= log 𝑝 𝑥𝑖 + 1 − λ = 0
n exp(𝜆 − 1)=1 P(x_i) =1/n
𝑝 𝑥𝑖 = exp 𝜆 − 1 に代入
𝜆 − 1=log(1/n)
平均エントロピー
minL 𝑝, 𝜆 = 𝑚𝑖𝑛 𝑖=1
𝑛
𝑝 𝑥_𝑖 𝑙𝑜𝑔 𝑝(𝑥_𝑖) + 𝜆( 𝑖=1
𝑛
𝑝 𝑥_𝑖 − 1)
最適化問題を考える
𝑃 𝑥𝑖 =
1
𝑛
の解は
一様分布
平均エントロピー
一様分布一様分布は全ての
事象が同じ確率で
起こる
一様分布が最も不確
定が高い分布
何が起こるか
わからない
平均エントロピー
次の分布を考える
デルタ分布
∫ 𝛿 𝑥 𝑑𝑥 = 1
𝛿 𝑥 = 0 for 𝑥 ≠ 0
𝛿 0 = ∞
平均エントロピー
𝛿 𝑥 の平均エントロピーは
lim
𝜖→0
−
−𝜖
𝜖
1
2𝜖
log
1
2𝜖
𝑑𝑥
= lim
𝜖→0
1
2𝜖
log
1
2𝜖 −𝜖
𝜖
1 𝑑𝑥
= lim
𝜖→0
−log
1
2𝜖
= −∞
平均エントロピー
・𝛿 𝑥 の平均エントロピーは−∞
・𝛿 𝑥 はx = 0のみ起こる確率分布
𝛿 𝑥 は何が起こるかはっきりしてる->不確定が全くない
平均エントロピー
• 平均エントロピーが高い->不確定性が高い
• 平均エントロピーが低い->不確定性が低い
エントロピーのまとめ
統計学
1.自己エントロピー
2.平均エントロピー
3.KLダイバージェンス
KLダイバージェンス
P:推定したい真の分布
Q:Pの実現値からPを推測した分布
PとQでは情報量はどれくらい違うだろうか???
KLダイバージェンス
P:推定したい真の分布
Q:Pの実現値からPを推測した分布
PとQでは情報量はどれくらい違うだろうか???
− 𝐥𝐨𝐠 𝑷 − − 𝐥𝐨𝐠 𝑸 = 𝐥𝐨𝐠
𝑸
𝑷
KLダイバージェンス
PとQでは情報量はどれくらい違うだろうか???
− log 𝑄 − − log 𝑃 = log
𝑃
𝑄
の期待値をとると
𝑬[𝐥𝐨𝐠
𝑷(𝒙)
𝑸(𝒙)
] =
−∞
∞
𝑷(𝒙)
𝐥𝐨𝐠 𝑷 𝒙
𝑸 𝒙
𝒅𝒙
KLダイバージェンス
𝑬[𝐥𝐨𝐠
𝑷(𝒙)
𝑸(𝒙)
] =
−∞
∞
𝑷 𝒙
𝐥𝐨𝐠 𝑷 𝒙
𝑸 𝒙
𝒅𝒙 =: 𝑲𝑳(𝑷||𝑸)
分布間の違いを図る尺度として使われる。
KLダイバージェンス
話を戻します。
長くなって申し訳ない。。。
𝑞𝑖𝑗 =
exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑗)||)2
)
Σ 𝑘≠𝑙exp(−(||𝑔(𝑋𝑖) − 𝑔(𝑋𝑙)||)2)𝑝𝑖𝑗 =
exp(− (||𝑥𝑖 − 𝑥𝑗||)2
2𝜎2
)
Σ 𝑘≠𝑙exp(− ||𝑥 𝑘 − 𝑥𝑙||2 2𝜎2)
SNE(Distributed Stochastic Neighbor Embedding)
高次元の距離の情報を持った確率
分布p
低次元の距離の情報を持った確率
分布p
この二つの分布をできるだけ近づけるような関数gを知りたい。
KLダイバージェンスを使って目的関数を
作り、gについて最適化をする。
SNE(Distributed Stochastic Neighbor Embedding)
目的関数
目的関数:最適化する関数
𝐶 =
𝑖 𝑗
𝑝𝑖𝑗 log
𝑝𝑖𝑗
𝑞𝑖𝑗
=
𝑖
𝐾𝐿(𝑃𝑖||𝑄𝑖)
SNE(Distributed Stochastic Neighbor Embedding)
目的関数
つまりminC を解きたい。
𝐶 =
𝑖 𝑗
𝑝𝑖𝑗 log
𝑝𝑖𝑗
𝑞𝑖𝑗
=
𝑖
𝐾𝐿(𝑃𝑖||𝑄𝑖)
SNE(Distributed Stochastic Neighbor Embedding)
目的関数
つまりminC を解きたい。
𝐶 =
𝑖 𝑗
𝑝𝑖𝑗 log
𝑝𝑖𝑗
𝑞𝑖𝑗
=
𝑖
𝐾𝐿(𝑃𝑖||𝑄𝑖)
明らかに解析的には無理。
SNE(Distributed Stochastic Neighbor Embedding)
勾配法…数値計算によって最適解を得る手法
アルゴリズム
1.適当な初期値𝑥0を決める
2. 𝑥 𝑘+1 = 𝑥 𝑘 − 𝛼𝑔𝑟𝑎𝑑𝑓(𝑥 𝑘)によってパラメータを更新
3.|𝑓(𝑥 𝑘+1 − 𝑓(𝑥 𝑘)| > 𝜖 なら2に戻る、そうでないなら終了
SNE(Distributed Stochastic Neighbor Embedding)
勾配法…数値計算によって最適解を得る手法
パラメータの更新について
𝑥 𝑘+1 = 𝑥 𝑘 − 𝜶𝒈𝒓𝒂𝒅𝒇(𝒙 𝒌)
変化量が最大の方向に進んでいく!!
SNE(Distributed Stochastic Neighbor Embedding)
SNEの目的関数を勾配法を用いて最適化する
𝜕𝐶
𝜕𝑔𝑖
= 2
𝑗
(𝑔𝑖 − 𝑔𝑗)(𝑝𝑖𝑗 − 𝑞𝑖𝑗 + 𝑝𝑗𝑖 − 𝑞 𝑗𝑖)
SNE(Distributed Stochastic Neighbor Embedding)
SNEの目的関数を勾配法を用いて最適化する
𝑔
𝑘+1
= 𝑔 𝑘 − 𝛼
2
𝑗
(𝑔1 − 𝑔𝑗)(𝑝1𝑗 − 𝑞1𝑗 + 𝑝𝑗1 − 𝑞 𝑗1)
2
𝑗
(𝑔2 − 𝑔𝑗)(𝑝2𝑗 − 𝑞2𝑗 + 𝑝𝑗2 − 𝑞 𝑗2)
⋮
⋮
2
𝑗
(𝑔 𝑛 − 𝑔𝑗)(𝑝 𝑛𝑗 − 𝑞 𝑛𝑗 + 𝑝𝑗𝑛 − 𝑞 𝑗𝑛)
SNE(Distributed Stochastic Neighbor Embedding)
実際にPythonで実装しました。
https://github.com/takutori/Implementation/tree
/master/SNEにコードは置いてあります。
僕のgithubです
ガウス分布の代わりに距離分布 𝑞𝑖にスチューデント
のt分布を使う手法。
𝑞𝑖𝑗(𝑔) =
(1 + (||𝑔𝑖 − 𝑔𝑗||)2
)−1
Σ 𝑘≠𝑙(1 + (||𝑔𝑖 − 𝑔𝑙||)2)−1
データの個数が少ないとき今あるデータの
統計量は真の統計量よりぶれが大きくなる
ことが多い。つまり分散が大きい。
t-SNE:
スチューデントのt-分布
平均は同じで分散が違うガウス分布を無限個足し合わせたもの。
正規分布より裾が長い
正規分布より、少ないデータの外れ値に影響を受けにくくなる。
t-SNEを麦のゲノムデータに適用してみた
1279 個のSNP座位
599個体
599個の
1279次元ベクトル
599個体
3つの量的形質
データ・セット
量的形質とは: 収穫量,色,寿命 などなど 量で図れる形質
V2V1 V3
599個の
3次元ベクトル
R package ”BGLR” 付属の麦のデータ:
形質Vkは環境kにおける収穫量
Rでt-SNEを麦のゲノムデータに適用してみた
1279 次元のベクトルを
2次元に埋め込んでみた結果
色は量的形質を示す
𝑅 =
exp(𝑉1𝑘/𝜏)
max(exp
𝑉1𝑘
𝜏
)
考察:
似た色同士の点が近くに集まっていない。
これはゲノムデータ上のユークリッド距
離では個体の量的形質同士の距離関係を
うまく表現できないことを示している。
𝐺 =
exp(𝑉2𝑘/𝜏)
max(exp
𝑉2𝑘
𝜏
)
𝐵 =
exp(𝑉3𝑘/𝜏)
max(exp
𝑉3𝑘
𝜏
)
t-SNEを麦のゲノムデータに適用してみた2
10000 次元のベクトル,
2263個体分を
2次元に埋め込んでみた結果
ことなる複数の集団から取られた稲の遺伝子データへの適用(ネブラスカ大学農学部提供)
色は集団(生息地・原生地など)
で分けた分類を示す.
オレンジと黄色は違う集団
考察:先ほどとは違い、色毎に分かれて
いるのがわかる。しかし、赤色の点だけ
は全体的に分布している。これは赤色の
集団が遺伝的に偏っていないということ
である。よって、赤色の集団に属してい
る個体達は品種改良に向いていることが
わかる。
今後のプラン
• 形質も考慮できるマハラノビス距離なども考え試す
• 遺伝子の距離関係が集団(生息地・原生地など)の特徴に
どう関連しているか調べる
• 集団構造の特徴とその分散の大きさの関連について調べる
• 実際の麦データ2は20万次元のSNPデータなので,それ
についての実験を実行する
Reference
• https://cs.nyu.edu/~roweis/papers/sne_final.pdf
• https://ja.wikipedia.org/wiki/%E6%83%85%E5%A0%B1%E9%
87%8F
• https://ja.wikipedia.org/wiki/%E6%9C%80%E6%80%A5%E9%
99%8D%E4%B8%8B%E6%B3%95
ありがとうございました。

T-sne

Editor's Notes

  • #90 青の分布は裾のほうの極端な値もあり得ると考えている。
  • #92 tau で色の濃さの極端度をコントロール 0で最極端、結論:二つの個体の間に存在する量的形質の差がゲノム空間上の距離に反映されるように距離を設定しなければいけない。