生成モデル:概要
はじめに
本記事は、最近生成モデルについて勉強している私が、自分の理解をアウトプットする場として作成したものです。せっかく世に公開するからには単なる個人的メモではなく、人が読んでわかるように書きたいと考えています。
具体的には、これから生成モデルについて勉強しようと考えている方が読んで意味のある記事を目指して書いています。
生成モデルに関する解説記事は、既に数多くありますが、私なりの理解の方法が他の誰かの学習の一助となれば幸いです。
本記事の目的
本記事では、生成モデル*へのイントロダクションとして、一般論について簡単に紹介します。
生成モデルには様々なモデルがありますが、ここではメジャーなモデルに(ある程度)共通する考え方を説明します。
後続の記事にて、以下の具体的なモデルの詳細を解説したいと考えており、本記事はその前段にあたります。
- VAE(Variational AutoEncoder)
- 拡散モデル
- Flowベースモデル
*注) 本記事では、ひとまず言語モデルは対象外とします。
生成モデルとは?
生成モデルとは、「あるドメインのデータの分布をうまく表現したモデル(確率分布)で、その分布に従ってデータのサンプリングが容易なもの」と私は理解しています。
様々なモデルが存在しますが、個々のモデルは以下の3要素を意識して整理すると見通しが良くなります。
【生成モデルを理解するための3要素】
-
確率分布族
の表現方法p_\theta - どの範囲から真の分布に近い分布を探すか?
-
学習方法
- 良い
の定義、およびその求め方\theta
- 良い
-
サンプリング方法
- 最適な
において、\theta=\theta^* からデータを生成する方法p_{\theta^*}
- 最適な
本記事の目的でも述べた通り、後続の記事では下記の3モデルの解説を行いたいと考えています。その際には、ここで述べた観点に従って整理を行う予定です。
- VAE(Variational AutoEncoder)
- 拡散モデル
- Flowベースモデル
生成モデルでよく使われる考え方
本項目では、今後紹介予定のモデルに(ある程度)共通する考え方を紹介します。
p_\theta の表現方法
1. 確率分布族上記3モデルはいずれも、扱いやすい分布(正規分布であることが多い)を何らかの方法で変換することで分布を表現します。この変換に
具体的な実現方法は各モデルによって異なるので、「変換」という曖昧な表現を採用ました。
例えば、確率分布を考える空間上の可逆な写像を考えたり(Flowベースモデル)、確率的な変動を何ステップも加えていく(拡散モデル)などの方法があります。
2. 学習方法
基本的には最尤推定によって
を望ましい値と設定します。ただし、実際には上記の最適解を求めることは困難であり、代替手段を考える必要があります。ここでは対数尤度の代表的な代替物として、ELBOについて触れておきます。
式をシンプルにするため、以下データは1点
また、1つ仮定を設けます。今扱うモデルは潜在変数
と表されるとします(VAE、拡散モデルはこのパターンに該当)。一般に、
最右辺はELBO(Evidence Lower BOund)と呼ばれ、対数尤度の代わりにこの値を最大化するようにモデルを学習させる場合があります(対数尤度は常にELBOよりは大きいので、ELBOを最大にするような
※ちなみに、最後の式変形ではJensenの不等式を用いました。
Jensenの不等式
この時、
が成立する(ここで、
3. サンプリング方法
1では確率分布を単純な分布に何らかの変換を施すことによって複雑な分布を表現する方法を紹介しましたが、サンプリングの方法もまさにそのステップ通りです。
元となる分布に従い1つデータ
※変換はモデルによって決定的であったり、確率的であったりします。
まとめ
本記事では、生成モデルとは何かを概観し、代表的なモデルに共通するアイデアをいくつか紹介しました。今後、具体的なモデルの解説記事も執筆する予定です。
最後に、本記事を作成する際に参考にした資料です。
Discussion