1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

条件付きGANの精度を上げるContraGANの要約

Last updated at Posted at 2021-03-02

ContraGANというなにやら面白そうなGANの論文があったので、読んでみました。

ContraGANってなんだ?

ContraGANは条件付きGANの一種です。通常の条件付きGANのようにデータとクラスの関係を学ぶだけでなく、2C loss(conditional contrastive loss)と呼ばれるlossを加えて、データとデータの関係を学ぶところが一番の特徴です。2C lossを加えるだけなので、DCGAN, BigGANなどに取り入れることができます。

条件付きGANの先行研究の一つにProjGANがあります。ProjGANはBigGANにも取り入れられていますが、オーバーフィッティングやモード崩壊などの問題があったそうです。どうやらそういった問題も改善されているとのことです。

ContraGANのアーキテクチャ

image.png

図のようにDiscriminatorの途中から分岐して、射影(MLP)した出力とクラスラベルの埋め込みを使って2C lossを計算する。
Adversarial lossと2C lossの重み付き和をトータルのlossにして敵対的学習を行う、というのが全体のアーキテクチャです。
射影$h$はパラメタライズされたMLPだったらよいようですが、論文で行った実験では線形射影でうまくいっているようです。

2C loss

この論文で提案されている2C lossとは、conditional contrastive lossの略語です。名前の通り、条件を付けた上で、データ間の比較も行う、ということですね。データ間の比較のアイディアはNT-Xent(Normalized Temperature-scaled Cross Entropy Loss)というアイディアにインスパイアされています。そのへんの細かい議論は原論文を読んで頂くということで省略しますが、以下のように2C lossを定義します。

l_{2C}(\mathbf{x}_i, y_i; t) := -\log{\left( \dfrac{\exp{(l(\mathbf{x}_i)^{\top}e(y_i)/t)}+\sum_{k=1}^{m} \mathbf{1}_{y_k=y_ i}\cdot\exp{(l(\mathbf{x}_i)^{\top}l(\mathbf{x}_k)/t)}}{\exp{(l(\mathbf{x}_i)^{\top}e(y_i)/t)}+\sum_{k=1}^{m} \mathbf{1}_{k\neq i}\cdot\exp{(l(\mathbf{x}_i)^{\top}l(\mathbf{x}_k)/t)}} \right)}

ここで、記号は以下の通り用いています。

$\mathbf{X}=\{\mathbf{x}_1, \ldots, \mathbf{x}_m: \mathbf{x}_i\in\mathbb{R}^{W\times H}\}$: 学習画像の集合

$\mathbf{y}=\{y_1, \ldots , y_m\}$: 対応するラベルの集合

$D_{\phi_1}:\mathbb{R}^{W\times H}\to\mathbb{R}^k$: エンコーダ

$h:\mathbb{R}^k\to\mathbb{S}^d$: 超球への埋め込み(つまりベクトルを正規化する)-$\phi$でパラメータ化されたMLP

$t$: 温度(スカラー値)

$l=h\circ D_{\phi_i}$: 画像の超球への埋め込み

この2C lossは何しているかというと、分子の第一項

\exp{(l(\mathbf{x}_i)^{\top}e(y_i)/t)}

ではデータと対応するクラスの関係を近づける役割を担っています。分子の第二項

\sum_{k=1}^{m} \mathbf{1}_{y_k=y_ i}\cdot\exp{(l(\mathbf{x}_i)^{\top}l(\mathbf{x}_k)/t)}

では同じラベルのデータ同士の関係を近づける役割を担っています。
結局のところ、データとラベル、データとデータの関係のいずれも考慮された設計になっているわけですね。

Total loss

トータルのlossは以下の通り。

\mathcal{L}=\mathcal{L}_{\rm adv}+\lambda \mathcal{L}_{\rm 2C}

$\mathcal{L}_{\rm adv}$はLSGAN,WGAN,WGAN-GPでもなんでも好きなGANのAdversarial lossを選べます。

参考文献

  1. Kang, Minguk, and Jaesik Park. "ContraGAN: Contrastive Learning for Conditional Image Generation." NeurIPS 2020. Neural Information Processing Systems, 2020.
  2. Miyato, Takeru, and Masanori Koyama. "cGANs with Projection Discriminator." International Conference on Learning Representations. 2018.
  3. Brock, Andrew, Jeff Donahue, and Karen Simonyan. "Large Scale GAN Training for High Fidelity Natural Image Synthesis." International Conference on Learning Representations. 2018.
  4. Chen, Ting, et al. "A simple framework for contrastive learning of visual representations." International conference on machine learning. PMLR, 2020.
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?