なぜ非線形活性化関数を使用するのでしょうか? 一般的な非線形活性化関数と利点と欠点の比較

  • なぜ非線形活性化関数を使用するのでしょうか? 

w600

 上記のニューラル ネットワークに示すように、順伝播の過程で線形活性化関数 (同一励起関数) を使用すると、g(z)=kz隠れ層の出力は次のようになります。

 a^{[1]}=z^{[1]}=W^{[1]}x+b^{[1]}

 a^{[2]}=z^{[2]}=W^{[2]}a^{[1]}+b^{[2]}=W^{[2]}\left ( W ^{[1]}x+b^{[1]} \right )+b^{[2]}今すぐ

a^{[2]}=z^{[2]}=W'x+b' 

線形活性化関数を使用するニューラル ネットワークは入力と出力を線形に結合するだけであることがわかります。そのため、隠れ層が多い場合、隠れ層で線形活性化関数を使用した場合の学習効果は標準のロジスティック回帰と同じになります。影の非表示レイヤーを使用せずに。したがって、隠れ層で非線形活性化関数の代わりに非線形活性化関数を使用する必要があります。

通常、線形活性化関数を使用できる場所は 1 か所だけであり、それは機械学習で回帰問題を実行する場合です。y は実数です。たとえば、不動産価格を予測する場合、二項分類タスクの y は 0 または 1 ではなく、0 から正の無限大までの実数です。y が実数の場合、出力層で線形活性化関数を使用できる可能性があり、出力も負の無限大から正の無限大までの実数になります。要約すると、圧縮に関連する場合などの特殊な場合を除いて、非表示層では線形活性化関数を使用できません。

  • 飽和の概念

活性化関数 h(x) が を満たすとき\lim_{n\rightarrow+\infty}h'(x)=0、それを右飽和と呼びます。 
活性化関数 h(x) が を満たすとき\lim_{n\rightarrow-\infty}h'(x)=0、それを左飽和と呼びます。 
活性化関数が左飽和と飽和の両方を満たす場合、それを飽和と呼びます。

任意の x について、定数 c が存在する場合、 x > c のとき、h'(x)=0それは右硬質飽和と呼ばれます 。
任意の x について、定数 c が存在する場合、 x < c のとき、h'(x)=0それは左ハード飽和と呼ばれます 。
左ハード飽和と右ハード飽和の両方が満たされる場合、この活性化関数はハード飽和と呼ばれます。 
極限状態で偏導関数が 0 に等しい関数のみが存在する場合、それはソフト飽和と呼ばれます。

  •  一般的に使用されるアクティベーション関数

参考リンク:

1)https://mp.weixin.qq.com/s?__biz=MzI1NTE4NTUwOQ==&mid=2650325236&idx=1&sn=7bd8510d59ddc14e5d4036f2acaeaf8d&scene=0#wechat_redirect

2)http://www.ai-start.com/dl2017/html/lesson1-week3.html#header-n152

1. シグモイド関数

w600

 

 導出:\frac{\mathrm{d}}{\mathrm{d} x}g(z)=\frac{1}{1+e^{-z}}\left ( 1- \frac{1}{1+ e^{-z}}\right )=g(z)(1-g(z))

いつz=10またはz=-10:\frac{\mathrm{d}}{\mathrm{d} x}g(z)\およそ 0

 いつz=0:\frac{\mathrm{d}}{\mathrm{d} x}g(z)= 1/4 

  シグモイドの飽和が緩やかなため、ディープ ニューラル ネットワークを効果的にトレーニングすることが 20 ~ 30 年にわたって困難になっており、これがニューラル ネットワークの開発を妨げる重要な理由となっています。逆方向パス中のシグモイドの下向き伝導の勾配には f'(x) 係数 (入力に対するシグモイドの導関数) が含まれているため、入力が飽和領域に入ると、f'(x) は近くなります。 0 にすると、最下層に渡される勾配が非常に小さくなります。

アドバンテージ:

  1. シグモイド関数の出力マッピングは (0,1) の間で単調連続で、出力範囲は制限されており、最適化は安定しており、出力層として使用できます。物理的な意味で生物学的なニューロンに最も近いものです。
  2. ガイダンスを見つけるのは簡単です。

