Open shimopino opened 4 years ago
[arXiv:1711.09020] StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
Yunjey Choi, Minje Choi, Munyoung Kim, Jung-Woo Ha, Sunghun Kim, Jaegul Choo
2017-11-24
1つのモデルで複数ドメインで画像変換を行うStarGANを提案した。StarGANは複数のデータセットを同時に学習することが可能であり、既存モデルよりも柔軟に対象ドメインへの画像変換を行うことが可能である。
既存の画像ドメイン変換モデルは2つのドメインに制限されており、3つ以上のドメイン変換に関してScalabilityもRobustnessも有していない。
本研究で提案しているStarGANは以下のCelebAやRaFDといったデータセットに付与されている顔に関する1つ1つの属性をドメインとし、これらの属性の変換を行うことが可能となる。
しかし従来のモデルは2つのドメイン間での画像変換を目的としており、以下の左図のように複数のドメイン間での変換を行うには多くのモデルが必要となってしまう。しかし顔の形状などの特徴量はどのモデルも学習する特徴であり、この構造では非効率な計算になってしまう。
StarGANは複数のドメインデータを1つのネットワークに学習させる手法である。考え方は単純であり、各ドメインに対してOne-Hotなラベルを設け、ドメイン画像とともにこのラベルをGeneratorに渡すことによって複数ドメイン間での画像変換を達成している。
まずは使用するデータセットを1つに絞ってドメイン変換を行う。StarGANでは学習中にランダムに特定のドメインを指すラベルを生成し、これをGeneratorに対する入力として画像変換を行うことでGeneratorは柔軟に複数ドメインに対して画像変換を行うことが可能となる。
Discriminatorは画像を受け取り、画像が本物か偽物かの識別以外のも対象画像のドメインラベルを分類するタスクも解いている。
Generatorは入力画像とTargetのドメインラベルを受け取り画像を対象のドメインに変換させ、また同時に生成された画像と対象のドメインラベルを使用して元の画像に再構成できるようにしている。
つまり損失関数としては以下の3種類となる。
コチラは通常のGANの損失関数と同じで、DiscriminatorとGeneratorの間でMinMaxゲームを行う関数である。特殊な点はGeneratorが画像以外にドメインラベルを使用する点のみである。
DiscriminatorにはAuxiliary Classifierを採用しており、画像のドメインを分類するタスクもDとGの学習と同時に解かせている。実画像を入力に取る場合には以下のようにデータセットからドメインラベルは準備できる。
生成画像に対してはランダムにドメインラベルを使って画像を生成した後に全く同じドメインラベルに分類できるようにDiscriminatorを学習させ、また式からわかるようにGeneratorもDiscriminatorが正しくドメインを識別できるような画像を生成するように学習を行う。
上記の2つの損失関数だけでは変換された画像が、元の画像と意味が一貫しているかどうか(背景などが一致しているのか)は保証されない。そこで変換前後で画像の意味の一貫性が保たれるように再構成損失を適用する。
これら3つの損失関数を使用してDiscriminatorとGeneratorの最適化を行っていく。以下の実験では分類損失λ=1、再構成損失λ=10に設定している。
StarGANではドメインラベルを使用することで複数のデータセットを同時に学習することも可能となるが、CelebAやRaFDでは共通にもっていない独自のラベルを有しており(CelebAなら髪色や性別、RaFDなら怒りや幸せなど)、再構成損失には変換前後のドメインのラベルが必要となりこのままでは学習を行うことが難しい。
そこで特定のデータセットに関する情報のみに着目して、その他の不明な情報を無視できるマスクベクトルを導入した。
得られた新たなベクトルは使用するデータセットの個数分の次元数で構成されるOne-Hotベクトルを結合させたものになる(例えば今回の場合はn=2)。
複数のデータセットを学習時に使用する場合には、上記で提案しているクラスベクトルを使用することで1つのネットワークでも学習できるようにしている。1つのデータセットを使用する場合との違いは入力されるクラスベクトルの次元数のみである。
Discriminatorの学習時には使用しているデータセットのみに対する分類確率を計算する。例えばCelebAの画像を識別している際には、分類するクラスはCelebAのクラスのみであり、RaFDで定義されている感情などは分類しないようにする。
以下が画像変換を行う既存のモデルとの比較結果である。CycleGANなどは複数のドメインに対してそれぞれ異なるモデルを学習させている。
StarGANがどの属性に関しても他の手法を上回る質の画像を生成できている。これは複数のドメインを使用することで過学習を防ぐような正則化の役割を発揮していると考えられる。
数値に関して比較を行った場合でも、StarGANが既存手法を大きく上回るような精度を達成できていることがわかる。
https://github.com/yunjey/StarGAN paperswithcode
論文へのリンク
[arXiv:1711.09020] StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
著者・所属機関
Yunjey Choi, Minje Choi, Munyoung Kim, Jung-Woo Ha, Sunghun Kim, Jaegul Choo
投稿日時(YYYY-MM-DD)
2017-11-24
1. どんなもの?
1つのモデルで複数ドメインで画像変換を行うStarGANを提案した。StarGANは複数のデータセットを同時に学習することが可能であり、既存モデルよりも柔軟に対象ドメインへの画像変換を行うことが可能である。
2. 先行研究と比べてどこがすごいの?
既存の画像ドメイン変換モデルは2つのドメインに制限されており、3つ以上のドメイン変換に関してScalabilityもRobustnessも有していない。
本研究で提案しているStarGANは以下のCelebAやRaFDといったデータセットに付与されている顔に関する1つ1つの属性をドメインとし、これらの属性の変換を行うことが可能となる。
しかし従来のモデルは2つのドメイン間での画像変換を目的としており、以下の左図のように複数のドメイン間での変換を行うには多くのモデルが必要となってしまう。しかし顔の形状などの特徴量はどのモデルも学習する特徴であり、この構造では非効率な計算になってしまう。
StarGANは複数のドメインデータを1つのネットワークに学習させる手法である。考え方は単純であり、各ドメインに対してOne-Hotなラベルを設け、ドメイン画像とともにこのラベルをGeneratorに渡すことによって複数ドメイン間での画像変換を達成している。
3. 技術や手法の"キモ"はどこにある?
3.1 Multi-Domain Image-to-Image Translation
まずは使用するデータセットを1つに絞ってドメイン変換を行う。StarGANでは学習中にランダムに特定のドメインを指すラベルを生成し、これをGeneratorに対する入力として画像変換を行うことでGeneratorは柔軟に複数ドメインに対して画像変換を行うことが可能となる。
Discriminatorは画像を受け取り、画像が本物か偽物かの識別以外のも対象画像のドメインラベルを分類するタスクも解いている。
Generatorは入力画像とTargetのドメインラベルを受け取り画像を対象のドメインに変換させ、また同時に生成された画像と対象のドメインラベルを使用して元の画像に再構成できるようにしている。
つまり損失関数としては以下の3種類となる。
敵対的損失関数
コチラは通常のGANの損失関数と同じで、DiscriminatorとGeneratorの間でMinMaxゲームを行う関数である。特殊な点はGeneratorが画像以外にドメインラベルを使用する点のみである。
ドメイン分類損失
DiscriminatorにはAuxiliary Classifierを採用しており、画像のドメインを分類するタスクもDとGの学習と同時に解かせている。実画像を入力に取る場合には以下のようにデータセットからドメインラベルは準備できる。
生成画像に対してはランダムにドメインラベルを使って画像を生成した後に全く同じドメインラベルに分類できるようにDiscriminatorを学習させ、また式からわかるようにGeneratorもDiscriminatorが正しくドメインを識別できるような画像を生成するように学習を行う。
再構成損失
上記の2つの損失関数だけでは変換された画像が、元の画像と意味が一貫しているかどうか(背景などが一致しているのか)は保証されない。そこで変換前後で画像の意味の一貫性が保たれるように再構成損失を適用する。
これら3つの損失関数を使用してDiscriminatorとGeneratorの最適化を行っていく。以下の実験では分類損失λ=1、再構成損失λ=10に設定している。
3.2 Training with Multiple Datasets
StarGANではドメインラベルを使用することで複数のデータセットを同時に学習することも可能となるが、CelebAやRaFDでは共通にもっていない独自のラベルを有しており(CelebAなら髪色や性別、RaFDなら怒りや幸せなど)、再構成損失には変換前後のドメインのラベルが必要となりこのままでは学習を行うことが難しい。
マスクベクトル
そこで特定のデータセットに関する情報のみに着目して、その他の不明な情報を無視できるマスクベクトルを導入した。
得られた新たなベクトルは使用するデータセットの個数分の次元数で構成されるOne-Hotベクトルを結合させたものになる(例えば今回の場合はn=2)。
学習方法
複数のデータセットを学習時に使用する場合には、上記で提案しているクラスベクトルを使用することで1つのネットワークでも学習できるようにしている。1つのデータセットを使用する場合との違いは入力されるクラスベクトルの次元数のみである。
Discriminatorの学習時には使用しているデータセットのみに対する分類確率を計算する。例えばCelebAの画像を識別している際には、分類するクラスはCelebAのクラスのみであり、RaFDで定義されている感情などは分類しないようにする。
4. どうやって有効だと検証した?
以下が画像変換を行う既存のモデルとの比較結果である。CycleGANなどは複数のドメインに対してそれぞれ異なるモデルを学習させている。
StarGANがどの属性に関しても他の手法を上回る質の画像を生成できている。これは複数のドメインを使用することで過学習を防ぐような正則化の役割を発揮していると考えられる。
数値に関して比較を行った場合でも、StarGANが既存手法を大きく上回るような精度を達成できていることがわかる。
5. 議論はあるか?