第2回:GANを理解する — バーチャル試着を支えるエンジン

はじめに

第1回では、15以上のバーチャル試着モデルを調査し、PASTA-GAN++をMETA FITの基盤として選定しました。しかし、初期のCAGANから最新のPASTA-GAN++まで、すべてのモデルに共通する技術的基盤があります。それが敵対的生成ネットワーク(GAN)です。

試着エンジンの具体的なアーキテクチャに踏み込む前に、GANそのものを深く理解しておく価値があります。GANは2014年から2021年頃まで画像生成の主流パラダイムでした。その仕組みを把握しておくことは、バーチャル試着システムがなぜこのように設計されているかを理解するうえで欠かせません。

この記事では、GAN技術を深く掘り下げます――理論、主要なマイルストーン、学習上の課題、そしてGANがバーチャル試着の問題とどう結びつくかを解説します。


GANとは何か

敵対的生成ネットワークは、2014年にIan Goodfellowらが発表した論文で提案され、生成モデリングの方向性を大きく変えました。アイデアはシンプルで洗練されています。2つのニューラルネットワークをゲームで対立させ、その競争を通じて両者の性能を高めていくのです。

2人のプレイヤー

GANは同時に学習される2つのネットワークで構成されています。

Generator(生成器、G): ランダムなノイズベクトルz(通常はガウス分布からサンプリング)を入力として受け取り、合成画像G(z)を生成します。Generatorの目的は、本物の画像と区別がつかない出力を生成することです。実データを直接見ることはなく、Discriminatorの判定を通じたフィードバックだけを受け取ります。

Discriminator(識別器、D): 画像を入力として受け取り――学習データからの本物の画像か、Generatorからの偽画像のいずれか――その入力が本物である確率を出力します。Discriminatorの目的は、本物の画像を正しく本物と判定し、生成画像を偽物と判定することです。

ミニマックスゲーム

学習プロセスは、ミニマックス最適化として定式化されます。

min_G max_D  V(D, G) = E[log D(x)] + E[log(1 - D(G(z)))]

わかりやすく言えば、Discriminatorは本物と偽物を見分ける能力を最大化しようとし(Vの最大化)、Generatorは Discriminatorの成功を最小化しようとします(Vの最小化)。両者は反対方向に引っ張り合い、この緊張関係が学習を駆動します。

偽造犯と刑事のたとえ

わかりやすいたとえがあります。偽札を作ろうとする偽造犯(Generator)と、偽札を見破ろうとする刑事(Discriminator)を想像してください。最初は偽造犯の偽札は粗雑で、簡単に見破られます。しかし刑事が偽札を見破るたびに、偽造犯は何が原因で見破られたかを学び、改善していきます。偽造犯の技術が上がれば、刑事もより鋭い目を持たなければなりません。この軍拡競争が続くことで、偽造犯の出力はますます精巧になっていきます。

理論的な収束点(ナッシュ均衡)では、Generatorはきわめてリアルな画像を生成し、Discriminatorはランダムな推測しかできなくなります――すべての入力に対して0.5を出力する状態です。実際に真の均衡に到達するのは困難ですが、この対立的な構造が高品質な生成画像を確実に生み出します。


なぜGANは画期的だったのか

GANのインパクトを理解するには、2014年以前の画像生成がどのようなものだったかを振り返ると見えてきます。

変分オートエンコーダは、ほぼ同時期に登場し画像を生成できましたが、出力がぼやけがちでした。VAEは可能性を平均化する再構成損失を最適化するため、細部がなめらかに均されてしまうのです。

明示的な密度モデルは、画像の完全な確率分布を定義する必要があり、高解像度データでは計算上の実現が困難でした。

GANはこれらの制約を見事に克服しました。生成を明示的な密度推定ではなくゲームとして定式化することで、鮮明で精細な画像を生成できるようになったのです。Discriminatorは学習される適応的な損失関数として機能し、固定的な損失関数(平均二乗誤差など)では到達できないレベルのフォトリアリズムへとGeneratorを押し上げました。

GAN研究の主要なマイルストーン

元のGAN論文は、膨大な後続研究を生みました。バーチャル試着の理解に特に関連するマイルストーンを紹介します。

DCGAN(2015年) — Deep Convolutional GANは、アーキテクチャのガイドラインを確立することで学習を安定化させました。プーリングの代わりにストライド付き畳み込みを使用し、両方のネットワークにバッチ正規化を適用し、深い層では全結合層を除去する。これらのガイドラインは標準的な実践となり、GANを初めて安定して学習可能なものにしました。

条件付きGAN / cGAN(2014年) — クラスラベルやその他の条件情報をGeneratorとDiscriminatorの両方に入力することで、cGANは特定のカテゴリの画像を生成できるようになりました。この条件付き生成という考え方はバーチャル試着の基盤です。出力は人物画像と衣服画像の両方に条件付けられる必要があるからです。

