Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deep generative modeling for single-cell trans...

Deep generative modeling for single-cell transcriptomics

Avatar for Kazuya Nishimura

Kazuya Nishimura

April 23, 2025
Tweet

More Decks by Kazuya Nishimura

Other Decks in Research

Transcript

  1. Variational AutoEncoder の凄さ知っとるか? 1 00 0 0 00 00 00

    00 0 0 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 𝑧~N(0, 1) Encoder Decoder 𝜇 𝜎 ||𝑥 − ො 𝑥||2 𝑥 ො 𝑥 ベイズを使いこなし, データの自然な表現を獲得することで ノイズ, バイアスの補正が可能! 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 333 3 3 3 3 3 3 3 Point 1:
  2. ノイズを含む&正解不明の場合どないする? 2 遺伝子を発現 (分子を生成) … シーケンサー N次元ベクトル … Counts 細胞の状態や活動を反映

    細胞形態情報も保有 遺伝子発現 細胞 遺伝子 Point 2: … ノイズとバイアスの影響が大きい& 正解も不明 数万種類の遺伝子を観測 細胞種は同じでも 患者で分布
  3. Deep generative modeling for single-cell transcriptomics 3 論文概要: VAE に基づく方法でノイズとバイアスを除去した空間を取得する方法

    Physics informed neural network に近い? 入力データの分布 潜在空間 Encoder Decoder ノイズとバイアスの影響を除去した空間を得たい ノイズの対策 確率モデルに基づいて設計! バイアスの対策 課題となる実験条件をdisentanglement 入力データの確率分布
  4. 事前知識を活用した教師なし表現学習 4 問題設定のおさらい: … … … … 目標 ノイズ,バイアスを除去した空間の獲得 入力

    細胞毎の遺伝子発現 与えられる情報  使える細胞種ラベルはなし  データの性質は既知 ✓ データの取得過程でノイズが入る可能性がある箇所 ✓ 実験条件に起因したバイアスが存在
  5. 確率分布を考えるとノイズに頑健になる!?  ニューラルネットの出力の確率分布を考える  確率分布を考えることによる違い 5 ノイズの対策: 𝑥 NN ො

    𝑦 Loss = 𝑦 − ො 𝑦 2 𝑥 NN Loss = −logP 𝑦 , P 𝑦 ~𝑁 𝜇, 𝜎 . = −log 1 2𝜋𝜎2 e− 1 2𝜎2 𝑥−𝜇 2 ∝ − 1 2𝜎2 𝑥 − 𝜇 2 + 1 2 log 𝜎2 𝜇, 𝜎 MSEの学習 出力が正規分布に従うと考えた学習 MSE データに関わらず一定 正規分布の−logP 𝑦 データの分散に合わせて関数が変化 𝜎大 𝜎小 出力が分布の パラメータ
  6. VAEの出力を分布に変更 6 𝑧~N(0, 1) Encoder Decoder 𝜇 𝜎 … …

    … … −logP 𝑥 出力を分布のパラメータに 目的関数を確率分布に 実はすでにここも分布で微分 できるようにする工夫あり ノイズの対策: 𝑥 𝒙 はどんな分布に従う?→モデル化して考えよう!
  7. VAEの出力を分布に変更  遺伝子の個数を観測 → 離散分布の何か 7 ノイズの対策: ポアソン分布? あるイベントが一定の時間内に発生する回数を示す 遺伝子を観測

    ポアソン分布でも良いが 経験的に平均,分散が等しくないことが分かってる 負の二項分布 𝑟 回成功するまでの失敗回数 𝑥 𝑥+𝑟−1 𝐶𝑥 𝑝𝑥 1 − 𝑝 𝑟 気持ち的にはポアソンより自由度が高い分布を採用 正確にいうと下記のようにモデル化 真の発現 遺伝子発現の真の分布 (連続分布) 実際の観測の分布 観測機の遺伝子の 観測しやすさ 混合分布を頑張って計算すると Negative binomial と同じになる
  8. VAEの出力を分布に変更 8 Decoder −logP 𝑥 = − log 𝑥+𝑟−1 𝐶𝑥

    𝑝𝑥 1 − 𝑝 𝑟 = ノイズの対策: P 𝑥 にNBの確率密度関数を代入 実は pytorch にも分布の負の対数尤度で学習するライブラリが Loss 関数
  9. Disentanglement って何だっけ? 9 バイアスの対策: Encoder Decoder 車種 色 向き …

    潜在空間で構成要素に分解 z 𝛽VAEなどが有名 𝛽でdicentanglementできるよ
  10. 実験条件をdisentanglement したい 10 バイアスの対策: 入力データの分布 Encoder Decoder 細胞毎 の発現 患者

    z 入力データの確率分布 患者の要素の分離をしたい 潜在空間に患者情報が残るのは再構成のために患者情報が必要だから? Decoder に患者の扱いを任せてしまえばいい? アイデア:
  11. 実験条件をdisentanglement したい 11 バイアスの対策: 入力データの分布 Encoder Decoder 入力データの確率分布 𝑠 患者ラベル

    𝑧 入力から求める 患者ラベルで条件付け P(x|z,p) 実験条件を Conditional VAE の condition として使用する 入力のdistribution 潜在空間のdistribution
  12. Single cell VAE の概要 [Lopez+, nature method 2018] 12 Encoder

    𝑞(z|x) 個数 Gene 1 4 Gene 2 0 … … Gene N 13 𝑥𝑖 :遺伝子発現 𝑠: 患者𝐼𝐷 𝜇 v 𝑧1 𝑁(𝜇, v) 𝑠 患者ID 𝑥𝑖 ~𝑁𝐵 𝑝, 𝑟 r: 失敗回数 p: 成功確率 𝑧1 ~𝑁 0, 1 𝑙 ~ LogNormal(𝑙𝜇 𝑠𝑛 , 𝑙𝜎 𝑠𝑛 ) 𝐾𝐿(𝑞(𝑧1 |𝑥)||𝑝(𝑧1 )) 𝑧 = 𝑞𝑚 𝑞 𝑥𝑖 + 𝜖 𝑞𝑣 (𝑞(𝑥𝑖 )) 𝑧~𝑁 0, 1 , 𝑧 ∈ 𝑅𝑁𝑙 𝜇 = 𝑞𝑚 𝑞 𝑥𝑖 𝑣 = 𝑞𝑣 (𝑞 𝑥𝑖
  13. Single cell VAE の概要 [Lopez+, nature method 2018] Encoder 𝑞(z|x)

    個数 Gene 1 4 Gene 2 0 … … Gene N 13 𝑥𝑖 :遺伝子発現 𝑠: 患者𝐼𝐷 𝜇 v 𝑧 𝑁(𝜇, v) 𝑠 患者ID 𝑥𝑖 ~𝑍𝑁𝐵 𝑟, 𝑝, 𝜋 r: 失敗回数 P: 成功確率 𝜋: zeroになる確率 𝑧1 ~𝑁 0, 1 𝐿𝑒𝑙𝑏𝑜 = 𝐾𝐿(𝑞(𝑧1 |𝑥)| 𝑝 𝑧1 − 𝔼𝑞(𝑧|𝑥) [log 𝑝(𝑥|𝑧1 )] 𝑙 ∈ ℝ𝑁𝑠 𝜇 𝜎 ∈ ℝ𝑁𝑔 Trainable vector 𝑁𝐵 𝑝, 𝑟 𝑝𝑠 Softmax Decoder p(x|z, s) 13 𝑙 = log(∑𝑥)
  14. まとめ 目標: 事前知識を持ちいた教師なし表現学習 手法: ベイズに基づいてモデル化したVAEを使用 実験: Clustering, imputation の性能を比較 感想:

    ✓ 最近の disentanglement の手法に詳しくないが, VAEは4年前くらいにCV流行った手法なので改善ができるかも? ✓ ベイズの考えを使うと label-efficient に良さそう → ちゃんと勉強しなければ… ✓ 色んなタスクに転用可能? 19
  15. 補足:scVI は使い回しができそう 20 𝜇 v 𝑧 N(0,1) 𝒈𝑖 𝑏 ZNB

    𝑙 𝜌 𝜋 × 𝜃 … 𝑓𝑒1 𝜇 , 𝑓𝑒1 𝜎 𝒙𝑖 𝒆𝑣 𝐺 𝑆𝑣𝑔 … … … 𝑉 … 𝑓𝑒𝑛𝑐 𝑣 … … 𝒈𝑖 𝒆𝑔 … Step. 1: encoder 獲得のためscVI を学習 Step. 2: contrastive learning 遺伝子からsemantic 情報の取得が可能