161 Views
May 08, 25
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2025年度前期輪読会 生成Deep Learning #3 (5/8) 4.3~4.5 : WGAN 京都大学理学部数理科学系 千葉 一世 0
アジェンダ ◼ Wasserstein GAN • Wasserstein損失 • 1-Lipschitz条件 ◼ Conditional GAN 1
WGAN • 学習が不安定 GANの問題点 • 評価値から生成画像のクオリティが評価しずらい • モード崩壊 従来のGANでは、0,1の正解ラベルに対し、Cross Entropy Lossを損失関数として用いた 損失関数 識別器の最適化 生成器の最適化 WGANでは、損失関数としてWasserstein距離を用いる。 Wasserstein距離:最適輸送問題などから出てきた確率密度間の距離を表すもの (Earth Mover’s Distanceとも言う) 2
WGAN GANからの変更点 • 正解ラベルを[0,1]ではなく[-1, 1]で考える • 識別器の最終層でsigmoidを用いず、(−∞, +∞)に値を取るようにする • 識別器は確率ではなく本物かどうかのスコアを出力していると考え、評価器と呼ぶ Wasserstein損失関数は次で表される 生成器の最適化 評価器の最適化 3
WGAN 何故Wasserstein距離を用いるのか? 従来のGANでは、最適な識別器を考えるとJS-divergenceを最適化することに等しい JS-divergenceは次の式で表される確率密度間の類似度を測る指標 確率密度間の類似度の指標を比べるとWasserstein距離が良かった (KL・JS-diveergenceなどと比べて、発散しにくく、滑らか) (詳しくはこのサイトなどを参考に) 4
WGAN WGANでは、更に評価器に1-Lipschitz連続を仮定する つまり、画像のピクセルの差よりも、評価値の差が小さくなると仮定する。 1-Lipschitz条件を満たすとき、式の意味から勾配の大きさが1を超えないようになり、 Wasserstein損失による学習が上手くいく 何故1-Lipschitz連続だと上手くいくのか? GANの学習が上手くいかない理由の一つが Gradient Uninformativeness という勾配の方向が 最適な方向を向かなくなる現象 Lipschitz連続であれば、本物と偽物の間の画像に対する勾配がきちんと 本物の画像の分布の方向を向いてくれる 詳しくはこのサイトなどを参照 5
WGAN • 評価器に1-Lipschitz条件を課す方法 WGANの原論文では、各バッチ後に重みを[-0.01, 0.01]などの小さな範囲に クリッピングすることで、強引に1-Lipschitz条件を課している。 → 重みのクリップにより表現能力が大幅に失われてしまう。 表現能力を落とさずに上手くLipschitz条件を課せないか? 勾配ペナルティ損失を用いる 補間画像: 𝑖 = 𝛼 ∗ 𝑓𝑎𝑘𝑒 + 1 − 𝛼 ∗ 𝑟𝑒𝑎𝑙 6
WGAN 勾配ペナルティ損失からLipschitz連続性が従う理由 • 微分可能関数のLipschitz定数は勾配の絶対値の最大値より大きくなる • Lipschitz連続なら、本物と偽物の間の画像について勾配が1になる 勾配が1になるようにすれば1-Lipschitz条件を満たすようになる 全ての勾配を確かめることはできないので、 サンプリングして勾配の1との差にペナルティをつける 7
WGANの実装 評価器にバッチ正則化を使用しない バッチ正則化によりバッチ間の相関が生まれると 勾配ペナルティ損失が上手くいかない 8
WGANの実装 従来のGANが、識別器が強くなりすぎないように していたのと対照的に、先に評価器を収束させる 生成器の学習1回に対し、評価器を3~5回学習させる 9
WGANGP 本では600エポック学習していたが、100エポックしか学習できなかった VAEのように全体的にぼやけるという事は無い VAEよりも学習に時間がかかるが、その分精度は上がっている。 10
CGAN • 今までの生成モデルではどのような画像を生成するか制御できなかった。 条件付きGAN (Conditional GAN)により、生成画像を制御することができる WGANからの変更点 • 生成器がランダムノイズから画像を生成する際にone-hot encodingとして条件を追加 • 評価器に画像を渡す際にone-hot encodingで画像のchannelに追加 11
CGANの実装 WGANからの変更点は、 画像・ノイズだけでなく ラベルもモデルに渡す ラベルは評価器と生成器で 形を合わせて渡す 12
CGAN 左が金髪・右が金髪でないと指定して生成した画像 金髪の分離には成功している 13
まとめ • 損失関数にWasserstein損失を用いることでGANの学習が安定 • ノイズにラベルを加えることで生成を制御できる • GANではVAEとは異なった鮮明な画像が生成できる Google Colabのリンク WGANGP CGAN 本記載のWesserstein損失についての理論的な説明 14