← 記事一覧に戻る

連載「生成モデルを一から実装する」

公開順に読み進められる連載です。

  1. 完全なノイズから、三日月形が本当に浮かび上がってくるのか。拡散モデル(DDPM)を自分で実装して確かめてみた

    DDPMをNumPyだけで実装し、ノイズからtwo moonsを生成。前向き過程・ノイズ予測・逆向き更新を図とコードで解説します。100ステップ設定で終端に信号が残る問題も訂正・補足しました。

  2. GAN(敵対的生成ネットワーク)を一から実装したら、損失は理論値に収束したのに生成分布は最後まで揃わなかった

    GAN(敵対的生成ネットワーク)をnumpyで一から実装し、生成器と識別器の学習過程を追った実験記録。損失は理論値0.693に収束したのに生成分布は最後まで本物と揃わなかった。GANの学習が難しいと言われる理由を、自分のコードの挙動として確認した。

  3. 生成モデル三国志、最後の流派。Normalizing Flowをnumpyで一から実装したら、一番静かに学習が終わった

    Normalizing Flow(正規化流、RealNVP型)をnumpyだけで実装した記録。可逆なアフィンカップリング層を6枚重ねてガウス分布をtwo moonsに変形し、逆変換の再構成誤差2.07×10⁻¹⁴を確認。拡散モデル・GANと同じデータで学習過程を比較します。

  4. VAEをtwo moonsでnumpyから実装したら、再構成で2つの三日月が1本のなめらかな曲線に融合した

    VAEをNumPyで実装し、two moonsの再構成と生成を可視化。再構成MSEは0.4026で、2つの弧がつながる結果に。潜在空間とKL項、Flowとの比較で注意する点を解説します。