医療系AIエンジニアの技術メモ

ディープラーニング(主に画像系)の技術メモブログです

SEARCHING FOR ACTIVATION FUNCTIONS

スポンサーリンク


f:id:y_kurashina:20190526212420j:plain
Fig1. 活性化関数Swish(左図はSwish、右図はSwishの導関数)

論文URL

https://arxiv.org/pdf/1710.05941.pdf

2017年10月公開

ポイント

  • Google Brainが強化学習で生成した活性化関数Swishを提案
    • Swish(x) = x \cdot sigmoid(\beta x)
    • \beta \rightarrow \inftyの極限ではReLUと一致する
    • \betaは学習可能だが、\beta = 1としても汎化性能に有意差無し。
      • \beta = 1のケースは強化学習の問題で評価した先行研究があり、SiLU (Sigmoid-Weighted Linear Units)と呼ばれている。
    • 使用時の注意点
      • LSTM等のRNNモデルとの相性は未評価
      • 既存モデルのBN層のscale項が無効化されていた場合、有効化する必要がある。
        • ReLUでは線形なためscale項を学習する必要は無いが、Swishは非線形関数であるため。
      • ReLU使用時よりも、学習率を少し小さくすると良い。

強化学習による活性化関数探索条件

  • 単項演算と二項演算の組み合わせで活性化関数を生成
  • ResNet20のReLUを生成した活性化関数で置き換え、CIFAR-10で高精度となる活性化関数を探索

他の活性化関数との比較

  • 比較対象活性化関数
    • ReLU
    • LReLU ( Leaky ReLU )
    • PReLU ( Parametric ReLU )
      Leaky ReLUのパラメータαを学習するもの
    • Softplus
      f(x) = \log(1 + \exp(x))
    • ELU ( Exponential Linear Unit )
      f(x) = \left\{ \begin{array} {}
x \qquad \qquad \qquad \quad (x \ge 0) \\
\alpha(\exp(x) - 1) \qquad (x \lt 0)
\end{array} \right.
      \alpha = 1
    • SELU : Scaled Exponential Linear Unit
      f(x) = \lambda \times ELU
      \alpha \fallingdotseq 1.6733
      \lambda \fallingdotseq 1.0507
    • GELU : Gaussian Error Linear Unit
      f(x) = x \times \Phi (x)
      \Phiは正規分布の積算確率分布
  • 実験対象データセットとモデル
    • CIFAR10, 100
      • ResNet164, Wide ResNet28-10, DenseNet100-12
    • ImageNet
      • Inception-ResNet-v2, Inception-v4, Inception-v3, MobileNet, Mobile NASNet-A
    • WMT 2014 English!German dataset
      • Transformer
  • 他の活性化関数との比較結果 f:id:y_kurashina:20190526223708j:plain