ニューラルネットの隠された活性化関数の選択


14

NNの隠れ層アクティベーション関数の選択は必要に応じて行う必要があることを別の場所で読みました。つまり、-1から1の範囲の値が必要な場合はtanhを使用し、0から1の範囲にシグモイドを使用します

私の質問は、自分のニーズがどのようにわかるのかということです。入力レイヤーの範囲に基づいていますか。たとえば、入力レイヤーの値の全範囲を網羅できる関数を使用するか、入力レイヤーの分布を何らかの形で反映します(ガウス関数)。それとも、問題/ドメイン固有のニーズであり、この選択を行うには経験/判断が必要ですか?それとも単に、「相互検証された最良の最小トレーニングエラーを与えるものを使用する」か?


3
(tanh + 1)/ 2も0-1であるため、この引数はbsです。「シグモイド」は非常に曖昧な用語であり、tanhを頻繁にカバーすることは言うまでもありません。

おそらく、すべてのデータセットを0-> 1に正規化し、シグモイドアクティベーションを使用できるようにすることができます1 + (1 / exp(-sum))。作る必要が各データセットの両方をしようとせずに理解することは非常に困難に。必要あなたがそれをここで説明するように学習され、実際の関係に結びついている、すなわちバイナリデータセットが速いかどうか、すべての与えられた別のアクティベーションで学ぶことができます。
エイドリアンシーリー

回答:


12

LeCunは、これについてはEfficient Backprop Section 4.4で説明しています。動機付けは、入力をゼロ平均に正規化する動機付けに似ています(4.3節)。tanh活性化関数の平均出力は、平均出力が正でなければならないシグモイドよりもゼロに近い可能性が高くなります。


非常に有益な読み物!
babelproofreader

6

質問の最初の段落で述べた必要性は、隠れ層のアクティベーション機能ではなく、出力層のアクティベーション機能に関係しています。0から1の範囲の出力があると、確率を直接表すことができるため便利です。ただし、tanh出力層のアクティベーション機能を備えたネットワークであるIIRCは、ロジスティック出力層のアクティベーション機能を備えたネットワークに簡単に変換できるため、実際にはそれほど重要ではありません。

IIRC隠れユニットでロジスティック活性化関数ではなくtanhを使用する理由。これは、バックプロパゲーションを使用して重みに加えられた変更が、隠れ層ニューロンの出力と活性化関数の導関数の両方に依存するため、ロジスティック活性化を使用することです関数を両方とも同時にゼロにすることができます。これにより、非表示レイヤーユニットがフリーズする可能性があります。

つまり、tanhを非表示レイヤーのアクティブ化関数に使用し、出力レイヤーのアクティブ化関数を選択して、出力に必要な制約を適用します(一般的な選択肢:線形-制約なし、ロジスティック-出力は0〜1で指数関数-厳密に正の出力)。


「...両方ともゼロになる...」というメッセージは表示されません。出力がゼロになる可能性がありますが、tanhではなくロジスティック関数の微分をゼロにする方法はありますか。
エロゴール

ロジスティック関数の場合、ゼロに正確にはなりませんが、非常に小さくなります。tanh関数の場合、導関数は出力がゼロのときに最大になり、導関数が最小のときに出力が最大になります。元の論文は80年代後半に書かれたもので、詳細を思い出せるかどうかを確認します。
ディクランマースピアル

2
私は元の論文を見つけることができませんが、「Neural Networks-Tricks of the Trade」の論文のいくつかは、隠れ層の活性化が中央にあるとネットワークのパフォーマンスが向上するため、tanhが隠れ層で優れていることを示唆しています)。
ディクランマースピアル

2

1.7159×タンバツ×2/31+1[1.5+1.5]

シグモイドを選択する一般的な概念は、ルールに従って1つを選択することです。出力値はポイントの範囲内にあり、シグモイド関数の2次導関数を最大にします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.