本文へ移動

G検定(ジェネラリスト検定)

れりゅーかんすう

ReLU 関数

ReLU Function

ニューラルネットワークの活性化関数の1つで、入力zに対してg(z) = max{0, z}を返します。0以下の入力は0に置き換え、正の入力はそのままの値で出力します。英語のRectified Linear Unit(整流線形ユニット)の略で、深層学習の教科書では現代のニューラルネットワークで既定の推奨とされる活性化関数として紹介されています。

詳しい説明

式と入出力の決まり

ReLU関数は、ニューラルネットワークの層の中で、重み付きの和にバイアスを足した値に対して使う活性化関数です。英語のRectified Linear Unitの略で、日本語では整流線形ユニット、または整流線形関数と訳されます。

イアン・グッドフェロー(Ian Goodfellow)、ヨシュア・ベンジオ(Yoshua Bengio)、アーロン・クールヴィル(Aaron Courville)による教科書『Deep Learning』(2016年)の第6章では、ReLU関数を次の式で定義しています。

は、0と のうち大きい方を選ぶという意味です。したがって、入力 が0以下なら出力は0になり、入力 が正ならその値がそのまま出力になります。

同じ章では、隠れ層の各ユニット の出力を という形で書いています。 は層への入力、 はユニット につながる重み、 はバイアスです。重み付きの和とバイアスで計算した値が にあたり、その にユニットごとに を当てはめたものが層の出力になります。

具体的な数値での計算例

架空の入力値を使って、式に1つずつ当てはめます。

のとき、 です。0と-3では0の方が大きいので、出力は0になります。

のとき、 です。2つの値が等しいので、出力は0です。

のとき、 です。5の方が大きいので、入力がそのまま出力されます。

のとき、 です。正の入力は小数でもそのまま出力されます。

次に、3つのユニットを持つ隠れ層を考えます。重み付きの和にバイアスを足した値が、ユニット1で-1.2、ユニット2で0.4、ユニット3で3.0だったとします。ReLU関数をユニットごとに当てはめると、出力はそれぞれ 、、 となり、層の出力は (0, 0.4, 3.0) になります。負だったユニット1の値だけが0に置き換わり、残りの2つは変わりません。

傾きの読み方とシグモイド関数との違い

ReLU関数のグラフは、入力が負の範囲では高さ0の水平な線、入力が正の範囲では傾き1の直線です。入力が1増えたときの出力の増え方で読むと、正の範囲では出力も1増え、負の範囲では出力は変わりません。たとえば入力が5から6に増えると出力も5から6に増えますが、入力が-3から-2に増えても出力は0のままです。

同じ教科書の同じ章は、シグモイド関数 と双曲線正接関数(tanh関数)も活性化関数として扱っています。教科書は、この2つの間に という関係があり、、 であることを示しています。そのうえで、シグモイド系の関数は定義域の大部分で飽和する、つまり入力を変えても出力がほとんど変わらない状態になり、勾配を使った学習を難しくすると述べています。そのためフィードフォワードネットワークの隠れ層での使用は勧めておらず、どうしてもシグモイド系を使う場合はシグモイド関数よりtanh関数の方がよい性能を示すことが多いとしています。

ReLU関数は、正の範囲では入力が大きくなっても傾きが1のまま変わらず、平らになりません。この点が、入力の絶対値が大きくなると平らになっていくシグモイド系の関数との形の違いです。一方で、負の範囲では傾きが0なので、入力が負のあいだは入力を少し変えても出力は動きません。

教科書での位置づけと出典の並べ方

グッドフェローらの教科書は、現代のニューラルネットワークでは、既定の推奨としてReLU関数を使うことを挙げています。このときの出典として、Jarrett et al.(2009)、Nair and Hinton(2010)、Glorot et al.(2011a)の3件の研究を並べて引用しており、特定の1件の研究や1人の研究者を提案者として挙げてはいません。

このページでも、ReLU関数の起源や提案者を1つの研究や1人の研究者に決めず、教科書が複数の研究を並べて引用しているという事実にとどめます。

ネアとヒントンの2010年の論文が報告したこと

並べて引用されている3件のうちの1つが、ヴィノード・ネア(Vinod Nair)とジェフリー・ヒントン(Geoffrey Hinton)の論文「Rectified Linear Units Improve Restricted Boltzmann Machines」(2010年)です。

この論文が扱っているのは、制限付きボルツマンマシン(RBM)です。論文は、RBMの二値ユニットのそれぞれについて、同じ重みを持ちながら少しずつ負に大きくなるバイアスを持つ多数のコピーへ一般化したものを「Stepped Sigmoid Units」と呼びます。そして、このユニットがノイズ付きの整流線形ユニットで効率よく近似できることを示しています。そのうえで、二値ユニットを使った場合と比べて、NORBデータセットでの物体認識と、Labeled Faces in the Wildデータセットでの顔認証で、よりよい特徴を学習したと報告しています。

論文自身が主張しているのは、整流線形ユニットをRBMに適用して性能が改善したという点です。整流線形関数そのものを初めて提案したとは述べていません。

試験で問われること

G検定

  • ReLU関数の式はg(z) = max{0, z}で、0以下の入力は0に、正の入力はそのままの値で出力します。たとえば入力が-3なら0、0なら0、5なら5です。
  • 入力が正の範囲では傾きが1のまま平らにならず、入力が負の範囲では傾きが0です。シグモイド関数やtanh関数が定義域の大部分で飽和するのとは形が異なります。
  • 深層学習の教科書(Goodfellowら、2016年)は、現代のニューラルネットワークで既定の推奨となる活性化関数としてReLU関数を挙げ、その出典にJarrett et al.(2009)、Nair and Hinton(2010)、Glorot et al.(2011a)の3件を並べています。特定の1件を提案者としては挙げていません。
  • Nair and Hinton(2010)は、制限付きボルツマンマシン(RBM)に整流線形ユニットを適用し、二値ユニットより物体認識と顔認証でよい特徴を学習したと報告した論文です。整流線形関数そのものの初提案を主張した論文ではありません。

最終更新日: 2026/09/23