【初心者向け】Stable Diffusion や Midjourney を支える技術 画像生成入門 1

画像生成とは

こんにちは、機械学習の講師をしているキカガクの谷口です!
唐突ですが、下記の絵画は誰の作品か知っていますか?

実はこれは人間が書いたものではなく、私のリクエストによって AI が書いた作品なんです。リクエスト文は「未来のロボットペンギンと愛」です。このように AI  は文章を元にクオリティの高い画像を作ることができます。(使用したAI モデル: Midjouney)

さらに唐突ですが皆さんこの方をご存知でしょうか?


https://this-person-does-not-exist.com/en

実はこの男性は現実世界には存在しません。StyleGAN という画像生成で生成された人間です。このように画像生成分野は驚くほど進化を遂げており、もはや本物と偽物の区別がつかない画像を生成できます。

ペンギンの絵を書いたり、存在しない人間の顔を作ったりしている クリエイティブな AI こそ、本記事の対象である「画像生成」の代表モデル GAN です。画像生成は、SNSでもとても話題になっており様々なサービスも続々リリースされています。ただし、画像生成への認知は広がる一方、仕組みについて知っている方は多くありません。

画像生成は一見難しそうに見えますが、 すでに多くのお金とリソースをかけて学習されたモデルが公開されており、皆さんのローカル環境でも自由に使うことができます。さらに近年は、開発環境も Google Colabratory など無料の開発環境も充実しており、GANの実装・学習ハードルは数年前と比べるととても低くなっています。

Google Colabratory を初めて聞いた方はこちらを参考にしてください!

【Colab 入門】Google Colaboratory とは?使い方・メリットを徹底解説!

画像生成は全体像を掴みづらく、勉強をはじめにくい分野です。今回の画像生成シリーズでは皆さんと画像生成への一歩を踏み出していきたいと思います。

画像生成は研究段階から社会実装のフェーズに移行しつつあります。 AI が予測だけでなく創造を可能にする技術です。楽しく学んでいきましょう。

対象読者
    • 画像生成の勉強を始めてみたい
    • 話題の最新手法の仕組みまで学んでいきたい初学者
    • 技術の概要を知りたい
    • 簡単な実装してみたい

画像生成入門は全 7 回を予定しています。

画像生成入門
第 1 回 画像生成とは <<< 今回
第 2 回 確率モデルと生成分布
第 3 回 AE とは
第 4 回 VAE 実装
第 5 回 GAN 概要
第 6 回 GAN 実装
第 7 回 状態拡散モデル

画像生成全体像

まずは、画像生成が AI 分野のどの位置にあるのか確認してみましょう。

生成モデルは、いわゆる人工知能に分類されます。深層学習を利用しない生成モデルも存在しますが、トレンドとしては深層生成モデルが優勢なため、今回は取り扱いません。

代表的な生成モデルには、VAE と GAN、そしてトレンドの状態拡散モデル があります。現在までこれらの技術をベースとした多くの派生モデルが開発されてきました。今回はこれらの様々なモデルを 4 種類に分類しました。現状は全て理解する必要はなく、表を眺めて「たくさんあるなぁ」と思ってもらえれば十分です。

派生
大分類
モデル名 概要 論文 メモ
学習安定化 LSGAN
高画質化 StyleGAN
Vector Quantized – VAE 潜在変数を離散値することにより、高品質な画像を生成 link
特殊機能 ConditionalGAN 学習時に条件をあたえることで、意図した画像を生成 link
ConditionalVAE 学習時に条件をあたえることで、意図した画像を生成 link
CycleGAN 画像を一定のルールを持って変換
ex (馬 → シマウマ)
link pix2pix の改良
StackGAN 言語から画像を生成 最近 SNS でトレンドの Midjourney DreamStudio はStackGAN の派生。
画像以外のデータ MuseGAN 音楽を生成 音楽自動生成サービス (free)
GameGAN ゲームを生成 誕生 40 周年を迎えるパックマンを、NVIDIA の研究者たちが AI で再現

上記はほんの一例であり、すべてのモデルを理解することは不可能です。the-gan-zoo (GANの動物園)というGitHubを覗いてみてください。派生系が大量に存在することが体感できます。

生成モデル

生成モデルとはなにか

生成モデルとは、訓練データを学習してそれらと似たデータを生成できるモデルです。訓練データとして猫の画像を利用した場合は、猫の画像を生成することが可能です。本記事の序盤で紹介した、存在しない顔を作成するモデル は、人間の顔を訓練データとして利用しています。VAE と GAN は学習の仕方が異なりますが、基本的にできることは似ています。

識別モデルと生成モデル(VAE・GAN)の概要を確認しましょう。

代表的な生成モデル

本記事の最後に、代表的な生成モデルである VAE と GAN を簡単に紹介します。

その前に、生成器の説明を簡単にしておきます。生成器は生成モデルと混同しやすい言葉ですが別物です。生成器は生成モデルの中に含まれる部品のようなものです

学習フェーズ:学習データと生成モデルを使用、生成器の精度を高める。
推論のフェーズ:生成器を単体で使用、ノイズ z を生成器に入力して画像生成を行う。

つまり、学習フェーズでいかに良い生成器を作れるかが画像生成モデルの品質と直結しています。

VAE と GAN はともに生成モデルです。学習方法が異なります。ただし、良い生成器を作りたいというモチベーションは共通しています。

まとめ

最後に本記事で紹介した用語とその定義をまとめておきます。

  • 画像生成:機械学習などの手法を使用して画像を生成する分野。
  • 識別モデル:訓練データを学習して、入力の条件付き予測確率を出力するモデル。
  • 生成モデル:訓練データを学習してそれらと似たデータを生成できるモデル。
  • 生成器:ランダムノイズ z を入力とし、画像を生成。
  • VAE:代表的な生成モデル、画像の圧縮と復元を通じて、生成器を構築。
  • GAN:代表的な生成モデル、生成器と識別器を競い合わせるように学習して、生成器を構築。

次回は、生成モデルと確率分布の関係について解説予定です。