10日目: Domain Separation Networks

# Domain Separation Networks 要約
## 読んだ論文
Domain Separation Networks
Konstantinos Bousmalis, George Trigeorgis, Nathan Silberman, Dilip Krishnan, Dumitru Erhan
https://arxiv.org/abs/1608.06019v1
上記の論文を読んだので簡単にまとめます．NIPS2016で発表された論文で260引用されている良論文．

## 3行でまとめる
- 機械学習ではラベル付けにかかるコストが大きいので，既にある大規模なラベル付きデータから別の分野に転移させる（Domain Adaption or Transfer Learning）が研究されている．
- 特に自動でラベル付きデータが得られる合成データを用いることが効果的だが，合成データ→実データに転移させる過程で一般化に失敗することが多い．
- 各ドメイン固有の情報をモデル化することでいい感じにしようという企画．

## 関連研究
関連研究にDomain–Adversarial Neural Networks (DANN) [^1]とMaximum Mean Discrepancy(MMD) [^2]が紹介されている．一方，評価を見ると，提案手法DSN (Domain Separation Networks)とそれぞれを併用している様子なので，併用できるものとしてここは読み飛ばしましょう．今度読むことにします．

[^1]: Y. Ganin  et al. . Domain-Adversarial Training of Neural Networks.JMLR, 17(59):1–35, 2016.
[^2]: M. Long and J. Wang. Learning transferable features with deep adaptation networks.ICML, 2015.

## 提案手法
### 前提
- ソースドメインはラベルありデータセット，ターゲットドメインはラベルなしデータセットの教師なしのドメイン適応問題とする．
- 提案手法の目標は，**ソースドメイン**のデータで学習したモデルが**ターゲットドメインに一般化されている**こと．

