ContraGANというなにやら面白そうなGANの論文があったので、読んでみました。
ContraGANってなんだ?
ContraGANは条件付きGANの一種です。通常の条件付きGANのようにデータとクラスの関係を学ぶだけでなく、2C loss(conditional contrastive loss)と呼ばれるlossを加えて、データとデータの関係を学ぶところが一番の特徴です。2C lossを加えるだけなので、DCGAN, BigGANなどに取り入れることができます。
条件付きGANの先行研究の一つにProjGANがあります。ProjGANはBigGANにも取り入れられていますが、オーバーフィッティングやモード崩壊などの問題があったそうです。どうやらそういった問題も改善されているとのことです。
ContraGANのアーキテクチャ
図のように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を選べます。
参考文献
- Kang, Minguk, and Jaesik Park. "ContraGAN: Contrastive Learning for Conditional Image Generation." NeurIPS 2020. Neural Information Processing Systems, 2020.
- Miyato, Takeru, and Masanori Koyama. "cGANs with Projection Discriminator." International Conference on Learning Representations. 2018.
- Brock, Andrew, Jeff Donahue, and Karen Simonyan. "Large Scale GAN Training for High Fidelity Natural Image Synthesis." International Conference on Learning Representations. 2018.
- Chen, Ting, et al. "A simple framework for contrastive learning of visual representations." International conference on machine learning. PMLR, 2020.