画像生成技術の進化 ~GANからディフフュージョンモデルまで~

画像生成技術の進化 ~GANからディフフュージョンモデルまで~
Photo by Rock'n Roll Monkey / Unsplash

こんにちは!株式会社Qualiteg研究部です!

今日は画像生成技術について投稿いたします。

みなさまご存じの通り人工知能による画像生成技術は、過去10年間で急速な進化を遂げました。

今年は2024年。ちょうど2014年に「GAN」がでて10年です。


テキスト系生成AIの勢いがすごい昨今ですが、画像生成AI、超解像AIからの動画生成AIなどコンピュータビジョンかいわいも大きく進化を遂げていますね。

本記事では、主にGenerative Adversarial Networks (GAN)とディフフュージョンモデルに焦点を当て、画像生成技術の歴史的な発展を振り返ります。特に、これらの技術が画像生成と超解像の分野でどのように応用されてきたかを詳しく見ていこうとおもいます。

ブログ本編の前に! ダイジェスト動画あります!

本ブログのダイジェストを以下の動画で語っておりますので、よろしかったらこちらもご覧くださいませ!

GANとディフュージョンモデル

GANとは

GAN(Generative Adversarial Network)は、2014年にIan Goodfellow(イアン・グッドフェロー)氏らによって提案された深層学習モデルです。氏は、Google Brain(英語: Google Brain)を経て2019年3月よりAppleの機械学習研究チームにいるらしいですね。

GANは以下の2つの主要な要素から構成されています

  1. Generator(生成器)
    ランダムなノイズから、本物らしいデータ(例:画像)を生成します。
  2. Discriminator(識別器)
    与えられたデータが本物か偽物(Generatorが生成したもの)かを識別します。

GANの学習プロセスは、GeneratorとDiscriminatorが互いに競争しながら進行します:

  • Generatorは、Discriminatorを騙すようなデータを生成しようと努めます。
  • Discriminatorは、本物のデータとGeneratorが生成したデータを区別しようと努めます。

この敵対的な学習過程を通じて、Generatorは徐々に本物のデータに近い、高品質なデータを生成できるようになります

GANの主な特徴

  • 高品質で多様なデータ生成が可能
  • 教師なし学習の一種として機能
  • 様々な応用(画像生成、スタイル転送、超解像など)が可能

つぎはディフュージョンモデルをみてみましょう

ディフフュージョンモデル

ディフフュージョンモデルは、2015年に基礎理論が提案され、2020年頃から画像生成分野で注目を集めるようになりました。

理論自体はGANに近いときに既に考え出されてたんです。

  1. 逆拡散過程
    ノイズから徐々に画像を生成する過程を学習します。
  2. スコア関数
    画像の確率密度の勾配(スコア関数)を直接モデル化します。

ディフフュージョンモデルの学習プロセス

  • 画像にノイズを少しずつ加えていく過程(順拡散過程)をシミュレートします。
  • その逆過程(逆拡散過程)をモデル化し、ノイズ除去の方法を学習します。

ディフュージョンモデルは、画像空間上の確率密度関数p(x)を直接モデル化するのではなく、スコア関数s(x) := ∇x ln p(x)を学習します。このアプローチには以下の利点があります

  1. 正規化の不要性
    p(x)の代わりにC・p(x)を用いることができ、定数Cの具体的な値は計算に影響を与えません。
  2. 局所的な比較
    近傍画像との確率比較が容易になります。

スコア関数の学習は、noising-denoisingプロセスを通じて行われます。このプロセスでは、画像にガウス雑音を加え、その雑音を除去する過程を学習します。

ディフュージョンモデルの主要な変種

  1. 分類器誘導
    • 条件付き画像生成を実現
    • ベイズの定理を用いてp(x|y) ∝ p(y|x)p(x)を導出
  2. 温度の導入
    • 逆温度βを用いて生成画像の品質を制御
    • βが大きいほど、最尤推定値に近い画像を生成
  3. 分類器フリー誘導(CFG)
    • 外部分類器なしで条件付き生成を実現
    • モデル自体から分類器を抽出

