ReLU

負の値は0にし正の値はそのまま通す活性化規則

ポイント
  • ReLUはニューラルネットワークの中で、負の値が来たら0を、正の値が来たらその値をそのまま送り出す規則です。
  • 上には上限がありません。大きな信号は大きいまま次の層に伝わります。
  • 規則が単純なので計算が速く、層を深く重ねても学習の信号がよく残ります
  • 信号の半分ほどが0になることで、その瞬間に働くニューロンだけが動きます。計算がその分軽くなります。
  • ずっと負の値しか受け取らないニューロンは、目を覚まさないまま固まってしまうこともあります。
目次

1たとえで理解する

洗面台のふちより少し下に、小さなオーバーフロー穴が一つ空いています。水を溜めている間、水位がその穴より低ければ、穴からは一滴も出ていきません。半分まで溜まっていても穴のすぐ下まで溜まっていても、出ていく量はどちらも0です。水位が穴の高さに触れた瞬間から話が変わります。超えた分だけがそのまま穴から流れ出ます。少し超えれば少しだけ、二倍超えれば二倍流れます。せき止めることも間引くこともなく、蛇口をどれだけ強くひねっても超えた分だけがそのまま出ていきます。ReLUがしていることはこの穴と同じです。しきい値より下はすべて0、しきい値を超えた分はそのまま通ります。

2くわしく

値を通すかどうかを決める場所

ニューロン一つは、前の層から来た値を重みで測って足し合わせます。ですが、その結果をそのまま次の層に渡すわけではありません。渡す前に一つの規則をくぐらせますが、その役目を担うのが活性化関数です。ReLUはその中で最もよく使われる規則で、していることはしきい値一つだけです。足し合わせた値が0より小さければ0を送り出し、0より大きければ入ってきた値に手を加えずそのまま送り出します。

この折れ目がなければ、層をいくら重ねても意味がありません。掛けて足す計算だけをつなげていくと、結局は一回の掛け算と足し算にまとまってしまうからです。途中に折れる場所を入れてはじめて、層ごとに新しい形を作り出せます。ReLUは0で一度だけ折れる、とても安上がりな折れ目を層ごとに差し込んでいるわけです。

半分を休ませるとかえって軽くなる

ある層にニューロンが数千個あれば、その半分ほどは負の値を受け取って0になります。0になったニューロンは次の層に何も足しません。損のように見えますが、実際は得です。毎回すべてのニューロンが少しずつ声を出す代わりに、その入力に関係のあるニューロンだけが声を出す状態になるからです。

関係のない信号が消えると、残った信号がくっきりします。計算量も減り、異なる入力が異なるニューロンを起こすことで役割分担も自然に生まれます。値の多くが0で埋まるこの性質を、疎であると呼びます。

同じ入力でも、あるニューロンは起き、あるニューロンは眠るので、層を通るたびに起きている場所の組み合わせが変わります。まっすぐな断片をつなぎ合わせて曲がった境界線を作る働きは、この組み合わせから生まれます。しきい値一つだけの規則が層ごとに積み重なって、かなり複雑な形まで描き出せる理由です。

深いニューラルネットワークを実際に動かした

ニューラルネットワークは、答えのずれを後ろから前へ送り返しながら学びます。このとき各層の活性化関数は、戻ってくる信号に自分の分を掛けます。以前よく使われていた緩やかなS字曲線は、両端でとても小さな値を掛けていました。層を十個通っただけで信号がほとんど消え、前のほうの層は学べませんでした。

ReLUは、起きている側では信号を弱めずそのまま通します。層を何十個通っても、前のほうまで学ぶ材料が残ります。深いニューラルネットワークが理論の紙の上だけでなく実際に動くものになった背景には、この単純な規則の働きが大きくあります。

眠ったまま固まるニューロン

弱点もあります。あるニューロンがどんな入力を受けても常に負の値しか出さない状態になると、出力は常に0で、戻ってくる信号も0です。直す手がかりが途切れたまま固まってしまいます。この状態を死んだニューロンと呼びます。

学習率を大きく取りすぎたときによく起こります。一度大きくずれた調整がニューロンを負の方向に深く押し込むと、戻る力がなくなります。ある層でこうしたニューロンが増えると、その層は場所を占めるだけで何もしない状態になります。

そのため、負の区間を完全に0にせずごくわずかに傾けておく変形も生まれました。少しでも信号を残しておけば、また目を覚ます道が開けるからです。学習率を低めに取ったり、初期値をうまくばらけさせたりするだけでもかなり防げます。

3もう少し正確に

ReLUはRectified Linear Unit(正規化線形ユニット)の略です。0より小さい区間は0に寝そべり、0より大きい区間は斜めに上がる、0で一度折れた二本の直線です。まっすぐにしかつながらなかった計算が、この折れ目一つで曲がった境界線を描けるようになります。

比喩がずれる点もあります。洗面台のオーバーフロー穴は高さが決まっていますが、ReLUのしきい値は常に0に固定されています。しきい値を上げ下げする役目は、ニューロンごとに付いたバイアス値が代わりに担います。入ってきた値にバイアス値を足してから0と比べるので、結果としてしきい値が動くのと同じことになります。また洗面台はあふれている間も内側に水が残りますが、ReLUは負の側の情報を残らず捨てます。この点を惜しんで、負の区間をわずかに傾けたり折れ目を滑らかにならしたりした変形が併用されます。

4やってみる

5よくある誤解

  • ReLUが値を0から1の間に押し込めると思われがちですが、実際には上限がないので大きな値は大きいまま通り抜けます。

  • 負の値を0にすると情報が半分も失われて損をすると思われがちですが、実際には関係のない信号を消しておくほうが学習の助けになります。

  • 規則が単純だと性能も落ちるはずだと思われがちですが、実際にはこの単純さのおかげで深いニューラルネットワークが初めてまともに学習し始めました。

7ひとこと要約

つまりReLUはしきい値より下の信号を0で断ち切り、しきい値を超えた信号は超えた分だけそのまま流す、深いニューラルネットワークを実際に動かした最も単純な規則です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02