🌱
えっちなサイトを作る(27)
引き続きえっちなゲームがプレイできちゃうサイトを作ろうと頑張ります。
引き続きAttentionやっていきます🤯
モザイク除去から学ぶ最先端のディープラーニング本をやる(12)
演習問題8-2
- Gated Convレイヤーの実装
- U-NetにGated Convの搭載
- パラメータ数 1.47MB
- データ作成
- 損失関数・評価関数の実装
- 訓練
- GPUメモリがギリギリ
- GPUランタイムが何度も切断されたので中断
演習問題 8-3
- Gated Convによるモザイク除去
- 学習済みデータの利用
- 10epoch訓練
- psnr = 26.906307220458984, msssim = 0.948480486869812
- 10epochのデータ消失したので2epoch目のデータ
モザイク回復結果
- 元画像 -> モザイク化 -> モザイク除去 -> 元画像とモザイク回復部分の合成
- 合成部分の式はp97にあるやつ
- 馴染み具合、なめらかさは結構良い感じ
- 衣服の形状回復は難しい
9章 PEPSI
- PEPSI概要
- Gated Convの改良、GANベースのモデル
- DeeepCreamPy v2で利用
- Contextual Attention の類似度にユークリッド距離を用いる
- その後tanh,sofmax
- PNSR,SSIMで改善
- 出力層に全結合層を利用
- Perception軸で有利になる
- Coarse to fine 構造で重みを共有するネットワーク構造
- 推論時の計算量の削減
- 係数を使いまわして、削減しているDiet-PEPSI-Unitのモデルもある
- 損失関数
- Contextual Attention Module = CAM
- G
- Coarse側ロス
L_C L_C = \frac{1}{N}\sum_{i=1}^{N}||I_C^{(i)}-G^{(i)}||_1 - CAMなしCoarse側出力 :
I_c
- Fine側ロス
LK_F L_F = \frac{\lambda_{L1}}{N}\sum_{i=1}^{N}|I_F^{(i)}-G^{(i)}|-\lambda_{adv}L_{adv} - CAMありFine側出力 :
I_F -
はHinge LossL_{adv} -
はハイパーパラメータ\lambda_{L1},\lambda{adv} - L1 Lossの重みは100倍
- G全体のロス
L_G L_G = L_F + \lambda(1-\frac{k}{k_{max}})L_C -
はハイパーパラメータ\lambda - 5
- kはエポック数
- 学習が進むにつれてCoarse側のロスを減らす
- D
L_D = L_{adv}
- Coarse側ロス
- 実装結果
- モザイク、白抜きケースでP-ConvよりもPNSR,FIDで改善
- ヒストグラムで確認するとP-Convで低下していたPNSR低下がなくなっている
- PEPSIはモザイク境界での馴染みぐあいがよい
- 出力層に全結合層を利用しているため
- ハードサンプルの回復はPEPSIでも難しい
- 類似度判定で利用するユークリッド距離とコサインでは得意不得意があるかも
演習 9
- PEPSIの実装
- 学習済みデータの利用
- 5 epoch
- TPU使用で89分
- ユークリッド距離の演算とTPUの相性が悪いらしい
- val_psnr = 27.153867721557617, val_msssim = 0.945689857006073
モザイク回復結果
- 元画像 -> モザイク化 -> モザイク除去 -> 元画像とモザイク回復部分の合成
- 合成部分の式はp97にあるやつ
- PEPSIの場合は、元画像との合成やらないほうが境界が綺麗かも
- 目で見た品質(perseption軸)的にはGated Convとそう変わらない印象
- やっぱり衣服の形状回復は難しい…
終わりに
P-Convよりは流石に品質は良かったですが、Attentionベースだと形状回復に限界ありそうです。
次回はEdge Connect見ていきます。
Discussion