20

私は個人的にニューラル ネットワークの理論を研究していて、いくつか質問を受けました。

多くの本や参考文献では、隠れ層の活性化関数にハイパータンジェント関数が使われていました。

本は、tanh関数の線形結合が与えられた誤差で関数のほぼすべての形状を記述できるという本当に単純な理由を思いついた.

しかし、質問が来ました。

  1. これが tanh 関数が使用される本当の理由ですか?
  2. もしそうなら、それが tanh 関数が使用される唯一の理由ですか?
  3. もしそうなら、tanh関数はそれを行うことができる唯一の関数ですか?
  4. そうでない場合、本当の理由は何ですか? ...

私はここに在庫があると考え続けています...この精神的な(?...)トラップから私を助けてください!

4

7 に答える 7

14

実際には、tanh 関数とロジスティック関数の両方を使用できます。アイデアは、任意の実数 ( [-Inf, Inf] ) を [-1 1] または [0 1] の間の数値にそれぞれ tanh とロジスティックにマップできるということです。このようにして、そのような関数の組み合わせが任意の非線形関数を近似できることを示すことができます。ここで、ロジスティック関数よりも tanh が優先されるのは、最初のものは 0 に関して対称であり、2 番目のものはそうではないということです。これにより、2 番目のものは後のレイヤーが飽和しやすくなり、トレーニングがより困難になります。

于 2014-06-18T09:48:36.870 に答える
9

既存の回答に追加すると、0 付近の対称性を優先するのは美学の問題だけではありません。LeCun 氏らによる優れたテキスト「Efficient BackProp」は、入力層、出力層、および隠れ層の平均値が 0 で標準偏差が 1 であることが良い考えである理由を詳細に示しています。

于 2014-06-19T08:45:02.617 に答える
2

ここでの回答の多くは、tanh (つまり (1 - e^2x) / (1 + e^2x)) がシグモイド/ロジスティック関数 (1 / (1 + e^-x)) よりも好ましい理由を説明していますが、これらが理解されるべき 2 つの最も一般的な選択肢である理由は十分にあることに注意してください。それは、バック プロパゲーション アルゴリズムを使用した MLP のトレーニング中に、アルゴリズムがアクティブ化関数の導関数の値を必要とすることです。ネットワーク内の各ノードのアクティベーション。これは一般に、もっともらしいアクティベーション関数のほとんどで計算できますが (不連続性があるものは除きますが、これは少し問題になります)、多くの場合、高価な計算や追加データの保存 (たとえば、アクティベーション関数への入力の値) が必要になります。 、それ以外の場合は、各ノードの出力が計算された後は必要ありません)。関数の出力; つまり、ノードの重み付けされた入力の合計が v で、その出力が u の場合、従来のvではなくuから計算できる du/dv を知る必要があります。tanh の場合は 1 - u^2 であり、ロジスティック関数の場合はu * (1 - u) です。この事実により、これら 2 つの関数はほとんどの代替手段よりも逆伝播ネットワークで使用するのに効率的になります。そのため、通常、これらの関数から逸脱するには説得力のある理由が必要になります。

于 2016-08-28T23:37:55.823 に答える
1

理論的には、私は上記の回答と一致しています。私の経験では、おそらくこれらの問題の性質により、いくつかの問題は tanh ではなくシグモイドを優先します (非線形効果があるため、理由を理解するのは困難です)。

問題が発生した場合、私は通常、遺伝的アルゴリズムを使用してネットワークを最適化します。母集団の各要素の活性化関数は、一連の可能性 (シグモイド、tanh、線形など) の間でランダムに選択されます。分類の問題の 30% で、遺伝的アルゴリズムによって見つかった最適な要素は、活性化関数としてシグモイドを持ちます。

于 2014-06-21T14:26:27.807 に答える
1

深層学習では、ReLU が最適な活性化関数になりました。これは、特に層が多い場合、tanh や logit などのシグモイド活性化関数よりも数学がはるかに簡単になるためです。バックプロパゲーションを使用して重みを割り当てるには、通常、損失関数の勾配を計算し、隠れ層に連鎖則を適用します。つまり、活性化関数の導関数が必要です。ReLU は、導関数が 0 の平坦な部分と、導関数が 1 の歪んだ部分を持つランプ関数です。これにより、数学が非常に簡単になります。双曲線正接を使用すると、フェージング勾配の問題に遭遇する可能性があります。つまり、x が -2 より小さいか 2 より大きい場合、微分が非常に小さくなり、ネットワークが収束しないか、または死んだニューロンが発生する可能性があります。もう発火しません。

于 2020-03-05T20:27:08.177 に答える