GANとディフフュージョンモデルの比較

GAN ディフフュージョンモデル
基本構造 Generator と Discriminator の2つのネットワーク 単一のノイズ除去ネットワーク
学習プロセス 敵対的学習(2つのネットワークの競争) 逆拡散過程の学習(段階的なノイズ除去)
生成プロセス ノイズから一度に画像を生成 ノイズから徐々に画像を形成
学習の安定性 やや不安定(モード崩壊などの問題あり) 比較的安定
生成速度 速い 遅い(多段階のプロセスが必要)
多様性 モード崩壊の問題あり 高い多様性を実現しやすい
制御性 条件付けが比較的難しい 生成過程の各段階で柔軟な制御が可能

GANとディフュージョンモデルは、どちらも画像生成の分野で革新的な技術ですが、そのアプローチと特性には大きな違いがあります。

GANは、GeneratorとDiscriminatorという2つのネットワークが競争しながら学習を進める「敵対的学習」を特徴としています。この方式により、GANは高速な画像生成と鮮明な結果を実現しています。しかし、学習が不安定になりやすく、生成される画像の多様性が制限される「モード崩壊」という問題も抱えています。

一方、ディフュージョンモデルは単一のノイズ除去ネットワークを使用し、ノイズから画像へと徐々に変換していく過程を学習します。このアプローチにより、学習がより安定し、高い多様性を持つ画像を生成しやすいという特徴があります。また、生成過程の各段階で細かい制御が可能なため、テキストから画像を生成するなど、より複雑なタスクに適応しやすい面もあります。ただし、多段階の生成プロセスのため、GANと比べて画像生成に時間がかかり、より多くの計算リソースを必要とします。

GANとディフフュージョンモデルの進化

では、GANとディフフュージョンモデルの主要な進展を時系列でみてみましょう。

GAN ディフュージョンモデル
2014 - GANの提案 (Ian Goodfellow et al.)
- Conditional GANの登場
2015 - DCGANの開発 - 非平衡熱力学を応用した基礎理論の提案 (Jascha Sohl-Dickstein et al.)
2016 - VGANの提案
- SeqGANの開発
2017 - CycleGANの登場
- Wasserstein GANの提案
- StackGANの開発
- SRGANの提案(超解像)
2018 - ProGANの開発
2019 - StyleGANの登場 - DDPMの提案
2020 - DDPMの改良 (Jonathan Ho et al.)
2021 - GLIDEの開発 (OpenAI)
- SR3の提案(超解像)
2022 - Stable Diffusionの公開

GANとディフュージョンモデルの進化は、画像生成技術の発展を如実に示しています。

GANは2014年にIan Goodfellowらによって提案され、画像生成の分野に革命をもたらしました。翌2015年にはDCGANが登場し、より安定した学習と高品質な画像生成を実現しました。2017年には画像変換を可能にするCycleGAN、学習安定性を向上させたWasserstein GAN、そして超解像技術のSRGANが登場し、GANの応用範囲が大きく広がりました。2018年にはProGANが高解像度画像の生成を可能にし、2019年のStyleGANは多様なスタイルと特徴を持つ画像生成を実現しました。

一方、ディフュージョンモデルは2015年に非平衡熱力学を応用した基礎理論が提案されましたが、画像生成分野で注目を集めるまでにはしばらく時間がかかりました。2019年にDDPM(Denoising Diffusion Probabilistic Models)が提案され、2020年にはJonathan Hoらによってさらに改良されました。2021年にはOpenAIがGLIDEを開発し、テキストから画像を生成する能力が大幅に向上しました。また同年、超解像技術のSR3も提案されました。2022年には、Stability AIによるStable Diffusionの公開により、高品質な画像生成が一般にも利用可能になりました。

この間、GANは早くから高品質な画像生成を実現し、多様な応用を見せました。一方、ディフフュージョンモデルは後発ながら、安定した学習と高い制御性を武器に急速に発展し、近年では画像生成の主流となりつつあります。両技術とも、テキストから画像生成や超解像など、より複雑なタスクへの挑戦を続けており、今後もさらなる進化が期待されています。

