relu activation関数に派生関数が含まれていないということはどのような影響を与えますか?勾配降下にreluを使用した場合の影響
How to implement the ReLU function in Numpyは、最大(0、行列ベクトル要素)としてreluを実装します。
勾配降下では、relu関数の派生を取っていませんか?
更新:Neural network backpropagation with RELU
から
この理解のテキストAIDS:
としてReLU関数が定義される:X> 0の出力はXである、すなわちf(x)が = max(0、x)
したがって、導関数f '(x)は実際には
x <の場合、出力は0であり、x> 0の場合、出力は1です。
微分f '(0)は定義されていません。したがって、通常は0に設定されているか、 は小さなeに対してf(x)= max(e、x)になるように活性化関数を変更します。
一般的に、ReLUは、整流器のアクティブ化 機能を使用するユニットです。つまり、他の隠しレイヤーと同じように動作しますが、tanh(x)、sigmoid(x)、または使用しているアクティブ化を除いて 以外は、 では代わりにf(x)= max(0、x)を使用します。
シグモイド が有効なマルチレイヤネットワークのコードを記述している場合、それは文字通り1行の変更です。 forward-または のバックプロパゲーションの変更はアルゴリズム的には何もありません。 の単純なモデルがまだ動作していない場合は、最初に戻ってから始めてください。 そうでなければ、ReLUsについての質問ではなく、NN全体を実装する についてです。
しかし、ニューラルネットワークのコスト関数は通常、活性化関数の派生を取るため、これはまだ混乱しています。
これは、GD(wikiは*定義されていない*と呼ばれます)に関するすべての保証を失う可能性があることを意味します。 – sascha
更新プログラム内のテキストは、質問に対処しません。(1):これはサブグラディエントです。 (2):サブグラディエントをSGDで使用することができます。プレーンなGDではない。 – sascha