ReLU
Rectified Linear Unit
ReLU(ReLU関数(ランプ関数))とは
ひとことで
入力が0より大きければそのままの値を、0以下なら0を出力する活性化関数。式で書くと f(x) = max(0, x)。勾配消失が起こりにくく、深層学習の隠れ層で広く使われている。
たとえると
マイナスの意見はすべて聞き流し、プラスの意見だけをそのままの大きさで次の人へ伝える伝言係のようなものです。仕組みが単純なので、伝言が何人を経由しても弱まりにくいのが長所です。
現場ではこう使う
画像分類モデルを開発していたチームは、層を深くするほど学習が進まなくなる問題に悩んでいました。隠れ層の活性化関数をシグモイド関数からReLUに変更したところ、入力側の層まで勾配が伝わるようになり、学習が順調に進むようになりました。
試験のポイント
EXAM POINT「x > 0 のとき出力は x、x ≦ 0 のとき 0」と出てきたらReLUです。微分は x > 0 で1、x < 0 で0になるため、微分の最大値が0.25のシグモイド関数よりも勾配消失が起こりにくい点が問われます。入力が負だと勾配が0になり学習が止まるニューロンが出ることがあり、負の側にわずかな傾きを持たせたLeaky ReLUが改良版として知られています。
混同しやすい用語との違い
- Softmax出力層で複数の値を合計1の確率に変換する関数。ReLUは主に隠れ層で使う
- Vanishing Gradient勾配が入力側で消えてしまう問題そのもの。ReLUはその対策の1つ