【要約】生成モデル三国志、最後の流派。Normalizing Flowをnumpyで一から実装したら、一番静かに学習が終わった [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
生成モデルの開発において、学習の不安定さや評価の困難さが課題となる。筆者は、既存の生成手法が抱える以下の問題に注目した。
- ・GANにおける、生成器と識別器の拮抗による学習の振動。
- ・拡散モデルにおいて、特定の点における厳密な確率密度が算出できない点。
- ・生成された分布が理論値に収束しない不安定さ。
// Approach
筆者は、可逆な変換を積み重ねるNormalizing Flowの手法を採用した。アフィンカップリング層を用いて、以下の手順で実装を行った。
- ・入力の一部を固定し、MLPで算出する係数を用いて他方を変形。
- ・ヤコビアンが対角行列になる構造により、対数尤度を厳密に計算。
- ・最終層の重みをゼロ初期化し、恒等変換から学習を開始。
- ・6層の構成で、30,000イテレーションの学習を実施。
// Result
実装の結果、Normalizing Flowは極めて安定した学習性能を示した。筆者は、以下の定量的な成果を得た。
- ・再構成誤差 2.07×10⁻¹⁴ という機械精度レベルの可逆性。
- ・負の対数尤度が 4.39 から 2.38 へ単調に減少する安定した収束。
- ・厳密な確率密度地図の作成。ただし、位相的制約による密度の「ブリッジ」も確認された。
Senior Engineer Insight
> 実戦投入の観点では、異常検知への適用が最も現実的だ。密度推定の厳密さは、近似的な拡散モデルにはない強みである。一方で、位相的な制約による「ブリッジ」は、複雑なデータ構造の再現において致命的な欠陥になり得る。スケーラビリティの面では、次元を維持する必要があるため、高次元データへの適用には層の設計が極めて重要となる。学習の安定性は運用コスト低減に寄与するが、表現力のトレードオフを理解した設計が求められる。