一般的に使用される活性化関数の長所と短所

非線形活性化関数は深層学習ネットワークの重要な部分であり、近年の急速な発展に伴い、より多くの活性化関数が提案され、改良されています。適切な活性化関数を選択すると、モデルの最終結果が決まります。以下に、一般的な 13 個の活性化関数の計算方法とその対応画像をまとめます (この記事の計算方法は pytorch から引用しています)。


1.シグモイド

これは以前の活性化関数であり、その計算式は次のとおりです。

a0f18793ada9a92d7f7152cd82aac616.png

その図は次のとおりです。

e1f0517ce6d38715fc5eeb14ad014eea.png

アドバンテージ:

  1. シグモイド関数の出力は (0,1) の間であり、出力範囲は制限されており、最適化は安定しており、出力層として使用できます。

  2. 連続関数、導関数を簡単に見つけることができます。

欠点:

  1. べき乗が必要であり、計算コストが高くなります。

  2. 出力は平均 0 にならないため、収束率が低下します。

  3. 勾配の分散が起こりやすく、バックプロパゲーションの際、勾配が0に近い場合は基本的に重みが更新されないため、深いネットワークの学習が完了できません。

2.対数シグモイド

その計算式は次のとおりです。

3b3f929667b07dc4985ceac48f5e0eb6.png

その図は次のとおりです。

c6c3284490077fe94251ad802214c917.png

3. リプレイ

ディープ ニューラル ネットワークで最もよく使用される活性化関数の 1 つで、その計算式は次のとおりです。

0b79dc6cb246fdd727210262a27eefa7.png

その図は次のとおりです。

f5bcb8070686da76002e24caf94fe8a2.png

アドバンテージ:

  1. x>0 の領域では、勾配の飽和や勾配の消失の問題が発生せず、収束速度が速くなります。

  2. 指数演算が不要なため、演算速度が速く、複雑さが軽減されます。

欠点:

  1. 出力の平均はゼロではありません。

  2. ニューロンの死があり、x<0 では勾配は 0 になります。このニューロンと後続のニューロンの勾配は常に 0 であり、どのデータにも応答しなくなるため、対応するパラメーターは更新されません。

4.リーキーレル

上記の Relu は x が 0 未満の場合に 0 を出力しますが、LeakyRelu は x が 0 未満の場合に 0 以外の値を出力することができ、その計算式は次のとおりです。

3963887e1e7af58deb8c84b1ffd6a431.png

その図は次のとおりです。

030fab5d6d901c12c6bdf05e4d400c2a.png

アドバンテージ:

  1. Relu のニューロン死の問題を解決すると、負の領域に小さな正の傾きがあるため、負の入力値でも逆伝播できます。

  2. Relu機能の利点があります。

欠点:

  1. 結果に一貫性がなく、正および負の入力値に対して一貫した関係予測を提供できない

5.高い

ReLUのマイナス部分の改良でもあり、ELU活性化関数は指数計算方式を採用し、xが0未満の場合を出力します。計算式は次のとおりです。

fa47d792fc85fad61fb5448258fdfdd6.png

その図は次のとおりです。

a8c2a063087562b8e8be42cd228b0bd3.png

アドバンテージ:

  1. はすべての点で連続微分可能です。

  2. Relu やそのバリアントなど、他の線形非飽和活性化関数と比較してトレーニング時間が短縮されます。

  3. ニューロン死の問題はありません。

  4. 非飽和活性化関数として、勾配の爆発または消滅の影響を受けず、精度が高くなります。

欠点:

  1. べき乗が含まれるため、計算速度が遅くなります。

6. プレリュード

このうち、a は固定ではなく逆伝播によって学習されます。その計算式は次のとおりです。

7de0b1c6a4c460619432d8dab9e460fc.png

その図は次のとおりです。

f76012d6131679867334ec3d1714c99d.png

7.レル6

Relu6 は Relu の出力を 6 までに制限しており、その計算式は次のとおりです。

752298b165b165cb5e7a6059f4acb3a2.png

その図は次のとおりです。

5c90525425464716349a1391d16c8d87.png

Relu は x>0 の領域で線形活性化に x を使用しますが、これにより活性化された値が大きすぎてモデルの安定性に影響を与える可能性があります。ReLU 活性化関数の線形成長部分を相殺するために、Relu6 は機能を使用することができます。

8.Rレル

「Random Rectified Linear Unit」RRelu も LeakyRelu の亜種です。RRelu では、負の値の傾きはトレーニング中にランダムであり、その後のテスト中に固定されます。その計算式は次のとおりです。

2092995cafec843dd0975534af998ff1.png

その図は次のとおりです。

d401941e2cf4bd5b2638309ec58184c4.png

9. セル

SElu と Elu の形式は似ていますが、もう 1 つスケール パラメーターがあります。その計算式は次のとおりです。

5b9367992ce9ccf2cdf7c7743a609df9.png

その図は次のとおりです。

0ba2018c719e89813382e8b472ba8752.png

pytorch の acale=1.0507009873554804934193349852946。

10. 目的

CElu も上記の SElu と同様に、負の範囲は指数計算、整数範囲は線形計算として使用され、計算式は次のようになります。

0b14c49e5cbe5b709473b3dd38a91f3a.png

その図は次のとおりです。

f7fa85c85894e25ad70ff292defa0c52.png

11. ゲル

活性化関数には正則化手法が追加されており、その計算式は次のようになります。

64371c9908b452f37037e2c032da8990.png

erf には解析的な表現がないため、元の論文では近似解が得られます。

cb3cee8a105ad0cf905435f23bf0fa6b.png

その図は次のとおりです。

9a6739456f68aa64d83b792d99907a47.png

12.唐

数学における双曲線正接関数 Tanh は、ニューラル ネットワーク、特に画像生成タスクの最終層で一般的に使用される活性化関数でもあり、その計算式は次のとおりです。

4dfb02095e095b76e1afbff08be4cdb4.png

その図は次のとおりです。

a65d1036068f5a518cc0310a659faa56.png

アドバンテージ:

  1. 出力平均値は 0 であるため、シグモイドよりも収束速度が速くなり、反復回数を減らすことができます。

欠点:

  1. 欠点は、べき乗が必要であり、計算コストが高いことです。

  2. 両側とも0に近づく場合もあるので、勾配消失もあります。

13.タンシュリンク

Tanhshrink は入力から双曲線正接の値を引いた値を直接使用し、その計算式は次のとおりです。

9affe1eada6fe6b2688a973f6595a238.png

その図は次のとおりです。

60111e3f381d3d2f897843b9faff69b4.png

要約:

最初に最も高速な ReLU を使用し、次にモデルのパフォーマンスを観察します。

ReLU 効果があまり良くない場合は、LeakyRelu などの亜種を試すことができます。

深さがそれほど深くない CNN では、一般に活性化関数の影響はそれほど大きくありません。

おすすめ

転載: blog.csdn.net/weixin_41202834/article/details/121173761
おすすめ