ReLU関数の計算
ReLU(Rectified Linear Unit)関数は、入力が0以下の場合は0を、入力が0より大きい場合はその入力値をそのまま出力する関数です。
$ f(x) = \max(0, x)$
与えられた入力値 5 に対してReLU関数を適用します。
入力値 5 の場合
$ f(5) = \max(0, 5) = 5$
したがって、出力値は 5 となります。
ReLUの特徴
- 計算が非常に高速(加算、比較、乗算のみ)。
- 勾配消失問題を緩和する効果がある(正の領域では勾配が1)。
- スパースな活性化(多くのニューロンが0を出力する)をもたらすことがある。
- 負の入力に対して勾配が0になるため、ニューロンが「死んでしまう」(Dying ReLU)問題が発生することがある。
他の活性化関数との比較
シグモイド関数やtanh関数と比較して、ReLUは計算コストが低く、勾配消失を起こしにくいため、ディープラーニングで広く利用されています。
import numpy as npdef relu(x):
return np.maximum(0, x)inputs = np.array([-3, 0, 5])
outputs = relu(inputs)
print(f"Inputs: {inputs}")
print(f"ReLU Outputs for 5: {relu(5)}")
# 出力:
# Inputs: [-3 0 5]
# ReLU Outputs for 5: 5