- Leaky ReLU関数とは何か
- Leaky ReLU関数の実装方法
- Leaky ReLU関数の微分
Leaky ReLU関数とは
Leaky ReLU関数とは、
で表される関数です。
\(α\)は微小な値をとり、0.01が一般的に使われます。
Leaky ReLU関数をグラフで表すとこのような形になります。(\(α=0.1\))
Leaky ReLU関数はディープラーニングの活性化関数の一つです。
Leaky ReLU関数の特徴
グラフを見ると、Leaky ReLU関数では0以上の場合では入力がそのまま出力され、0未満の場合では微小な値を出力します。
ReLU関数(ランプ関数)から派生した関数なので、ReLU関数と同様に単純な計算で処理が早いです。
また、0以上の範囲で入力を減衰させずにそのまま出力されるので、勾配の値は消失しない関数となっています。
ReLU関数とは異なり、0未満でも微小な勾配があります。
派生元であるReLU関数についてはこちらです。

Leaky ReLU関数の用途
Leaky ReLU関数は0未満の勾配も利用することができるので、0未満の誤差も利用するようなモデルに使われます。
具体的には、DCGANやVAEなどの生成分野に使われている印象です。
Leaky ReLU関数の微分
Leaky ReLU関数の微分は
と表されます。
ステップ関数と似た関数となります。
微分後の関数をグラフで表すとこのような形になります。(\(α=0.1\))
0以上の範囲で出力が1なので、勾配が小さくならず勾配消失が防がれています。
0未満の範囲でも出力が0ではないので、出力を伝えることができます。
Leaky ReLU関数をpythonで実装
Leaky ReLU関数をpythonで実装していきます。
# LeakyReLU
def leaky_relu(x, alpha):
return np.where(x >= 0, x, alpha * x)
# LeakyReLUの微分
def leakyrelu_dx(x, alpha):
return np.where(x > 0, 1, alpha)
単純な関数なので、シンプルに表すことができました。
まとめ
Leaky ReLU関数とは、
$$f(x)=\begin{cases}x\qquad (x > 0)\\
αx\qquad (x\leq 0)\end{cases}$$
で表される関数です。
Leaky ReLU関数は、DCGANやVAEなどの生成分野に使われます。
ReLU関数の派生形で、0未満でも微小な勾配を持ちます。
コメント