「超解像」技術と進化

超解像は、低解像度の画像から高解像度の画像を生成する技術です。
GANとディフュージョンモデルの両方が、この分野でも重要な役割を果たしていますので、そちらもみていきましょう。

なぜ超解像が必要なのか

超解像技術が重要視される理由は複数あります。

  1. 既存の低解像度画像の品質向上
    古い写真やビデオ、低品質なデジタル画像を高解像度化し、詳細を復元することができます。
  2. ハードウェアの制限の克服
    カメラやセンサーの物理的制限により得られる低解像度画像を、ソフトウェア的に高解像度化することが可能です。
  3. データ転送と保存の効率化
    低解像度で転送・保存し、必要に応じて高解像度に変換することで、ネットワークやストレージの負荷を軽減できます。
  4. 機械学習モデルの出力拡大
    多くのvggなど画像生成モデルは、計算効率の観点から224x224ピクセルのような比較的小さなサイズの画像で学習されています。これらのモデルを実際の動画や大型ディスプレイ用の画像生成に使用する場合、生成された画像を拡大する必要があります。この拡大プロセスで超解像技術が重要な役割を果たします。

動画向け時系列超解像の技術開発

近年、動画コンテンツの需要増加に伴い、動画向けの時系列超解像技術の開発が盛んになっています。この技術は、単に各フレームを個別に超解像するのではなく、フレーム間の時間的な連続性を考慮して高品質な動画を生成することを目指しています。

  1. フレーム間の一貫性維持
    時系列超解像では、隣接するフレーム間の一貫性を保ちながら各フレームを超解像することが重要です。これにより、ちらつきやアーティファクトのない滑らかな動画を生成できます。
  2. 動き補償と推定:
    物体の動きを正確に推定し、それに基づいてフレーム間の情報を適切に統合することで、より精細で自然な動きを再現します。
  3. 時空間的な特徴抽出
    3次元畳み込みニューラルネットワークや再帰型ネットワークを用いて、時間軸も含めた特徴抽出を行い、より豊かな時空間的情報を活用します。
  4. リアルタイム処理への挑戦
    動画のストリーミングやライブ配信に対応するため、リアルタイムで動作する高速な時系列超解像アルゴリズムの開発が進められています。
  5. 長期的な時間依存性の考慮
    長い時間スケールでの一貫性を保つため、より広い範囲のフレームを考慮に入れた超解像手法の研究も行われています。

最新の研究動向

  1. TecoGAN (Temporally Coherent GAN)
    時間的一貫性を維持しながら高品質な動画超解像を実現するGANベースのモデルです。フレーム間の滑らかな遷移と細部の保持を両立しています。
  2. EDVR (Enhanced Deformable Convolutional Networks)
    複数のフレームを同時に処理し、フレーム間のアライメントを行うことで高品質な動画超解像を実現しています。
  3. BasicVSR++
    双方向伝播と変形可能な畳み込みを組み合わせ、長期的な時間依存性を考慮した動画超解像を可能にしています。
  4. RSTT (Recurrent Structure-Texture Learning)
    構造情報とテクスチャ情報を分離して学習し、時間的一貫性を保ちながら細部まで鮮明な動画超解像を実現しています。
  5. ディフュージョンモデルの応用: 最近では、画像生成で成功を収めているディフュージョンモデルを動画超解像に応用する研究も始まっています。時間的一貫性を保ちながら、高品質で多様な結果を生成できる可能性が注目されています。

これらの技術開発により、動画の品質向上だけでなく、VRやAR、医療画像処理、監視カメラ映像の分析など、幅広い分野での応用が期待されています。また、5G、IOWN(アイオン)など高速通信技術の普及をみすえ、低解像度で効率的に動画を転送し、受信側で超解像する新たな動画配信モデルの可能性も示唆されています。

時系列超解像技術は、単なる画質向上にとどまらず、動画コンテンツの新たな可能性を切り開く重要な技術として、今後もさらなる発展が期待されるでしょう。

