コスプレしたアインシュタイン?強力な生成モデルGLIDE
3つの要点
✔️ 言語指示から多様かつ高解像度な画像が生成できるGLIDEを提案
✔️ 言語指示に忠実した生成画像がDALL-Eを超える
✔️ 気軽に使えるミニモデルを公開
GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models
written by Alex Nichol, Prafulla Dhariwal, Aditya Ramesh, Pranav Shyam, Pamela Mishkin, Bob McGrew, Ilya Sutskever, Mark Chen
(Submitted on 20 Dec 2021 (v1), last revised 22 Dec 2021 (this version, v2))
Comments: Published on arxiv.
Subjects: Computer Vision and Pattern Recognition (cs.CV); Graphics (cs.GR); Machine Learning (cs.LG)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめ
ちょうど一年前、OpenAIのテキストから綺麗な画像を生成するDALL-Eが大きな衝撃を世の中に与えました。その後SNS等にGAN系の生成モデルとCLIPを組み合わせた言語指示条件付き画像生成モデルが大いに盛り上がりました。イラストや写真などの画像は言語で簡単に表現できる一方、その制作には労力がかかる場合が多いため、これらのモデルが注目を集めています。
一方で『画像生成でBigGANに勝った?!Diffusion Modelsについて』で紹介されたようにDiffusion ModelがGANの解像度を超えてきました。この流れを踏まえて2021の年末にOpenAIが言語指示条件付きDiffusion Model (GLIDE)を発表したので、本記事はそのGLIDEについて紹介します。
早速GLIDEの生成画像を見てみましょう。複雑かつ細かい言語指示に従った極めて高解像度な画像が生成できています。さらに、これらの画像は学習データには存在しないものも推測できます。例えば、最後の『スーパーヒーロの服を着ているアインシュタインのイラスト』と想像力を働かせる内容でも対応できることに驚きました。
記事の第2章でGLIDEモデルのキーコンセプトとなる言語指示条件付きの方法について説明を行った後、第3章で実験結果(定量及び定性)について紹介します。
GLIDE(言語条件付き拡散モデル)
拡散モデル
近年使われている拡散モデルの多くは、DDPM(Denoising Diffusion probabilistic Models)をベースにしています。
(図はDDPMから)DDPM拡散モデルは拡散プロセス(Diffusion Process)と逆プロセス(Reverse process)と二つのプロセスから構成されます。拡散プロセスはFigure 2のX_0にガウスノイズを加え続けた結果X_Tのように完全なノイズにする過程を指します。逆プロせスはX_Tからスタートして、加えられたノイズを予測し、それを取り除くことでX_0のような画像を生成する過程を指します。
学習するのはパラメータθを持つです。ノイズの入っている画像を入力して、ガウス分布の平均と分散を出力するモデルとなっています。アーキテクチャは先行研究と同様にUNetとし、学習の損失関数はガウスノイズの予測損失となります。
条件付き拡散モデル
拡散モデルは画像x_tを入力とし、ガウスノイズの平均μと分散σを予測するシンプルなモデルです。それに基づいた条件付き拡散モデルは2種類提案されています。それぞれについて紹介します。
1つは平均μに条件付きの制限を加える方法(上記の式)です。画像x_tを分類器(パラメータφを持つ)に入力した際にyと予測する確率が高くなるように、分類器の勾配を重みとして、ガウスノイズの平均μに掛けることで誘導します。sはハイパーパラメータで、分類器による制限の度合いをコントロールする役割を担います。この方法は、拡散モデルと別に分類器を用意する必要があります。メリットは学習済みの拡散モデルをベースに、どんな分類器を用いても実現できます。デメリットは2つのモデルを用意するのにコストがかかることです。
2つ目の方法は分類器を用いません(Classifier-free guidance)。その代わりに、yを条件づけてノイズ予測モデルに入力します。そこで得られたガウスノイズはyに関する情報が持っているため、モデルが予測したガウス分布に重みをかける方法です。Classifier-free guidanceは、ノイズを予測するモデルを2回通すだけで分類器を用意しなくて済みます。ただし、学習したモデルは新たな条件付け方法に対応することができず、毎回改めて学習することになります。
以上のように2種類ある条件付き方法はどちらもメリットとデメリットがあり、トレードオフが存在します。ただし本研究では両方同時に用いて実験を行いました。
言語条件付きの方法
条件付き拡散モデルにおいて、言語条件付きを行うのはシンプルです。例えばCLIP分類器を用いて次のような式で表現できます。
ここでは言語と画像のCLIP潜在空間上の類似度を勾配を算出して、CLIP Guidanceの手法と呼びます。
一方で、分類器なしの方法(Classifier-free guidance)は上記の式のように、ラベルyの代わりに言語指示cを用いて実現できます。
実験
本研究のゴールは高解像度の画像を言語指示から生成することであるため、訓練時に複数の工夫が取り入れています。例えば、35億(3.5 billion)のパラメータを持つ拡散モデルで解像度64x64の画像を生成してから、15億のパラメータを持つアップサンプリング拡散モデルで解像度を256x256にしています。またCLIPモデルを用いて生成過程の画像を評価するため、ノイズ画像に対応するようにNoised CLIPモデルを用意しました。Fine-tuning時にも既存の拡散モデルと異なった設定になっており、詳細を知りたい方は論文の4章(Traning)と公式実装を参考していただけば幸いです。
定量実験
Figure 6では拡散モデルの生成画像の多様性と忠実度のトレードオフが存在することを示しています。(a)図では横軸が解像度で縦軸が多様性の指標となっており、プロットが右に行くにつれて下がっていきます。つまり解像度を高くすると多様性が減り、同じような画像しか生成できなくなります。分類器を使わないClassifier-free guidanceがCLIP guidanceの右上にプロットされているので、精度が良い(同じ多様性でも解像度が高い)です。
生成画像の評価指標としてFID(小さい方が解像度が高い)およひIS(大きい方が解像度も多様性も高い)を用います。(b)図からISスコア(ここでは多様性の指標とみなす)が上がると、FIDが劣化することが分かり、多様性と解像度のトレードオフが存在することが分かります。
また(c)図では、CLIPスコアで生成画像と言語指示のマッチング度合いを測り、CLIP guidanceの方がCLIPスコアを上げながら解像度を維持できることが分かります(訓練時の目的関数として用いたので順当だと考えられます)。
定性実験
ここで紹介する画像以外にも、本論文に興味深い生成例をたくさん載せています。ただし社会的に安全性等に関する懸念が高まるため、OpenAIは人物を取り除いたりしてデータのフィルタリングを行った上、パラメータを小さくしたモデルを公開しています。したがって、公開されたモデルを用いると、例に上げた画像の生成に失敗したり、人物の生成ができなかったりすることがあります。
・Text to Image
Figure に多様なスタイルを含んだ生成例を示しています。1枚目の写真を見ると、水に映っている倒影を含め、真偽の分別ができないレベルに達しています。また2枚目には『星月夜』(starry night)という名作に狐を登場させることに成功しています。GLIDEを強力なツールとした際にアーティストたちがより多様な創作ができるのではないでしょうか。
・Image Editing
ノイズから画像が生成できる拡散モデルの特性を利用して、画像の一部にマスク(ノイズ)を掛けてから画像生成させることで、画像編集がスムーズに実現できます。編集したい部分(緑の部分)をマスクかけて、言語指示を入力すると、欲しいが画像が生成できます。例えば、机の上に花瓶を生成した際、その影も一緒に生成できたことが強力な画像編集ツールとなる証だと考えています。
まとめ
いかがでしょうか?言語で高解像度画像が生成できるGLIDEが他にどのように応用できると思いますか?
2021年1月のDALL-Eから12月のGLIDEまで、言語条件づきで画像生成モデルの性能が大きく上がりました。次の方向性として動画生成や3Dモデルにおける言語条件付き生成モデルの研究が発展していくと個人的に予想しています。またこれでAIモデルが人間の言語を理解できたとは言えないものの、確実な一歩に違いないと思い、今後の更なる発展に期待しております。
この記事に関するカテゴリー