### 提案モデル
![20190322_001.png](https://qiita-image-store.s3.amazonaws.com/0/376859/7fbce12b-e848-12cb-8deb-1622049fce53.png)

- まず，各関数，変数の定義は以下の通り
 - $X^S=\\{x^S_i, y^S_i\\}^{N_S}_{i=0}$ はソースドメインデータセット
 - $X^t=\\{x^t_i\\}^{N_t}_{i=0}$はターゲットドメインデータセット
 - $N_S, N_t$はサンプル数
 - $E_c\(x;\theta_c\)$は入力$x$を特徴マップ$h_c$に変換するエンコーダ
 - $E_p\(x;\theta_p\)$は入力$x$を特徴マップ$h_p$に変換するエンコーダ．ただしこちらは各ドメインに対してprivateな表現とする．
 - $D\(h;\theta_d\)$は特徴マップ$h$を$\hat{x}$に再構築するデコーダ
 - $G\(h;\theta_g\)$は特徴マップ$h$から$\hat{y}$を予測する分類器
- Figure1と合わせて読むと，出力$\hat{x}, \hat{y}$はそれぞれ以下となる．
 - $\hat{x}=D\(E_c\(x\)+E_p\(x\)\)$ 
 - $\hat{y}=G\(E_c\(x\))$ 

### 学習方法
- 学習の目標は以下の損失関数を最小化する$\boldsymbol{\theta}=\\{\theta_c, \theta_p, \theta_d, \theta_g\\}$を探索することである．
- $L=L_{task} + \alpha L_{recon} + \beta L_{difference} + \gamma L_{similarity}$
- $\alpha, \beta, \gamma$はどこを優先するかという重み
- $L_{task}$は我々が達成したい目的であるタスクの損失関数で，Figure1で言う$L_{class}$
 - 今回は$X_S$にしかラベルが与えられていないため$X_S$のみで学習する．
 - 損失関数は一般的なLog lossである．
- $L_{recon}$は入力の再構築にかかる損失
 - $L_{recon}=\sum_{i=1}^{N_S}L_{si\\_mse}\(x_i^S, \hat{x}^S \)$ （本当は最後にiがつくがMarkdownがうまく動かない）
 - $L_{si\\_mse}\(x, \hat{x}\)=\frac{1}{k}||x-\hat{x}|| - \frac{1}{k^2}\([x-\hat{x}]・K\)$
 - ここで$||・||$はsquared L2ノルムで，kは入力のpixel数，$K$は長さkの1ベクトル（論文内では$1_k$表記）．
 - こちらの方が一般的なMSEより良かったらしい．
- $L_{difference}$はドメイン共通の特徴マップ$h_c$とドメイン特化の$h_p$の違い
 - $L_{difference}=||H_c^{S^T}H_p^S||^2_F+||H_c^{t^T}H_p^t||^2_{F'}$
 - $H_c, H_p$は$h_c, h_p$のマトリックスで，$||・||^2_F$はsquared フロベニウスノルム
- $L_{similarity}$はソースドメインとターゲットドメインから出力された$h$の類似度である．
 - ~~Domain Adversarial Similarity Lossというものを使うらしい．~~
 - ~~~多分これは参考文献[^1]で提案されている手法なので，今回は割愛する．次回読みたい．~~ 

[11日目](https://qiita.com/himatya/items/17dcae2c770c5b89c63b)を経て追記します．
$L_{similarity}$は$h_s, h_t$の類似度合いを測るための損失関数である．
本稿では関連研究を二種類引用して，それぞれを提案手法と組み合わせた場合で評価している．

- まず[DANN](https://arxiv.org/abs/1505.07818)[^1]を使う場合
 - 非常にシンプルにドメイン分類器を作成し，そのモデルに関する損失をそのまま使用する方法である．
 - $L_{similarity}^{DANN}=\sum_{i=0}^{N_S+N_t}\\{d_i \log \hat{d_i} + (1-d_i) \log (1 - \hat{d_i})\\}$
 - $d_i$はソースドメインか否かという0,1の値なので上記はそれを識別した際のlog loss
- 続いて[MMD](http://www.jmlr.org/papers/volume13/gretton12a/gretton12a.pdf)[^3] (Maximum Mean Discrepancy)を使う場合
 - 下記の$L_{similarity}^{MMD}$をを用いる（Markdown化するのが面倒）
 - 第一項でソースドメインのサンプル間全ての$\kappa(・,・)$
 - 第二項でソースターゲット間のサンプル組み合わせ全ての$\kappa(・,・)$
 - 第三項でターゲットドメインのサンプル全ての$\kappa(・,・)$
 - の重みづけ和である．
 - ここで$\kappa(・,・)$はPSDカーネル関数で今回はRBFカーネルを採用している様子
 - $\kappa(x_i,x_j)=\sum_{n}\eta_n exp\\{-\frac{1}{2\sigma_n}||x_i - x_j||^2\\}$

![20190322_002.png](https://qiita-image-store.s3.amazonaws.com/0/376859/11c6f5ce-3007-aaf0-b555-5bf84507a6e0.png)

[^3]: A. Gretton, K. M. Borgwardt, M. J. Rasch, B. Schölkopf, and A. Smola.  A Kernel Two-Sample Test.JMLR, pages 723–773, 2012.

## 評価実験
- 公開データセットMNIST，MNIST-M，German Traffic Signs Recognition Benchmark (GTSRB)，Streetview House Numbers (SVHN)，cropped LINEMODdataseを用いて実験する．
- 詳細は割愛するが，とても精度が上がった．

## まとめ
- ドメイン適応問題において，適応先が教師なしの場合に，適応元で互いに共通部分のみをうまく学習させる手法を提案した．

## 所管
手法は程よく複雑で読み応えがありました．どちらかと言えばMarkdownの数式に苦しめられましたが，1時間半くらいで読了．ただ，先行研究を理解しないと完全には理解できないので今後読みたいです．あと，これを実装する際には数式をもう少し理解しなければいけなさそうです．何にせよ，色々なところに応用できそうでとても気になっているのでいつか実装までしたい両論文だったと思います．