122 Views
May 22, 25
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2025年度前期輪読会 生成Deep Learning #5 (5/22) 7.1~7.3 エネルギーベースモデル 京都大学 理学部 2回生 ALAWIK Abdourrahman 0
アジェンダ ◼ 統計力学の復習 ◼ エネルギー関数 ◼ ランジュバン動力学 ◼ コントラスティブダイバージェンス 1
統計力学の復習:カノニカルアンサンブル • 統計力学:多粒子系のマクロな情報とミクロな情報を確率論的に結びつける物理学の分野 • カノニカルアンサンブル:系を熱欲に接することによって一定の温度 T に保たれたときに、 平衡状態において出現可能ミクロな状態 X が出現する確率は X のエネルギー E(X) のみに依 存し、次式のボルツマン分布で与えられる:(ただし、ボルツマン定数は 𝑘𝐵 = 1 と定める) 𝐸 𝑋 − 𝑇 𝑒 𝑃 𝑋 = 𝑍(𝑇) 𝑍 𝑇 𝐸 𝑌 − 𝑇 =න𝑒 𝑌 • エネルギーが低いほど状態が出現する確率は高い • 規格化因子の計算は、非常に理想化された一部の場合を除いて、計算不可能! 2
エネルギー関数 • 画像 x をスカラー値に変換するニューラルネットワーク 𝐸𝜃 (𝑥)を、カノニカルアンサンブルと 同様に、確率が高いほどの画像に低いスコアを与えるように訓練したい。 • Conv2D層の積み重ね • Swish (SiLU) 活性化関数(右図参照) 𝑥 • swish 𝑥 = 𝑥 ∙ sigmoid 𝑥 = −𝑥 𝑒 +1 • ReLUと違って滑らかなため、勾配消失を緩和する • 最終層は線形活性化関数を持つ1つの全結合型ノード • 出力は(-∞,∞)のスカラー 3
エネルギー関数 実装例 (1,32,32) (16,16,16) (32,8,8) (64,4,4) (64,2,2) (256) (64) (1) 4
ランジュバン動力学によりサンプリング Q:エネルギー関数が与えられたとして、どうやってサンプリングするのか? A:ランジュバン動力学! (Langevin Dynamics) • カノニカルアンサンブルを近似できる統計力学のモデル アイディア:ランダムな初期値で出発し、パラメータを固定しながら入力について勾配降下法を 行い、エネルギー関数を最小化する方向にサンプル空間を移動する • その際、入力に少量のランダムノイズを加える必要(局所極小に陥ないため) 5
ランジュバン動力学の実装 𝑥 𝑘 = 𝑥 𝑘−1 − 𝜂∇𝑥 𝐸𝜃 𝑥 𝑘−1 + 𝜔 𝑥 0 ~𝑈 −1,1 𝜔~𝑁(0, 𝜎) 6
コントラスティブダイバージェンスによって訓練 Q:エネルギー関数はどのように訓練するのか? A:コントラスティブダイバージェンス (by Geoffrey Hinton 2002)! 目的:対数尤度関数を最小化したい:ℒ = −𝔼𝑥~data [log 𝑝𝜃 (𝑥)] 𝑒 −𝐸(𝑥) • 確率関数 𝑝𝜃 (𝑥) はエネルギー関数に関するボルツマン分布:𝑝𝜃 (𝑥) = 𝑒 𝑦−𝐸(𝑦) • しかし、 𝐸(𝑥) が分かっても、積分の計算は困難! • 𝑝𝜃 (𝑥) を明示的に解かずに上記の尤度を最適化できないのか? 定理:∇𝜃 ℒ = 𝔼𝑥~data ∇𝜃 𝐸𝜃 𝑥 − 𝔼𝑥~model ∇𝜃 𝐸𝜃 𝑥 • 真のサンプルについてエネルギー関数を小さくし、偽のサンプルについては大きくする 7
コントラスティブダイバージェンスの実装 Buffer STEP 1: modelをサンプリングするBuffer関数: • ランダムノイズのバッチから出発 • サンプリング毎に、既存バッチから抽出したミニバッチとランダムノイズの小さなミニバッチ をmodelに通し、出力をバッチに付け加える 8
コントラスティブダイバージェンスの実装 訓練 STEP2:訓練 cdiv_loss はコントラスティブダイバージェンスの式通りのロス reg_loss はエネルギー関数の値が大きくなりすぎないよう 実装 https://colab.research.google.com/drive/1K4q0ewP_P2qZphGcDZc5GPVx9a0s6s7T?usp=sharing 9
その他のエネルギーベースモデル • ボルツマンマシン • 訓練はコントラスティブダイバージェンス • サンプリングはGibbsサンプリング • 制限付きボルツマンマシン • ランジュバン動力学 → スコアマッチング →ノイズ除去拡散確率モデル 10