🌱

えっちなサイトを作る(26)

2021/08/28に公開

引き続きえっちなゲームがプレイできちゃうサイトを作ろうと頑張ります。

Attentionやっていきます😕

モザイク除去から学ぶ最先端のディープラーニング本をやる(12)

https://qiita.com/koshian2/items/aefbe4b26a7a235b5a5e

8章 Gated Conv

  • Patch Match
    • マスク領域のパッチに対して、非マスク領域の全てのパッチから最も合うものを探してマスク領域にコピペする
    • NNのモジュールでPatchMatchを再現したものがContextual Attention
  • Contextual Attention
    • 3つの要素
      • Deconvolutionによる画像合成
      • Attention
      • 画像のパッチ分割
    • 類似度を上げるために画像パッチにモーションフィルタをかける
  • Deconvolution
    • 畳み込み(Conv2D)の逆変換
      • tf.nn.conv2d_transpose
      • Upsamplingとして利用できる
  • Attention
    • Deconvolutionで入力を合成比率、カーネルを画像の集合にすると画像の合成となる
    • 類似度をsoftmax関数に入れて0-1に変換したものを合成比率として利用する
  • 画像のパッチ分割
    • tf.image.extract_patches
      • TPUでは使えない?(要調査)
  • Gated Conv
    • P-ConvのマスクアップデートをNNに任せようと言うアイデア
    • レイヤー構造
      • 出力チャンネルを分割、それぞれELUとsigmoid関数にかける。それを合成
    • ネットワーク構造
      • Gが2段構造=Coarse to fine
        • 荒い結果を作ってから鮮明な結果を作る
      • 2段目の構造は2つに分岐
        • fine: Dilated Gated Conv
        • gt : Contextual Attention を入れたGated Conv
      • D側はSpectral Normalizationを入れたPatch GAN
    • 損失関数
      • L_G = L_1(I_{coarse},I_{gt}) + L_1(I_{fine},I_{gt}) + L_{adv}
        • L_{coarse},L_{fine} がGの2段構成部分
        • L_{1},L_{adv}の重みは1:1
        • L_{adv}にはHinge Lossを利用
  • 実行結果
    • P-Convよりも良い品質
      • PSNRやFID指標でも良い結果
    • 一部色が転移する
    • (著者の考察)Contextual Attentionのsoftmaxは1-mmのがFID指標や学習率で有利かも

演習問題 8-1

  • Average Poolingの畳み込み
  • Deconvolution
  • Deconvolutionによるコピペ
  • Deconvolutionによるモザイクアート
  • Contextual Attentionの発想
  • 画像のパッチ切り出し
    • 難しそうなので後回しにした

終わりに

Gated Convのネットワークはかなり複雑です。
AttentionベースのGANが必要になったら見直す感じでとりあえず先に進めます。
次回は演習8-2,8-3をざっくり見て9章を見ていきたいです。

Discussion