[論文メモ] Instance-Conditioned GAN

arxiv.org
Facebook AI Research

画像インスタンスを生成時の条件として入力するノンパラメトリックなconditional GANの提案。
f:id:Ninhydrin:20210922094008p:plain

概要

class-conditional GANはクラスラベルを条件として受け取ることで複雑な分布にも対応したがデータセットを作成するコストがかかる。
教師なしでデータを分割しGANを学習する手法もあるがclass-conditional GANと結果を比較するとかなりし、データを比較的粗いオーバーラップなしの分割を行うため様々なオブジェクトやシーンが含まれた多様体が生成され、このデータの分散が生成結果の質を下げる。
データを細かく分割する手法もあるがデータの少ないクラスタが生まれこれも質を下げる。
本論文ではデータをオーバーラップありの多様体に分割し、各データポイント周辺の分布を学習するInstance-Conditioned GANを提案する。

手法

instance-conditional GAN(IC-GAN)について説明する。
IC-GANは複雑なデータセットを細かいオーバーラップありのクラスタに分割してモデル化する。
クラスタはデータポイント x_i(これをインスタンスと呼ぶ)とその周辺のデータポイント集合 \mathcal{A}_iによって成る。
解きたい問題はデータの分布 p(x)のモデル化で、 p(x) M個のインスタンスの特徴ベクトル \textbf{h}_iを条件とした分布 p(x|\textbf{h}_i)の混合分布として表現する。つまり p(x) \approx \frac{1}{M}\Sigma_i p(x|\textbf{h}_i)

 M個のデータから成るデータセット \mathcal{D} = \{x_i\}^M_{i=1}とする。
特徴ベクトル \textbf{h}_iはパラメータ \phiを持つ関数 fで抽出( \textbf{h}_i=f_{\phi}(x_i))。 f_{\phi}は教師なし or 自己教師ありで学習。
 \mathcal{A}_iはコサイン類似度を使ったk近傍法で決定する。図2(a)を参照。

generatorには p(x|\textbf{h}_i)を暗黙的に学習させる( G(\bf{z}, \textbf{h}_i))。
generatorはガウシアンからサンプルした z xに変換する。ただし、 x \sim p(x|\textbf{h}_i)
つまりgeneratorは zインスタンス x_iの特徴ベクトル \textbf{h}_iを受け取り画像を生成する。

discriminator  D( \textbf{x}, \textbf{h}_i)は入力された画像が \textbf{h}_iの近傍か否かを学習する。
なのでrealサンプルは \textbf{h}_iの近傍のサンプル、つまり \mathcal{A}_iからサンプルする。
式にすると下の(1)になる。 \mathcal{u}は一様サンプルと思われ。
f:id:Ninhydrin:20210921101016p:plain

f:id:Ninhydrin:20210922093646p:plain

Extension to class-conditional generation

IC-GANにクラスラベル yを追加して拡張する。
関数 f_{\phi}は教師なし、自己教師あり、教師ありのいずれかで学習。
集合 \mathcal{A}_iのサンプルは \textbf{h}_iのコサイン類似度で選ばれるため集合内のサンプル同士でクラスラベルが異なる場合がある。そのため近傍で同じクラスラベルを持つサンプルがk個より少なくなることがある。
学習時は各 \textbf{h}_iの近傍集合 \mathcal{A}_iからサンプルした x_jとそのラベル y_jを利用する。

実験

省略

Selection of stored instances and neighborhood size

インスタンスの選択方法・選択数とその近傍の数について調査。
図4を参照。
まずはインスタンスの選択方法と選択数について。
インスタンスの選択方法はランダムとk-meansを比較。k-meansの方が優れる。
インスタンス数は1000を超えると大きな改善は見られない。
またprecisionとrecallを見た時、インスタンスが増えるとprecisionがわずかに下がる(画像の質が低下)。recallは大幅に向上(網羅的)。

次に近傍のサンプル数について。
インスタンス数が少ないときは近傍のサンプル数は多いほうがFID、recallともに良い結果。
インスタンス数が多いときは逆の傾向がある。
precisionには影響しない。
f:id:Ninhydrin:20210922093813p:plain

所感

実際の画像インスタンスをconditionとして、その周辺の画像を生成するというは良さそうなアイディア。
Adversarial latent AE(ALAE)に近いものを感じる。あちらはAEを同時に学習するので手間が少なそう。
IC-GANはconditionとして入力した画像と f_{\phi}の距離的に似た画像を生成するのに対して、ALAEはビジュアル的に似た画像を生成するので自由度はIC-GANのほうが高そう。ビジュアル的に似た者同士が近くなるような特徴化する f_{\phi}を利用すれば良いはず?
ただ、IC-GANはk-meansでインスタンスやサンプルの決定をするので学習前の手間がありそう。また f_{\phi}の学習も事前に行う必要があるのは少々面倒。