GANを用いた超解像

モデル 特徴
SRGAN (2017) - GANを用いた初期の超解像モデル
- 知覚損失を導入し、自然でシャープな画像生成を実現
ESRGAN - SRGANの改良版
- Residual-in-Residual Dense Blockを採用
- より細部まで再現できる高品質な超解像を実現
Real-ESRGAN - ESRGANをさらに改良
- データ劣化モデルを導入し、汎化性能を向上
- 実世界の低品質画像に対しても効果的

ディフフュージョンモデルを用いた超解像

モデル 特徴
SR3 (2021) - 段階的な精緻化プロセスを採用
- 高品質な超解像結果を生成
Stable Diffusion - 画像生成と超解像の両方に応用可能
- 潜在空間での操作により効率的かつ高品質な超解像を実現
Imagen - Googleが開発したテキストから画像生成モデル
- 超解像にも応用可能で、高解像度の画像生成を実現

GANとディフフュージョンモデルの比較

GAN ディフフュージョンモデル
利点 - 高速な推論
- シャープな画像生成
- 超解像タスクでの優れた性能
- 安定した学習
- 高い多様性
- 柔軟な制御
- ノイズ除去プロセスによる元画像構造の保持
- 超解像での自然な結果
課題 - 学習の不安定性
- モード崩壊
- 生成速度が比較的遅い
- 計算コストが高い

今後の展望

画像生成技術は急速に進化を続けており、以下のような分野で今後はさらなる高品質化、多様化、そして他のAI技術との統合が期待されています。

  1. マルチモーダル生成
    テキスト、音声、動画を組み合わせた総合的な生成
    以下の動画でもふれていますが、最終的にはE2E学習が主流になるとおもわれます。

  1. インタラクティブな生成
    ユーザーの入力に応じてリアルタイムで画像を生成・編集
  2. 倫理的な配慮:デープフェイクなどの悪用防止と、著作権問題への対応
  3. 計算効率の向上:より少ないリソースで高品質な生成を可能にする技術の開発
  4. 理論的な理解の深化:ディフフュージョンモデルの数学的基礎のさらなる解明
  5. 超解像技術の更なる進化:より高い拡大率と品質の両立

結論

GANからディフフュージョンモデルまで、画像生成技術は過去10年間で驚異的な進歩を遂げました。
特にディフフュージョンモデルは、その数学的基礎と柔軟な制御性により、画像生成と超解像の新たな標準となりつつあります。

これらの技術は、芸術、エンターテインメント、科学研究など、様々な分野に革新をもたらしています。

超解像技術においては、GANベースのモデルが長らく主流でしたが、最近ではディフフュージョンモデルを用いたアプローチも注目を集めています。両者のアプローチは、それぞれ異なる特性を持ち、用途に応じて選択されています。

今後も技術の進化と新たな応用分野の開拓が期待される一方で、倫理的な課題にも注意を払う必要があります。画像生成技術は、人間の創造性を拡張し、新たな表現の可能性を開く強力なツールとして、今後も積極的に活用していきたいとおもいます!

Read more

Node.jsで大容量ファイルを扱う:AIモデルのような大きなデータ保存はストリーム処理使いましょう

Node.jsで大容量ファイルを扱う:AIモデルのような大きなデータ保存はストリーム処理使いましょう

こんにちは!今日はAIシステムのフロントサーバーとしてもよく使用するNode.jsについてのお話です。 AIモデルの普及に伴い、大容量のデータファイルを扱う機会が急増しています。LLMなどのモデルファイルやトレーニングデータセットは数GB、場合によっては数十、数百GBにも達することがあります。 一方、Node.jsはWebアプリケーションのフロントサーバーとして広く採用されており、データマネジメントやPythonで書かれたAIバックエンドとの橋渡し役としてもかなりお役立ちな存在です。 本記事では、Node.js v20LTSで5GB程度のファイルを処理しようとして遭遇した問題と、その解決方法について解説します。 Node.jsのバッファサイズ制限の変遷 Node.jsのバッファサイズ制限は、バージョンによって大きく変化してきました Node.jsバージョン サポート終了日 バッファサイズ上限 備考 Node.js 0.12.x 2016年12月31日 ~1GB 初期のバッファサイズ制限(smalloc.kMaxLength使用) Node.js 4.