pix2pix(2016年) — VTONに最も直接的に関連するマイルストーンと言えるかもしれません。pix2pixはペアの画像間変換を実証しました。入力画像(エッジ、スケッチ、セグメンテーションマップ)から対応する出力画像(写真、レンダリングされたシーン)を生成します。そのアーキテクチャ――スキップ接続を持つU-Net GeneratorとPatchGAN Discriminator――は、バーチャル試着を含む、その後のほぼすべての画像変換研究のテンプレートとなりました。

CycleGAN(2017年) — サイクル一貫性損失を用いて、画像変換を非ペアデータに拡張しました。核となる着想は、ドメインAからドメインBへ画像を変換し、さらにドメインAに戻すと元の画像が復元されるべきだ、というものです。これにより、ペアデータなしでスタイル転写やドメイン適応が可能になりました。ペアの学習データを容易に入手できないVTON手法にとって、きわめて重要な技術です。

ProGAN(2017年) — プログレッシブ成長を導入しました。低解像度(4x4)から学習を開始し、徐々に高解像度のレイヤーを追加していく手法です。これにより高解像度画像の生成が安定し、フォトリアリスティックな出力への道が開かれました。

StyleGAN(2018〜2020年) — Nvidiaのスタイルベースのアーキテクチャは、1024x1024の解像度でフォトリアリスティックな顔画像を生成しました。StyleGANは、少なくとも特定のドメインにおいて、写真とほぼ区別がつかない画像をGANで生成できることを示しました。スタイルベースのアーキテクチャは、生成画像の属性に対するきめ細かな制御も可能にしました。

これらの進歩はそれぞれ、バーチャル試着の研究者が自身の課題に応用できる技術と知見を提供しました。


GANの学習における課題

印象的な成果を上げる一方で、GANは学習が難しいことでも知られています。敵対的学習の構造そのものから、いくつかの本質的な課題が生じます。

モード崩壊(Mode Collapse)

GeneratorがDiscriminatorを安定して騙せる少数の出力パターンを見つけてしまい、データ分布の残りの探索をやめてしまう現象です。結果として、生成画像の多様性が失われます。たとえば、顔生成GANが少数のパターンの顔ばかりを生成し、学習データの豊かな多様性を反映しなくなることがあります。VTONの文脈では、入力に関係なく似たような衣服の外観ばかりを出力するといった形で現れる可能性があります。

学習の不安定性

GeneratorとDiscriminatorは学習全体を通じて、おおよそのバランスを保つ必要があります。Discriminatorが強くなりすぎると、Generatorの出力をすべて拒否し、Generatorの勾配が消失します――有用な学習信号を受け取れなくなるのです。逆にDiscriminatorが弱すぎると何でも受け入れてしまい、Generatorには改善する動機がありません。このバランスを保つには、慎重なハイパーパラメータの調整と、ときには手動での監視が必要です。

評価の難しさ

教師あり学習では検証セットでの精度や損失が明確な品質指標になりますが、GANの出力にはそうした直感的な指標がありません。最も広く使われている2つの指標は以下の通りです。

  • FID(Frechet Inception Distance):Inceptionネットワークの特徴空間で、生成画像と実画像の分布間の距離を測定します。値が低いほど良好です。広く使われていますが、サンプルサイズに敏感で、人間の知覚的な品質と常に一致するわけではありません。
  • IS(Inception Score):品質(各画像が分類可能であること)と多様性(画像のセットが多くのクラスをカバーすること)の両方を測定します。有用ですが限界があり、実データの分布との直接比較は行いません。

どちらの指標も、人間が「良い」と感じる画像品質を完全には捉えられず、GANの評価にはどうしても主観的な要素が残ります。

緩和技術

研究コミュニティはこれらの課題に対処するため、いくつかの技術を開発しました。

  • Wasserstein損失(WGAN):元のGAN損失をWasserstein距離に置き換え、より安定した勾配と画像品質に相関する損失を提供します。
  • スペクトル正規化:DiscriminatorのLipschitz定数を制約し、Discriminatorが急速に強くなりすぎることを防ぎます。
  • 勾配ペナルティ(WGAN-GP):勾配ノルムへのペナルティ項を通じてLipschitz制約を課し、学習をさらに安定化させます。
  • プログレッシブ成長:低解像度から始めて段階的に解像度を上げることで、両方のネットワークが細部の前に粗い構造を学習できるようにします。

これらの技術によりGAN学習はより安定しましたが、標準的な教師あり学習と比べると、依然として理論だけでは済まない職人的な側面がありました。


汎用GANからバーチャル試着へ

基礎を押さえたところで、GANをバーチャル試着の具体的な課題と結びつけましょう。

VTONは本質的に画像間変換の問題です。人物画像と衣服画像が与えられたとき、その人物がその衣服を着ている出力画像を生成します。pix2pixスタイルの条件付きGANが、ほぼすべてのVTONモデルの基盤となっているのはそのためです。

ただし、バーチャル試着には汎用的な画像変換にはない固有の難しさがあります。いくつかの重要な適応が必要です。

幾何学的ワーピング

商品カタログの衣服画像は通常、平置きやマネキンに着せた状態で撮影されています。人物の上で自然に見せるためには、衣服を空間的に変形させる必要があります――人物の体型とポーズに合わせて伸縮、圧縮、回転させるのです。初期の手法では、学習された制御点を持つThin Plate Spline(TPS)変換を使用していました。PF-AFN(第3回で詳しく取り上げます)を含む後期の手法では、Appearance Flowを採用しています。これは衣服画像の各ピクセルを人物上のターゲット位置にマッピングする、密なピクセルレベルのフローフィールドを学習する手法です。

ヒューマンパーシング

システムは、人物画像のどの領域がどの身体部位や衣服アイテムに対応するかを理解する必要があります。ヒューマンパーシング(人体のセマンティックセグメンテーション)がこの役割を果たし、顔、髪、上半身、下半身、腕、靴などとラベル付けされた領域マップを生成します。このマップによって、新しい衣服をどこに配置し、元の画像から何を残すべきかをGeneratorに伝えられます。

ポーズ条件付け

人物のポーズは画像ごとに大きく異なります。まっすぐ立っている場合もあれば、横を向いている場合、腕を上げている場合、脚を組んでいる場合もあります。試着システムはこうしたバリエーションに対応しなければなりません。姿勢推定(通常OpenPoseや類似のフレームワークを使用)がスケルタルキーポイントを抽出し、人物のポーズをエンコードします。これらのキーポイントは追加の条件情報としてGeneratorに入力されます。

VTONにおけるDiscriminatorの役割

バーチャル試着のGANでは、Discriminatorは「これは本物の写真に見えるか」以上に具体的なことを判定する必要があります。出力が、本物の服を自然に着ている本物の人物に見えるかどうかを評価しなければなりません。つまりDiscriminatorは、衣服のドレープ、体のプロポーション、生地のふるまい、そしてフィット感のある衣服とぎこちない合成を見分ける微妙な視覚的手がかりを暗黙的に学習しているのです。

Generatorが達成すべきこと

VTONシステムのGeneratorは、驚くほど複雑なタスクを担っています。同時に以下のすべてを達成しなければなりません。

  1. 衣服のワーピング — 人物の体型とポーズに合わせて衣服を変形させる
  2. 衣服の自然なブレンド — オクルージョン(腕が胴体の前にある場合など)を処理しながら、衣服を人物の体に自然に融合させる
  3. 衣服ディテールの保存 — 柄、テクスチャ、ロゴ、縫い目を維持する
  4. 体のプロポーションとアイデンティティの維持 — 人物が引き続き本人に見える状態を保つ

この4つすべてを同時に達成しなければならないことが、バーチャル試着を条件付き画像生成の中でも特に要求の厳しいアプリケーションにしている理由です。


GANの時代とその後

2014年から約2021年まで、GANは高品質な画像生成の代表的なアプローチでした。バーチャル試着のほかにも、顔生成(ディープフェイク)、画像超解像(SRGAN、ESRGAN)、芸術的スタイル転写、画像インペインティングなど、幅広い応用がありました。

その後、流れが変わりました。拡散モデル――DDPM(2020年)、DALL-E 2(2022年)、Stable Diffusion(2022年)、Midjourney――が、まったく異なるアプローチでGANの品質に匹敵し、さらに上回ることを示したのです。

  • より安定した学習:敵対的な構造がないため、モード崩壊が起きず、2つのネットワーク間の繊細なバランス調整も不要です。
  • より優れたモードカバレッジ:拡散モデルは学習データの多様性全体をより忠実に捉える傾向があります。
  • 大規模での高品質:十分な計算資源があれば、より広範なドメインで優れた結果を生み出します。
  • ただし推論は遅い:反復的なデノイジングプロセスには複数回のフォワードパス(多くの場合20〜50ステップ)が必要で、GANの単一フォワードパスよりも生成速度が遅くなります。

META FITはGANの時代に構築されました。このシリーズを通じた技術的選択は、開発当時の最先端を反映しています。GANベースのアプローチを理解することは、その成果と、現代の拡散ベースの手法がその後切り開いた方向性の両方を理解するための土台になります。

幾何学的ワーピングや衣服固有の制約が重要なバーチャル試着の分野で、拡散モデルがGANを具体的に上回れるかどうかは、現在も活発に研究されている領域です。このテーマはシリーズの最終回で改めて取り上げます。


次回の予告

GANの仕組みとバーチャル試着に適している理由を理解したところで、次回は実際の実装の内部に迫ります――PF-AFNモデル、そのカスタムCUDA相関カーネル、そして人物写真と衣服画像からバーチャル試着結果を生成する2段階パイプラインについて解説します。


META FITシリーズ:

この記事をシェア

関連記事