ReLU (Rectified Linear Unit) 関数の微分
ReLU関数は、ディープラーニングにおいて最も広く用いられる活性化関数の一つです。その定義はシンプルです。
$f(z) = \max(0, z) = \begin{cases} z & \text{if } z > 0 \\\\ 0 & \text{if } z \le 0 \end{cases}$
この関数の勾配(微分値 \(\frac{df}{dz}\) は、バックプロパゲーションにおいて重要です。入力zの値によって場合分けして計算します。
- \(z > 0\) の場合: この区間では \(f(z) = z\) です。\(z\) で微分すると、\(\frac{df}{dz} = 1\) となります。
- \(z < 0\) の場合: この区間では \(f(z) = 0\) です(定数)。定数を微分すると、\(\frac{df}{dz} = 0\) となります。
- \(z = 0\) の場合: 数学的には、この点では微分不可能です(グラフが折れ曲がっているため)。しかし、コンピュータでの実装上は、この点での勾配を 0 または 1 のどちらか(一般的には 0)として定義します。
まとめると、ReLUの勾配は以下のようになります。
$\frac{df}{dz} = \begin{cases} 1 & \text{if } z > 0 \\\\ 0 & \text{if } z \le 0 \end{cases}$
選択肢の評価
- 選択肢1: 誤り。\(z > 0\) なら勾配は 1 です。
- 選択肢2: 誤り。\(z < 0\) なら勾配は 0 です。
- 選択肢3: 正しい。入力 \(z\) が負の場合 (\(z < 0\))、勾配は 0 です。
- 選択肢4: 誤り。勾配は入力 \(z\) の符号によって変わります。
ReLUの勾配の特徴と影響
- 計算効率: 勾配が 0 か 1 と非常にシンプルであるため、計算が高速です。
- 勾配消失問題の緩和: 正の領域では勾配が 1 であり、シグモイド関数のように勾配が小さくならないため、勾配消失問題を緩和できます。
- Dying ReLU問題: 入力が負になると勾配が常に 0 になるため、一度活性化されなくなったニューロンが、その後まったく更新されなくなる「死んだ」状態になる可能性があります。