zerebom / paper-books

@zerebom が読んだ技術書、論文をまとめています。推薦システム系が多いです。
https://github.com/zerebom/paper-books/issues
2 stars 0 forks source link

pix2pix #39

Open zerebom opened 3 years ago

zerebom commented 3 years ago

src: https://arxiv.org/pdf/1611.07004.pdf simple implementation: https://github.com/mrzhu-cool/pix2pix-pytorch image

概要

styleGAN系タスクのさきがけ。 画像Aを入力し、画像Bを正解データとする学習を繰り返し、 画像Aから画像Bを推論させるというタスク(image-to-image translation problems)を解かせる。 入力画像から出力画像への写像を学習するだけでなく、この写像を学習するための損失関数も学習する。 EncoderにはUNet based architecture, DecoderにはPatchGANに似た機構を使うことで、従来研究のPixel wiseの学習とはことなり、周辺情報を考慮した学習が可能になる

提案手法

タスク

通常のGANは乱数から画像を生成するが、 今回はペア画像があるのでDiscriminatorにも元画像を見せて、モデルの出力を制限づける。 これをConditional GANと命名し、以下のようなタスクにしている。

image

Conditional GANs(条件付きGAN) image

Generatorの役目は単にDを騙すだけでなく、元画像に近いリアリティのある画像を生成する必要もあるので、 GANLossに加えて、正解画像とのL1誤差を足している。 L2誤差よりも結果がシャープになる。 image

Generator

UNetアーキテクチャを用いることで、大域特徴と局所特徴どちらも捉える。

Discriminator

画像全体を一度に見て判定するのではなく、少領域に分けて各領域の判定を行う。 256*256 のときは受容野が70*70だったときが一番精度が良かったらしい。

この少領域ごとに識別する方法は下記のように、工夫されて実装されている

畳み込みで処理した結果として得られた特徴マップの1要素というのは、元となる画像のある範囲の領域だけの値から導出されたものとなる。なので以下の2つは等価

  • 入力画像をn2個の小さい領域に分割した上で、それぞれを1要素となるまで畳み込む
  • 入力画像をそのまま畳み込んでn * nの大きさとなるまで畳み込む

patchGANの解説