Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WGAN-gp] improved Training of Wasserstein GANs #25

Open
Yagami360 opened this issue Oct 5, 2019 · 0 comments
Open

[WGAN-gp] improved Training of Wasserstein GANs #25

Yagami360 opened this issue Oct 5, 2019 · 0 comments

Comments

@Yagami360
Copy link
Owner

Yagami360 commented Oct 5, 2019

0. 論文情報・リンク

1. どんなもの?

  • WGAN において、重みクリッピングによるリプシッツ連続条件の実現ではなく、クリティックの勾配ノルムに制約を課す方法(gradient penalty)でリプシッツ連続条件を満たすようにして、さらなる学習の安定化や生成画像の品質向上を実現した WGAN の改良版。

2. 先行研究と比べてどこがすごいの?

  • 従来の WGAN ではのクリティック(識別器)にリプシッツ連続条件を課すために、重みクリッピングを行っているが、この重みクリッピングの方法では依然として学習が不安定となるケースが存在していた。
    本手法では、クリティックの勾配ノルムに制約 [GP: gradient penalty] を課す方法でリプシッツ連続条件を満たすようすることで、このような学習が不安定となるケースでも学習が安定化することを実現し、また生成画像の品質向上も実現している。

3. 技術や手法の"キモ"はどこにある?

  • リプシッツ連続条件を重みクリッピングで実現する方法の問題点

    • Capacity underuse(本来の性能の過小利用)

      上図は、いくつかの Toy データセット(オレンジ点)に対して、識別器を固定した状態でクリティックを学習させたときのモデルの分布 Pg を示している。(上側が wight clipping、下側は gradient penalty)

      wight clipping で学習したクリティックは、線形で単純な形の分布で近似してしまい、うまく真の分布 Pr を表現できていないことが見て取れる。
      一方、gradient penalty で学習したクリティックは、うまく真の分布 Pr を表現できていることが見て取れる。
      つまり、wight clipping での方法では、WGAN がもつ本来の表現能力を失ってしまうことが分かる。

    • 勾配爆発問題

      上図は、Swiss Roll データセットで学習した WGAN に対して、クリティックの損失関数の勾配ノルムの値を示した図である。(縦軸は log スケール)
      weight clipping の方法では、勾配爆発問題が発生してことが見て取れる。
      一方、Gradient penalty の方法では、このような勾配爆発問題は発生していないことが見て取れる。

      weight clipping の方法で、このような勾配爆発問題が発生してしまう原因としては、右上図のように、weight clipping の結果、重みの値がある正の値と負の値に2極化してしまうことに起因していると考えられる。

  • gradient penalty(勾配ノルムの制約)による WGAN の損失関数
    本手法での損失関数は、元の WGAN の損失関数に gradient penalty での制約項を加えた以下の式のようになる。

    ペナルティー項での x ̂~Px ̂ は、分布 Px ̂ からランダムサンプリングされたデータであるが、この分布 Px ̂ は、真の分布 Pr の点とモデルの分布 Pg の点を結ぶ直線上からサンプリングされた一様分布であり、又、式でのペナルティー項は、クリティックの勾配ノルムが1の値以外のときに、ペナルティーが課される形の式になっている点が重要である。

    これは、
    「最適状態にあるクリティック D* (=f* ) において、モデルの分布 Pg からサンプリングされたデータ x∈Pg とモデルの分布 Pg からサンプリングされたデータ y∈Pr に対して、x と y を結ぶ直線 x_t=t×x+(1−t)×y 上のすべての点 x_t におけるクリティックの勾配 ∇D* (x_t) は、∇D* (x_t)=∇f* (x_t)=(y−x_t)/(||y−x_t||) となる。」
    ⇒ 「最適化クリティック D* は、真の分布やモデルの分布 Pg からサンプリングされたすべての点に対して、ノルム1の単位勾配ノルムをもつ。」

    の関係が成り立つので、
    真の分布 Pr の点とモデルの分布 Pg の点を結ぶ直線上からサンプリングされたデータ x は、ノルム1の単位勾配ノルムをもつことになる。
    そのため上式でのペナルティー項は、勾配ノルムが1の値以外のときに、ペナルティーが課される形の式になっている。
    ※ これにより、勾配ノルムが1でないもの(=リプシッツ連続でないもの)にペナルティーが課されるので、結果的にリプシッツ連続条件を満たしていることになる?

    以下のアルゴリズムは、この gradient penalty による WGAN の学習アルゴリズム全体を示している。

4. どうやって有効だと検証した?

  • 既存の weight clipping によるWGAN と gradient penalty での WGAN での定性的な生成画像の品質比較して、gradient penalty のほうが生成画像の品質が向上していることを検証している。

  • 既存の weight clipping によるWGAN と gradient penalty での WGAN での損失関数値の変化を定量的に比較して、gradient penalty のほうが学習が安定化していることを検証している。
    image

5. 議論はあるか?

  • WGAN ではリプシッツ連続条件を満たしていることが重要であり、重みクリッピングでそれを実現しているが、gradient penalty による方法では、リプシッツ連続条件を満たしていることになるのか?
    → gradient penalty での損失関数の制約項で、勾配ノルムが1でないもの(=リプシッツ連続でないもの)にペナルティーが課されるので、結果的にリプシッツ連続条件を満たしていることになる?

6. 次に読むべき論文はあるか?

  • xxx

7. 参考文献

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant