Open shimopino opened 4 years ago
[arXiv:2003.00273] Reusing Discriminators for Encoding Towards Unsupervised Image-to-Image Translation
Runfa Chen, Wenbing Huang, Binghui Huang, Fuchun Sun, Bin Fang
2020-02-29
従来の画像変換タスクにおいて、入力画像を別ドメインに変換するためにEncoderを使用して低次元の潜在表現に変換していた。本論文では、DiscriminatorをEncoderとClassifierに分けることで、2つの処理を同時にこなすNICE-GANを提案した。
モデルを軽量化しながらも既存のモデルを超える性能を達成している。
CycleGANなどのモデルでは画像変換を以下の3つの計算で行っている。
DiscriminatorとEncoderは別々のネットワークとして定義されているが、DCGANの論文で提起されているように、Discriminatorはより入力された画像をより浅い層で圧縮した表現に変換する部分と、圧縮された表現から偽物か本物かをより深い層で判定している。
本論文ではこの特性を生かし、2つの特性を考慮したDiscriminatorを提案し、画像変換タスクで使用されるネットワークを従来のものよりも軽量化させることに成功した。
以下が今回提案しているNICE-GANの構造である。
DiscriminatorはEncoderとClassifierから構成されている。入力された画像をEncoderで圧縮した後に、それぞれ異なるサイズの受容野を有するサブネットワークに入力し、分類タスクを実行している。
Encoderの計算には、U-GAT-ITで提案された注意機構による特徴量マップの重み付けを利用している。元の論文と異なるのは、残差接続を導入したことと学習パラメータを導入しより柔軟に特徴量マップの重要度を調整できるようにした点である。
そのほかにAdaLIN、Spectral Normalization、Cycle-Concistency Lossを導入している。
Encoder部分は、生成された画像が本物か偽物かを識別するDiscriminatorの一部でありながら、ドメイン変換を行うGenearatorでも使用するため、通常の学習プロセスを導入するとそれぞれの学習が混ざり、一貫性を保つことが難しくなってしまう。
そこでEncoderの学習をGeneraotorとは独立して行うことでこの課題を解決した。
流れとしては、まずは以下の敵対的損失関数に対して、損失を最大化させる場合にはE_yを学習させてE_xは固定のままにしておく。損失を最小化させる場合にはどちらのEncoder側も固定してまま学習を進める。
つまりGeneraotor側の入力を出力するEncoderは常に固定しておき、分類を行うDiscriminator側のEncoderを一緒に学習させていくことを意味します。
Generatorに関してはCycle LossとReconstruction Lossの計算を別途行います。
Cycle Loss
Reconstruction Loss
複数のデータセットを使用して、いくつかのモデルと比較を行った。 ほとんどのデータセットで既存の手法を上回る性能を発揮している。特に犬と猫の変換は既存モデルを大きく上回っている。
またEncoderをDiscriminator1つにまとめた結果、既存のモデルよりも軽量であり計算速度も速いことがわかる。
Ablation Studyを見てみると、今回提案しているNICEの構造とAttentionの残差接続の効果が高いことがわかる。
Encoderの学習方法を以下の3種類で比較した。
https://github.com/alpc91/NICE-GAN-pytorch
論文へのリンク
[arXiv:2003.00273] Reusing Discriminators for Encoding Towards Unsupervised Image-to-Image Translation
著者・所属機関
Runfa Chen, Wenbing Huang, Binghui Huang, Fuchun Sun, Bin Fang
投稿日時(YYYY-MM-DD)
2020-02-29
1. どんなもの?
従来の画像変換タスクにおいて、入力画像を別ドメインに変換するためにEncoderを使用して低次元の潜在表現に変換していた。本論文では、DiscriminatorをEncoderとClassifierに分けることで、2つの処理を同時にこなすNICE-GANを提案した。
モデルを軽量化しながらも既存のモデルを超える性能を達成している。
2. 先行研究と比べてどこがすごいの?
CycleGANなどのモデルでは画像変換を以下の3つの計算で行っている。
DiscriminatorとEncoderは別々のネットワークとして定義されているが、DCGANの論文で提起されているように、Discriminatorはより入力された画像をより浅い層で圧縮した表現に変換する部分と、圧縮された表現から偽物か本物かをより深い層で判定している。
本論文ではこの特性を生かし、2つの特性を考慮したDiscriminatorを提案し、画像変換タスクで使用されるネットワークを従来のものよりも軽量化させることに成功した。
3. 技術や手法の"キモ"はどこにある?
3.1 ネットワーク構造
以下が今回提案しているNICE-GANの構造である。
DiscriminatorはEncoderとClassifierから構成されている。入力された画像をEncoderで圧縮した後に、それぞれ異なるサイズの受容野を有するサブネットワークに入力し、分類タスクを実行している。
Encoderの計算には、U-GAT-ITで提案された注意機構による特徴量マップの重み付けを利用している。元の論文と異なるのは、残差接続を導入したことと学習パラメータを導入しより柔軟に特徴量マップの重要度を調整できるようにした点である。
そのほかにAdaLIN、Spectral Normalization、Cycle-Concistency Lossを導入している。
3.2 学習方法
Encoder部分は、生成された画像が本物か偽物かを識別するDiscriminatorの一部でありながら、ドメイン変換を行うGenearatorでも使用するため、通常の学習プロセスを導入するとそれぞれの学習が混ざり、一貫性を保つことが難しくなってしまう。
そこでEncoderの学習をGeneraotorとは独立して行うことでこの課題を解決した。
流れとしては、まずは以下の敵対的損失関数に対して、損失を最大化させる場合にはE_yを学習させてE_xは固定のままにしておく。損失を最小化させる場合にはどちらのEncoder側も固定してまま学習を進める。
つまりGeneraotor側の入力を出力するEncoderは常に固定しておき、分類を行うDiscriminator側のEncoderを一緒に学習させていくことを意味します。
Generatorに関してはCycle LossとReconstruction Lossの計算を別途行います。
Cycle Loss
Reconstruction Loss
4. どうやって有効だと検証した?
複数のデータセットを使用して、いくつかのモデルと比較を行った。 ほとんどのデータセットで既存の手法を上回る性能を発揮している。特に犬と猫の変換は既存モデルを大きく上回っている。
またEncoderをDiscriminator1つにまとめた結果、既存のモデルよりも軽量であり計算速度も速いことがわかる。
Ablation Studyを見てみると、今回提案しているNICEの構造とAttentionの残差接続の効果が高いことがわかる。
Encoderの学習方法を以下の3種類で比較した。
5. 議論はあるか?
6. 次に読むべき論文はあるか?
論文情報・リンク