ReLU 活性化関数

PyTorchで学ぶIntroduction to Deep Learning

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

シグモイドとソフトマックス

$$

  • 二値分類には SIGMOID

シグモイド関数を用いたニューラルネットワーク

$$

  • 多クラス分類には SOFTMAX

ソフトマックス関数を用いたニューラルネットワーク

PyTorchで学ぶIntroduction to Deep Learning

シグモイド/ソフトマックスの限界

シグモイド関数:

  • 出力は 0〜1 に制限
  • ネットワークの任意の場所で使用可

勾配:

  • x が大きい/小さいと非常に小さい
  • 飽和を起こし、勾配消失につながる

$$

ソフトマックスも飽和の影響を受ける

シグモイド関数の図

PyTorchで学ぶIntroduction to Deep Learning

ReLU

Rectified Linear Unit(ReLU):

  • f(x) = max(x, 0)
  • 正の入力: 出力=入力
  • 負の入力: 出力=0
  • 勾配消失の軽減に有効

$$

PyTorch では:

relu = nn.ReLU()

ReLU 関数の図

PyTorchで学ぶIntroduction to Deep Learning

Leaky ReLU

Leaky ReLU:

  • 正の入力は ReLU と同様
  • 負の入力は小さい係数でスケーリング(既定 0.01)
  • 負の入力の勾配はゼロにならない

$$

PyTorch では:

leaky_relu = nn.LeakyReLU(
  negative_slope = 0.05)

Leaky ReLU の図

PyTorchで学ぶIntroduction to Deep Learning

練習しましょう!

PyTorchで学ぶIntroduction to Deep Learning

Preparing Video For Download...