オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】Self-Attention GAN / SA GAN

Index

Self-Attention GAN

深層学習を用いた生成アルゴリズム GAN の応用手法.

画像生成の精度に対する改善手法.

従来の GAN では、DC GAN で画像対応するために、CNN が導入された.

CNN の局所的な受容野より、大局的な受容野を利用できる Self Attention を導入した.

改善点

Attention Map

この提案手法では、GAN のフレームワークに Self Attention を導入した.

具体的には、Generator と Discriminator のネットワークアーキテクチャに Self Attention を導入した.

さらに具体的には、Generator / Discriminator の CNN の後に、Self Attention を連結する.

つまり、CNN の中間層からの出力が、Self Attention の入力になる.





具体的な計算方法は以下の手順.

 x \ \in\ R^{C\ \times\ N}


  •  x : CNN からの出力
  •  C : チャネル数
  •  N : CNN からの特徴量の数  N=n\ \times\ n


Attention の計算のために、Key と Value を計算する.

 
\begin{align}
f(x)&=W_{fx}\\
g(x)&=W_{gx}
\end{align}




Key と Value から 関連度・重要度  \beta を計算.


\begin{align}
s_{i\ j}\ &=\ f(x_{i})^{T}\ \cdot\ g(x_{j}) \\
\\
\beta_{j,\ i}\ &=\ \displaystyle \frac{\exp(s_{i\ j})}{\displaystyle \sum_{i=1}^{N} \exp(s_{i\ j})}
\end{align}




 \beta_{j,\ i} は、ある位置  j に対する、各位置  i に関する評価を表す.

最後に出力として、重要度を入力に掛け合わす.


\begin{align}
h(x_{i})\ &=\ W_{h}x_{i} \\
v(x_{i})\ &=\ W_{v}x_{i} \\
\\
o_{j}\ &=\ v \left( \displaystyle \sum_{i=1}^{N} \beta_{j,\ i} h(x_{i}) \right)
\end{align}


最終的な出力には、入力の情報を加える.

 y_{i}\ =\ \gamma o_{i}\ +\ x_{i}

Spectral Normalization

Spectral Normalization GAN / SN GAN で利用されている Spectral Normalization を Generator と Discriminator に導入.

Spectral Normalization GAN / SN GAN では Discriminator のみに適用していた.



Spectral Normalization を導入することで、Lipschitz 連続の制約を課すことができる.

Two Timescale Update rule / TTUR

従来の GAN の学習では、Generator の 1 回の学習のステップに対し、複数回 (5回とか) の Discriminator の学習ステップを行なっていた.

TTUR を導入することで、学習にステップの回数を減らし学習を高速化する.

  • GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium

参考

  • Self-Attention Generative Adversarial Networks
    • [2018]
    • Abstract
    • 3 Self-Attention Generative Adversarial Networks
    • 4 Techniques to Stabilize the Training of GANs
      • 4.1 Spectral normalization for both generator and discriminator
      • 4.2 Imbalanced learning rate for generator and discriminator updates
    • arxiv.org

Web サイト