機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

DIVERSITY-SENSITIVE CONDITIONAL GENERATIVE ADVERSARIAL NETWORKSを読んだのでメモ

はじめに

DIVERSITY-SENSITIVE CONDITIONAL GENERATIVE ADVERSARIAL NETWORKSを読んだのでメモ.

気持ち

Conditional GANのmode collapseを解決しようというもの.cGANはconditionに対して決定的な出力を出してしまうことが多々ある,すなわちstochasticな要素が失われることがあるため,あるconditionに対して複数の出力を出すような正則化を加えて出力の多様性を担保しようというもの.

手法

通常のGANの目的関数に以下の正則化を加える.

\displaystyle
\max_G\mathcal{L}_{\mathbf{z}}(G)=\mathbb{E}_{\mathbf{z}_1,\mathbf{z}_2}\left[\min\left(\frac{\|G(\mathbf{x},\mathbf{z}_1)-G(\mathbf{x},\mathbf{z}_2)\|}{\|\mathbf{z}_1-\mathbf{z}_2\|},\tau\right)\right]

基本的に,condition \mathbf{x}とは関係のない乱数\mathbf{z}_1,\mathbf{z}_2間のノルムが大きいほど出力される画像間のノルムも大きくしようというもの.\tauは値が吹き飛ばないようにするためのハイパラ.この正則化に係数\lambdaをかけて通常の目的関数に加えたものが最終的な目的関数となる.

\displaystyle
\min_G\max_D\mathcal{L}_{cGAN}(G,D)-\lambda\mathcal{L}_\mathbf{z}(G)

詳しい証明はappendixにありちゃんと追っていないが,どうやらこの正則化項はGの勾配のノルムの乱数\mathbf{z}_1,\mathbf{z}_2周りでの期待値の下界になるらしい.

\displaystyle
\mathbb{E}_{\mathbf{z}_1,\mathbf{z}_2}\left[\frac{\|G(\mathbf{x},\mathbf{z}_2)-G(\mathbf{x},\mathbf{z}_1)\|}{\|\mathbf{z}_2-\mathbf{z}_1\|}\right]\leq\mathbb{E}_{\mathbf{z}_1,\mathbf{z}_2}\left[\int_0^1\|\nabla_\mathbf{z}G(\mathbf{x},\mathbf{\gamma}(t))\|dt\right]

ただし,\mathbf{\gamma}(t)=t\mathbf{z}_2+(1-t)\mathbf{z}_1.直感的には勾配の下界の最大化は学習を不安定にしそうだが,ここでの主張としてはGANは勾配消失が問題になることが多いため理にかなっているとのこと.

まとめ

実験結果的にかなり効果があるよう.正則化の計算も単純なため,既存モデルに簡単に組み込めるのも嬉しいところ.