web-dev-qa-db-ja.com

逆伝播におけるReLU派生物

ReLUを使用するニューラルネットワークでバックプロパゲーションを作成することについてです。以前の私のプロジェクトでは、Sigmoidアクティベーション機能を使用していたネットワークでそれを行いましたが、ReLUには派生物がないため、今は少し混乱しています。

これが image で、weight5が合計エラーにどのように寄与するかについて説明しています。この例では、シグモイド関数を使用すると、out/net = a *(1-a)になります。

バックプロパゲーションを機能させるには、「a *(1-a)」の代わりに何を書けばよいですか?

9
Gergely Papp

reLUには派生物がないためです。

いいえ、ReLUには派生物があります。私はあなたがReLU関数f(x)=max(0,x)を使用していると想定しました。つまり、_x<=0_の場合はf(x)=0、それ以外の場合はf(x)=xになります。最初のケースでは、_x<0_なので、xに関するf(x)の導関数は、結果f'(x)=0になります。2番目のケースでは、 f'(x)=1を計算します。

9
malioboro

Relu Derivativeはx> = 0の場合1、x <0の場合0

enter image description here

5
Aqib Mumtaz

Relu導関数は、np.heavisideステップ関数で実装できます。 np.heaviside(x、1)。 2番目のパラメーターは、x = 0の場合の戻り値を定義するため、1はx = 0の場合に1を意味します。

0
Bill