ReLU(レルー)は、ディープラーニングのニューラルネットワークで広く用いられる活性化関数の一種です。入力値が0以下の場合は0を出力し、0を超える場合は入力をそのまま出力するという単純な計算ルールを持ちます。計算が非常に高速で、勾配消失問題を緩和できるため、現代の深層学習モデルにおいてデファクトスタンダードとして定着しています。
ReLUとは
ReLU(Rectified Linear Unit、整流線形ユニット)は、ニューラルネットワークの中間層で最も一般的に使用される非線形な活性化関数であり、入力が正のときはそのまま、負のときはゼロを出力するシンプルなアルゴリズムです。
詳しく解説
ReLUは、ニューラルネットワークが複雑なパターンを学習するために必要な非線形性を導入する役割を持ちます。数式では f(x) = max(0, x) と表され、その最大の特徴は計算の単純さにあります。従来のシグモイド関数やtanh関数などの活性化関数は、入力値が極端に大きくなると傾き(勾配)がほぼゼロになり、学習が進まなくなる勾配消失問題を引き起こしていました。これに対し、ReLUは入力が正の領域において傾きが常に1であるため、多層のネットワークであっても効率的に勾配を伝播させることができます。この性質により、ディープラーニングモデルの学習速度が飛躍的に向上しました。
具体例・使われ方
ReLUは、画像認識を行う畳み込みニューラルネットワーク(CNN)や、自然言語処理を行うトランスフォーマーモデルなど、ほぼすべての最先端のディープラーニングアーキテクチャの中間層(隠れ層)において標準的な活性化関数として利用されています。人間の脳の神経細胞(ニューロン)が特定の刺激に対してのみ活性化し、それ以外は応答しない「スパース性(疎性)」をシミュレートするイメージで動作し、不要な情報の伝達を抑えて効率的な計算を実現しています。
似た用語との違い
シグモイド関数は出力を0から1の範囲に、tanh関数は-1から1の範囲に滑らかに圧縮する非線形関数です。これらは勾配消失問題を起こしやすいのに対し、ReLUは正の領域で入力値をそのまま通すため勾配消失が起きにくいという違いがあります。また、ReLUは0以下で完全に出力が0になりますが、この弱点を克服するために、負の領域でもわずかな傾きを持たせるLeaky ReLUや、滑らかな曲線で表現するGELU(Gaussian Error Linear Unit)といった派生関数が開発され、用途に応じて使い分けられています。
注意点
ReLUの主な注意点として、特定のニューロンが一度負の値を出力し始めると、その後の学習で常に0を出力し続け、更新が行われなくなるダイイングReLU問題と呼ばれる現象があります。また、出力値の上限がないため、活性化の値が非常に大きくなり、勾配爆発を引き起こす可能性もあります。さらに、出力が0を中心に配置されない(非ゼロ中心)ため、最適化の収束がやや不安定になる傾向があり、これらを解決するためにバッチ正規化などの技術と組み合わせて使用されることが一般的です。