【論文メモ】DisUnknown: Distilling Unknown Factors for Disentanglement Learning(ICCV2021)

以下、画像に関しては特に断りがない場合論文中の図・表を引用しています。[論文リンク](https://arxiv.org/pdf/2109.08090.pdf)

## Introduction
Disentanglement learning(高次元のデータをDisentanglementにする手法)において、ラベルは常に入手できるとは限らない。既存手法は教師ラベルが必要であったり、教師なしでも元データの因子がきれいに分離できる前提のものを使う手法・因子数を限定する手法など、充分な一般化がなされているとは言えない。
そこで、本手法でラベル付けされたN-1個の因子と未知の1個の因子を合わせた、任意のN個の因子に関して考えるフレームワークを提案する。2段階の学習方法をとっており、1段階目で、未知の因子を抽出し、2段階目で条件から生成を行うようにする。

## Method
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/962e404f-d351-141e-b310-05d085c2afaf.png)

### Stage 1: Unknown Factor Distillation
未知の因子を完全に分離するエンコーダー$E$を学習する
ラベル個数：$N$個(最後の1個のみ未知)
学習サンプル：$x$
GT Labels：$y = \\{ y_1,...,y_{N-1} \\}$
Randomized Labels：$y^{\prime} =\\{ y_1^{\prime},...,y_{N-1}^{\prime} \\}$
Encoder：$E$
Label Embedders：$B=\\{B_1,...,B_{N-1}\\}$(VAEの様に正規分布となるように出力)
生成器：$G_{I}$
生成結果：$\bar{x}, \bar{x}^{\prime}$
画像からラベルを識別する分類器：$C=\\{C_1,...,C_{N-1}\\}$
と定義する。損失はそれぞれの出力からすべて足し合わされて学習を行う。

**Real branch**
ラベル情報+未知情報→画像で、Reconstruction Lossをとることで、$E$が画像から抽出する未知情報に、ラベルに入っていない情報を含むようににする。

**Mismatched branch**
ランダムなラベル情報+未知情報→画像→ラベルという設計において、$E$がラベル付けされている情報を含まないようにする。（Eがラベル付けされている情報も含むと、画像に関するラベルが分類器で出力され、ランダムなラベルと一致しないので、損失が大きくなる）

**Training Strategy**
これらの損失を用いる。$C$は、$L_{C}$を$E,B,G_{I}$は$L_{GEB}$で訓練を行う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/2fc9c9f7-9d18-8c58-bd7c-b81c3a9add62.png)
NLLは以下の式で表されるweighted negative log-unlikelihood lossである。これはEが特定のデータを重視せずに、すべてのデータを同等に扱うために用いている。

```math
NLU_q(p,k)=-\frac{1-q(k)}{q(k)}ln(1-p(k))
```

### Stage 2：Multi-Conditional Generation
画像：$x$
ランダムな属性で生成した画像：$\\{x_1^{\prime},...,x_{N-1}^{\prime}\\}$
$i$番目の因子属性を抽出するEncoder：$S=\\{S_1,...,S_{N-1}\\}$
生成器：$G_{\prod}$
各ラベルの分類器：$R=\\{R_1,...,R_{N-1}\\}$
識別器：$D$
と定義される。その時に、以下の損失関数を用いる。$Rは$$L_R$、Dは$L_D$、$G$と$S$は$L_{GS}$を用いて訓練される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/296dde47-e331-2f87-e6c7-80f81bb590ce.png)

### Implementation Details
エンコーダーと生成器は、画像サイズが28、64、128のデータセットに対して、それぞれ3、4、5個のストライド2畳み込みを行い、その後、3つの全結合層。
識別器と分類器は、同じ畳み込み層を持ちますが、全結合層は1つ。
畳み込みのチャンネルはは32から始まり、畳み込みのたびに2倍になるが、256を超えることはない。全結合層は512。

## Experiments
### Datasets and Metrics
MNIST、Fashion-MNIST、3D Chairs、3D shapesの4つのデータセットを利用。MNISTとF-MNISTはクラスをラベル付きの因子、3D Chairsは回転を未知の因子、3D Shapesは6つの因子のうち、1つ以上を未知の因子として統合している。
生成モデルがDisentanglementであることをスコアの高さで表現したMIGを評価指標としている。

