MCPで接続 →

計算を入力してください

公式

広告

結果

ReLUの計算結果を生成しました
101
points from x = -5 to x = 5
End x5
Min x-5
Max x5
x f(x) -5 5 5
x f(x) = ReLU(x)
-5 0
-4.9 0
-4.8 0
-4.7 0
-4.6 0
-4.5 0
-4.4 0
-4.3 0
-4.2 0
-4.1 0
-4 0
-3.9 0
-3.8 0
-3.7 0
-3.6 0
-3.5 0
-3.4 0
-3.3 0
-3.2 0
-3.1 0
-3 0
-2.9 0
-2.8 0
-2.7 0
-2.6 0
-2.5 0
-2.4 0
-2.3 0
-2.2 0
-2.1 0
-2 0
-1.9 0
-1.8 0
-1.7 0
-1.6 0
-1.5 0
-1.4 0
-1.3 0
-1.2 0
-1.1 0
-1 0
-0.9 0
-0.8 0
-0.7 0
-0.6 0
-0.5 0
-0.4 0
-0.3 0
-0.2 0
-0.1 0
0 0
0.1 0.1
0.2 0.2
0.3 0.3
0.4 0.4
0.5 0.5
0.6 0.6
0.7 0.7
0.8 0.8
0.9 0.9
1 1
1.1 1.1
1.2 1.2
1.3 1.3
1.4 1.4
1.5 1.5
1.6 1.6
1.7 1.7
1.8 1.8
1.9 1.9
2 2
2.1 2.1
2.2 2.2
2.3 2.3
2.4 2.4
2.5 2.5
2.6 2.6
2.7 2.7
2.8 2.8
2.9 2.9
3 3
3.1 3.1
3.2 3.2
3.3 3.3
3.4 3.4
3.5 3.5
3.6 3.6
3.7 3.7
3.8 3.8
3.9 3.9
4 4
4.1 4.1
4.2 4.2
4.3 4.3
4.4 4.4
4.5 4.5
4.6 4.6
4.7 4.7
4.8 4.8
4.9 4.9
5 5

ReLU活性化関数とは

ReLU(Rectified Linear Unit、正規化線形ユニット)は、現代のニューラルネットワークで最も広く使われている活性化関数の一つです。定義は \(f(x) = \max(0, x)\) で、入力が正の値ならそのまま出力し、負の値ならすべて0を返します。このシンプルな区分線形のルールによって、ネットワークに非線形性を持たせながら、計算コストが非常に低く、微分も容易になるという利点があります。

ReLU関数のグラフ。xが負の領域では0の水平線、正の領域では右上がりの直線を示す
ReLU関数は、入力が負ならゼロを、正なら入力そのものを返します。

この計算ツールの使い方

入力するのは3つの値です。xの初期値(計算を始める点)、増分(ステップ幅。1回ごとにxがどれだけ変化するか)、そして繰り返し回数(生成する点の数)です。ツールは各xの値に対してReLUを計算し、(x, f(x)) の完全なデータ表を作成したうえで、原点に折れ目を持つ「平坦から立ち上がる」特徴的な形状の折れ線グラフを描画します。

計算式の解説

ReLUは \(f(x) = \max(0, x)\) であり、「\(x > 0\) ならx、それ以外は0」と表すこともできます。xの掃引(スイープ)は

$$x_k = \text{startX} + k \times \text{stepX}, \quad k = 0, 1, \dots, \text{iterations} - 1$$

というルールで生成されるため、最終的なxの値(endX)は \(\text{startX} + (\text{iterations} - 1) \times \text{stepX}\) となります。関数はすべての負の入力に対して0で平坦に張りつき、正の入力に対しては傾き1で一定の割合で立ち上がります。

広告
ReLUの式の2つの部分を示す図。原点で分かれるゼロ領域と恒等領域
ReLUは区分関数で、xが負のときf(x)=0、xが正のときf(x)=xとなります。

計算例

初期値 \(\text{startX} = -5\)、ステップ \(\text{stepX} = 0.1\)、繰り返し回数 \(\text{iterations} = 101\) という既定値を使うと、xは \(-5\) から \(-5 + 100 \times 0.1 = +5\) まで、両端を含む101点にわたって変化します。\(x = -2.0\) のとき \(f = \max(0, -2.0) = 0\)、\(x = 0\) のとき \(f = 0\)、\(x = 0.1\) のとき \(f = 0.1\)、\(x = 2.5\) のとき \(f = 2.5\)、\(x = 5.0\) のとき \(f = 5.0\) となります。描画される曲線は負の範囲全体で0に張りつき、その後 \((5, 5)\) へと直線的に立ち上がります。

よくある質問(FAQ)

ReLUはx=0で微分可能ですか? いいえ。ReLUは \(x = 0\) に折れ目(角)があるため、その点では微分できません。導関数は \(x < 0\) で0、\(x > 0\) で1となり、慣例として \(x = 0\) での導関数は0とすることが多いです。

ステップ幅を負の値にできますか? できます。負のステップを指定すると、xは小さくなる方向に変化します。ステップが0の場合は、すべてのxが初期値と同じになり、定数だけが並ぶ意味のない列になります。

なぜReLUはこれほど人気なのですか? シグモイドやtanhで問題となる勾配消失を正の入力では回避でき、計算が非常に単純で、活性がスパース(疎)になりやすいという特性があります。これらが学習の高速化につながることが多いためです。

最終更新: