web-dev-qa-db-ja.com

「relu」はtf.nn.reluで何を表していますか?

APIドキュメント では、「修正された線形を計算する」と書かれています。

それはRe(ctified)L(inear)... Uとは何ですか?

9
Aerin

Re(ctified)L(inear)(U)nit

通常、ニューラルネットワークのレイヤーには、いくつかの入力(ベクトルなど)があり、それを重み行列で乗算して、結果として再びベクトルになります。

結果の各値(通常はfloat)は出力と見なされます。ただし、現在のニューラルネットワークのほとんどの層には非線形性が含まれているため、これらの出力値に複雑さを追加するアドオン関数があります。長い間、これらはシグモイドとタンでした。

しかし、最近では、入力が負の場合は0、入力が0または正の場合は入力自体になる関数を使用しています。この特定のアドオン機能(またはより優れた「アクティベーション機能」)は、reluと呼ばれます。

26
Phillip Bock

フリーゼルの答えに加えて、Reluの2つの重要な特徴を追加したいと思います。

1.差別化できません。

Reluのグラフ:尖っていて曲がっていません。

enter image description here

f(x) = max(0,x)として定義されているため、区別できません。

2. ReLUの派生物は非常に単純です!シグモイド、つまりx(1-x)よりも単純です。

The derivative of ReLU:
 1 if x > 0
 0 otherwise 

これは、主に非表示のレイヤーで使用する最も単純な非線形関数です。逆伝播がいかに簡単かを考えてください!

7
Aerin