GANとは?
敵対的生成ネットワーク(Generative Adversarial Network)。
学習時、生成ネットワークと識別ネットワークの2つのAIチームを構成し、生成側が「贋作」したAI画像を識別側が教師画像と判別できなくなるくらいまで競わせる。
こいつも一応画像生成AIで、生成は速いが多様性は確保しづらいという特徴がある。
U-Net拡散モデル(というかStable Diffusion)が実用化されるまで花形だった。
現在でもスマホアプリや軽いレタッチ機能など軽量で高速な処理が求められる場面でのプチ画像生成AIとしてはこちらが主流。
研究が停滞している、ということは裏を返せば技術的に成熟していてその時点での技術に基づいて開発してもそうそう時代遅れにはなりにくい、ということでもあるので実用面では強み。
一般SDユーザーの間ではUpscalerとしての利用が中心。
Stable diffusion web UIにデフォルトで入っているESRGAN(Enhanced Super-Resolution GAN)が有名。
画像生成GANの長所
- 生成が高速。蒸留とかしなくても1ステップで終わる。生成時には生成ネットワークしか使われない。
- 教師なし学習なのでアノテーション(キャプション)の手間がない。実際に処理する画像に近い教師画像を大量に用意すればいいだけ。
- シャープでリアルなディティールを再現できる。
画像生成GANの短所
- キャンバスサイズの変更が難しい。
- アップスケーラーは2xとか4xとか固定倍率で学習している。半端な倍率だとアプスケの後に伝統的な縮小アルゴリズムでスケーリングされる。とは言っても縮小で問題が出ることはそんなにない。
- できる画像生成GANもあるがSD関係のアップスケーラーとしては普及していない。
- ディティールはシャープになるが結局は贋作なので不自然な描き込みがされることもある。
- 細かい字や模様の多い絵とかだとかえってバイキュービック法とかLanczos法みたいな非AI拡大縮小処理のほうが自然になることも。
- プロンプトによる条件付けが難しい。
- 学習が不安定で、教師画像の多様性が反映されにくい傾向がある。
- U-Net拡散モデルより学習データの影響を強く受けるので、用途によって使い分ける必要がある。
- 多様体仮説に基づく解釈としては、生成器も識別器も同じマニフォールドを参照するため談合が成立してしまうと整理できる。
- マニフォールドとは、ざっくり言えば「本物の画像が存在する細い道」のようなもの。
自然画像は無限のパターンがあるように見えて、実はその多くがこの細い道の上に乗っているとされる。 - GANの生成器と識別器は、どちらもこの「細い道」を見ながら学習する。
結果、マニフォールドという色眼鏡を通して教師画像を見ることになる。 - 生成器が「条件を無視しても、この道の上に乗っていれば識別器は本物だと信じてくれる」という抜け道を見つけてしまう。
- 識別器も「条件を厳しくチェックするより、とりあえず道の上に乗っているかだけ見ればいいや」と妥協してしまう。
- マニフォールドとは、ざっくり言えば「本物の画像が存在する細い道」のようなもの。