Leaky ReLU関数とは?機械学習の視点で分かりやすく解説!!

スポンサーリンク
Leaky ReLU関数とは機械学習の視点で分かりやすく解説!!ディープラーニング
この記事を読んで分かること
  • Leaky ReLU関数とは何か
  • Leaky ReLU関数の実装方法
  • Leaky ReLU関数の微分

 

Leaky ReLU関数とは

Leaky ReLU関数とは、

$$f(x)=\begin{cases}x\qquad (x > 0)\\
αx\qquad (x\leq 0)\end{cases}$$

で表される関数です。

 

\(α\)は微小な値をとり、0.01が一般的に使われます。

 

Leaky ReLU関数をグラフで表すとこのような形になります。(\(α=0.1\))

LeakyReLUのグラフ

 

Leaky ReLU関数はディープラーニングの活性化関数の一つです。

 

Leaky ReLU関数の特徴

グラフを見ると、Leaky ReLU関数では0以上の場合では入力がそのまま出力され、0未満の場合では微小な値を出力します。

ReLU関数(ランプ関数)から派生した関数なので、ReLU関数と同様に単純な計算で処理が早いです。

また、0以上の範囲で入力を減衰させずにそのまま出力されるので、勾配の値は消失しない関数となっています。

ReLU関数とは異なり、0未満でも微小な勾配があります。

 

Leaky ReLU関数の特徴
  • 0以上の場合ではそのままの値が出力される
  • 計算処理が早い
  • 0以上で勾配が消失することがない
  • 0未満でも微小な勾配がある

 

派生元であるReLU関数についてはこちらです。

ReLU関数(ランプ関数)とは?機械学習の視点で分かりやすく解説!!
この記事を読んで分かること ReLU関数とは何か ReLU関数の実装方法 ReLU関数の微分 ReLU関数とは ReLU関数とは、 $$f(x)=\begin{cases}x\qquad ...

 

Leaky ReLU関数の用途

Leaky ReLU関数は0未満の勾配も利用することができるので、0未満の誤差も利用するようなモデルに使われます。

具体的には、DCGANやVAEなどの生成分野に使われている印象です。

 

Leaky ReLU関数の用途
  • 0未満の誤差を利用するようなモデル
  • DCGAN
  • VAE(変分オートエンコーダ)

 

Leaky ReLU関数の微分

Leaky ReLU関数の微分

$$f(x)=\begin{cases}1\qquad (x > 0)\\
α\qquad (x\leq 0)\end{cases}$$

と表されます。

ステップ関数と似た関数となります。

 

微分後の関数をグラフで表すとこのような形になります。(\(α=0.1\))

Leaky ReLUの微分のグラフ!

 

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未満でも微小な勾配を持ちます。

 

参考文献

コメント

タイトルとURLをコピーしました