### Empricipal Study
**Necessity of the Unknown Factor**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/5cb82afc-53b2-e009-eac0-da15d2d674be.png)
Eでの出力をガウスシアンノイズに置き換え、床の色相、壁の色相、物体の色相をそれぞれ未知の因子として3つのモデルを3D Shapesで学習(w/o Distillation)。L2 RGB距離が、データセット内の隣接する2つの色相サンプル間の平均距離の半分以下であれば、2つの色は同じであると考える。
各ネットワークで1万枚の画像を生成し，その結果を表1に示す。100%に達し，未知の要素はすべてのテストサンプルで変化しないことがわかる。なお，MIGは，ラベル付けされた因子間の離接性能には影響しないため，ここでは測定していない。
**Scope of the Unknown Factor**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/c09efac6-9e5a-a4c7-dad3-99b8ed3f1e66.png)
未知の因子が複数の因子であってもモデルがDisentanglementであることを検証するために、3D Shapesで6つのモデルを訓練する。すべての要素がラベル付けされている状態から、床の色相、方向、壁の色相、スケール、形状を順次、未知の要素に統合していき、物体の色相をラベル付けされたものとするとする。 すべてのMIGスコアは上限の1に非常に近く、良好な品質である。
**Choice  of  the  Unknown  Factor**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/7a09da2b-928f-3ec9-87bc-3fca242b8b5f.png)
3D Shapesの未知の因子とは異なる因子を選択することで、手法のロバスト性を調べた。

### Results and Visualizations
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/8d24eaa4-7ad1-02b8-eb81-533045f9a2ee.png)
unknown factor=coloring factorの場合は色が混じり合っており、encoding factor=color factorの場合ははっきりと分かれており適切にエンコードされていることが示されている。

### Comparisons
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/7d8681ba-1dfa-50e1-ac41-4dd4b52113cf.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/866a97c2-9500-9e1b-47b5-a1f46eab5aa3.png)
[beta-VAE](https://openreview.net/forum?id=Sy2fzU9gl)、[Disentangling by Factorising
](https://arxiv.org/abs/1802.05983)、[Isolating sources of disentanglement in variationalautoencoders](https://arxiv.org/abs/1802.04942)、[Weakly supervised disentanglement by pairwise similarities](https://arxiv.org/abs/1906.01044)、[Demystifying Inter-Class Disentanglement](https://arxiv.org/abs/1906.11796)と比較。既存手法よりも高品質であった。

## Downstream Tasks
最初の２つは、未知の要素を指定することでよりDisentanglementにできたことの検証、その次は未知の要素に関する検証を行っている。
**Portrait Relighting**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/da564150-36b2-affc-f4d9-754c72d6485d.png)
照明をラベル有りの要素、他を未知の要素としてcelebA-HQ、FFHQで訓練。
**Anime Style Transfer**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/498b679c-a45f-ce63-4e0a-e4c9dfdbd294.png)
オンラインで収集した1,139人のアーティストが描いた106,814枚の画像を用いて学習。アーティストをラベル付きの要素とし、他を未知の要素として学習。
**Landmark-Based Face Reenactment**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/4afabb63-d912-d648-31c9-fe060a3163b1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/9a4092fe-d700-9e61-d5d1-7ed90ee61bb0.png)
顔のランドマーク座標に基づいて、学習。 ラベル付けされた要素は、アイデンティティと頭部のポーズで、ポーズはランドマークから推定されたオイラー角で表される。 表情を未知の要素とする。このネットワークはVoxCeleb2を用いて学習。 図7-8は、表情とポーズという1つのファクターを編集した場合（図7）と、3つのファクターを異なるソースからミックスした場合（図8）の、顔の再現結果を示している。
**Skeleton-Based Body Motion Retargeting**
アイデンティティを既知のラベルとし、動きを未知の要素としてMixamoで学習。アイデンティティと動きの分離ができていることを示した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580108/17816089-a64c-e868-91d9-cb48f652f278.png)

## 感想
未知の要素をどうやって指定しているのかは、あまり良く分からなかったのですが、色々な要素を未知のものとして指定でき、汎用性も広そうで色々なものに応用できそうな印象を受けました。
既存のネットワークにこれを加えることで新しい要素指定などができると面白そうです。