ステップ9拡散モデルの実装

前ステップでは、拡散モデルの「理論」について学びました。これから拡散モデルの「実装」へと進みます。拡散モデルではニューラルネットワークに「U-Net」と呼ばれるモデルがよく使われます。本ステップでは初めにU-Netについて説明し、その実装を行います。次に、時刻データ(整数データ)を効率良く処理するための「正弦波位置エンコーディング」について学びます。その後に、ガウスノイズを追加する「拡散過程」をひとつひとつ確かめながら実装し、最後にMNISTデータセットを使って拡散モデルの学習を行います。

9.1 U-Net

拡散モデルで使用されるニューラルネットワークは、数式で\boldsymbol{\varepsilon}_{\boldsymbol{\theta}}(\boldsymbol{x}_t, t)と表されます。このニューラルネットワークは図9-1のようにノイズを予測します。

拡散モデルで使われるニューラルネットワーク

図9-1 拡散モデルで使われるニューラルネットワーク

\boldsymbol{\varepsilon}_{\boldsymbol{\theta}}(\boldsymbol{x}_t, t)への入力は、ノイズデータのと時刻です。入力が2つありますが、ここでは初めにを省略した、図9-2のニューラルネットワークを実装します。図9-2が完成した後に、時刻 ...

Get ゼロから作るDeep Learning ❺ ―生成モデル編 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.