欠点:

  1. 彩度が低いため、勾配が消失しやすく、トレーニングに問題が発生します。
  2. その出力は 0 を中心にしません。

 2、タン  

同様に、Tanh 活性化関数にもソフトな飽和があります。Tanh ネットワークは Sigmoid よりも速く収束します。Tanh の出力平均は Sigmoid よりも 0 に近いため、SGD は自然な勾配 (二次最適化手法) に近くなり、必要な反復回数が減ります。

アドバンテージ:

  1. シグモイド関数よりも早く収束します。
  2. シグモイド関数と比較すると、出力の中心は 0 になります。

欠点:

      シグモイド関数の最大の問題、つまり飽和により勾配が消えるという問題はまだ変わっていません。

 3、Relu与Leeaky Relu

 x<0 の場合、ReLU は完全に飽和します。x>0 のとき導関数は 1 であるため、ReLU は x>0 のとき勾配の減衰を防ぐことができ、それによって勾配消失の問題が軽減されます。ただし、トレーニングが進行するにつれて、一部の入力がハード飽和領域に落ち、対応する重みを更新できなくなります。この現象は「ニューロンの死」と呼ばれます。

アドバンテージ:

  1. Sigmoid や Tanh と比較して、ReLU は SGD に迅速に収束します。これは、直線状で飽和していない形状によるものであるといわれています。
  2. Sigmoid と Tanh には多くの高価な操作 (インデックスなど) が含まれますが、ReLU はより簡単に実装できます。
  3. グラデーション消失の問題を効果的に軽減します。
  4. また、教師なしの事前トレーニングなしでもパフォーマンスが向上する可能性があります。
  5. ニューラル ネットワークにスパースな表現力を提供します。

欠点:

        トレーニングが進行するにつれて、ニューロンが死滅し、重みを更新できなくなる可能性があります。これが起こると、ニューロンを流れる勾配は、この時点から常に 0 になります。つまり、ReLU ニューロンはトレーニング中に不可逆的に死滅します。

        ReLU のもう 1 つの問題は、出力にオフセット現象があること、つまり出力平均が常に 0 より大きいことです。ドリフトとニューロンの死の現象は、ネットワークの収束に共同して影響を与える可能性があります。

4、プリル

PReLU は、ReLU と LReLU を非飽和化した改良版です。aiが小さくて固定されているものをLReLUと呼びます。LReLU の本来の目的は、勾配の消失を回避することです。しかし、いくつかの実験では、LReLU が精度にあまり影響を与えないことが判明しました。多くの場合、LReLU を適用したい場合は、LReLU の結果が ReLU よりも良くなるように、トレーニングを繰り返し、適切な a を選択することに細心の注意を払う必要があります。そこで、データからパラメータを適応的に学習するPReLUを提案した人がいます。PReLU は、高速な収束と低いエラー率という特徴を持っています。PReLU の出力は 0 平均に近く、SGD が自然な勾配に近づくためです。PReLU はバックプロパゲーション トレーニングに使用でき、他の層と同時に最適化できます。

5、エル

ELU は、ソフト飽和を残したシグモイドと ReLU の融合です。右側の線形部分は ELU の勾配消失を軽減しますが、左側のソフトな飽和により ELU は入力の変化やノイズに対してより堅牢になります。ELU の出力の平均値はゼロに近いため、収束速度が速くなります。

PReLU や ELU などのアクティベーション関数には Relu のようなスパース性はありませんが、いずれもネットワーク パフォーマンスを向上させることができます。

6、マックスアウト

Maxout は ReLU を一般化したもので、その飽和はゼロ測定イベントです。Maxout ネットワークは任意の連続関数を近似でき、w2、b2、...、wn、bn が 0 の場合、ReLU に縮退します。

Maxout は勾配の消失を軽減し、同時に ReLU ニューロン死のデメリットを回避できますが、パラメータと計算量が増加します。

おすすめ

転載: blog.csdn.net/weixin_42149550/article/details/99839184