By Qualiteg プロダクト開発部
AGI時代に向けたプログラマーの未来:役割変化とキャリア戦略

AGI時代に向けたプログラマーの未来:役割変化とキャリア戦略

はじめに 私がはじめてコードを書いたのは1989年です。 当時NECのPC88というパソコンを中古でかってもらい N-88 Basic というBASIC言語のコードをみようみまねで書いて動かしたあの日から何年経つのでしょうか。 当時、電波新聞社のマイコンBASICマガジンという雑誌があり、ベーマガにはいろんなパソコン向けのプログラムコードが掲載されていました。 そんなわけでもう35年以上趣味や仕事でプログラミングに従事していますが、開発環境、情報流通の仕組みには革命といっていいほどの変化、進化がおこりました。 しかしながら、そんな中でも、あくまでコードを書くのは「私」という生身の人間でした。 そうしたある種の古き良き時代は、いよいよ本格的に終わりを告げようとしています。 2023年ごろからのLLM技術の飛躍的進歩により、プログラミング業界は大きな転換期を迎えています。 特に、OpenAI o3,o1やClaude 3.5、Gemini2.0などの大規模言語モデル(LLM)の進化や、その先にある将来的な汎用人工知能(AGI)の出現は、プログラマーやAIエンジニアの役割に根

By Tomonori Misawa / CEO
PythonとWSL開発のトラブルシューティング: PyCharmとCondaの環境不一致問題

PythonとWSL開発のトラブルシューティング: PyCharmとCondaの環境不一致問題

こんにちは! 今回は、WSL上のConda環境をPyCharmから利用する際に発生した「同じ環境なのにパッケージリストが一致しない」という問題に遭遇したため、その原因と対策について書いてみたいとおもいます 問題の状況 開発の流れは以下のようなものでした 1. WSL環境でConda仮想環境を作成 2. その環境をPyCharmのプロジェクトインタプリタとして設定 3. 開発を進める中で奇妙な現象に気づく 具体的には、次のような不一致が発生していました * PyCharmのプロジェクト設定で表示されるpipパッケージのリスト * WSLでConda環境をアクティベートした後にpip listコマンドで表示されるパッケージのリスト これらが一致せず、「WSL側のシェルから直接インストールしたパッケージがPyCharmで認識されない」という問題が生じていました。 この手の問題でよくある原因は、PyCharm側がWSL側の更新を得るのに少し時間がかかったり、 Indexing が遅れているなどなのですが、今回はそれが原因ではありませんでした。 危険な「静かな

By Qualiteg プロダクト開発部
人気ゲーム「ヒット&ブロー」で学ぶ情報理論

人気ゲーム「ヒット&ブロー」で学ぶ情報理論

こんにちは! Qualiteg研究部です! 今日はAIにおいても非常に重要な情報理論について、Nintendo Switchの人気ゲーム「世界のアソビ大全51」にも収録されている「ヒット&ブロー」というゲームを題材に解説いたします! はじめに 論理的思考力を鍛える定番パズルゲームとして長年親しまれている「ヒット&ブロー」(海外では「Mastermind」として知られています)。 このゲームは一見シンプルながらも、その攻略には深い論理的アプローチが必要とされております。 本稿では、このゲームについて情報理論という数学的概念を用いてゲームの素性を分析する方法について掘り下げてみたいとおもいます。 さらに、この情報理論が現代の人工知能(AI)技術においてどのように活用されているかについても触れていきます。 ヒット&ブローのルール説明 ヒット&ブローは、相手が秘密に設定した色や数字の組み合わせを推測するゲームです。日本では主に数字を使った「数当てゲーム」として親しまれていますが、本記事では色を使ったバージョン(マスターマインド)に焦点を当てます。 Nintendo Sw

By Qualiteg 研究部