LeakyReLU関数

Leaky ReLU関数は以下のように定義されます。ここで、xは入力値、aは小さな正の定数(通常は0.01)です。

この式の意味するところは、もしxが負であれば、その値にaを掛けた値を出力し、もしxが正であれば、そのままの値を出力する、ということです。

ReLU関数の主な問題点の一つに、「死んだニューロン」問題があります。これは、ReLU関数が負の入力に対して0を返すため、学習過程であるニューロンの重みが更新されず、そのニューロンが活性化しなくなる現象を指します。

これに対して、Leaky ReLUでは負の入力に対しても微小な出力をするため、上記の問題をある程度緩和できます。そのため、Leaky ReLUはReLUの代替として、多くの深層学習モデルで使用されています。

LeakyReLU関数のグラフ

LeakyReLU関数のグラフは以下のようなコードで実装することができます。

import numpy as np
import matplotlib.pyplot as plt

def leaky_relu(x, alpha=0.1):
    return np.where(x >= 0, x, alpha * x)

x = np.linspace(-10, 10, 1000)
y = leaky_relu(x)

plt.plot(x, y)
plt.title("Leaky ReLU Activation Function")
plt.xlabel("x")
plt.ylabel("Leaky ReLU(x)")
plt.grid(True)
plt.show()