webdevqa.jp.net

LSTMでtanhを使用する直感は何ですか

LSTMネットワーク( LSTMの理解 )で、入力ゲートと出力ゲートがtanhを使用する理由この背後にある直感は何ですか?それは単なる非線形変換ですか?もしそうなら、両方を別のアクティベーション機能(例えば、ReLU)に変更できますか?

45
DNK

Sigmoid具体的には、LSTMの3つのゲート(入力、出力、忘却)のゲーティング関数として使用されます。0から1の間の値を出力するため、フローを許可しないか、フローを完了することができますゲート全体の情報の。一方、消失勾配の問題を克服するには、ゼロになる前に2次導関数が長い範囲にわたって持続できる関数が必要です。 Tanhは、上記のプロパティを持つ優れた関数です。

優れたニューロンユニットは、境界があり、簡単に微分可能で、単調(凸最適化に適しています)、扱いやすいものでなければなりません。これらの品質を考慮すると、ReLU関数の代わりにtanhを使用できると信じています。これらは互いに非常に優れた代替手段であるためです。ただし、アクティベーション機能を選択する前に、他の機能よりも選択した場合の利点と欠点を理解する必要があります。アクティベーション機能のいくつかとその利点について簡単に説明します。

シグモイド

数式:sigmoid(z) = 1 / (1 + exp(-z))

1次導関数:sigmoid'(z) = -exp(-z) / 1 + exp(-z)^2

利点:

(1) Sigmoid function has all the fundamental properties of a good activation function.

Tanh

数式:tanh(z) = [exp(z) - exp(-z)] / [exp(z) + exp(-z)]

1次導関数:tanh'(z) = 1 - ([exp(z) - exp(-z)] / [exp(z) + exp(-z)])^2 = 1 - tanh^2(z)

利点:

(1) Often found to converge faster in practice
(2) Gradient computation is less expensive

ハードタン

数式:hardtanh(z) = -1 if z < -1; z if -1 <= z <= 1; 1 if z > 1

1次導関数:hardtanh'(z) = 1 if -1 <= z <= 1; 0 otherwise

利点:

(1) Computationally cheaper than Tanh
(2) Saturate for magnitudes of z greater than 1

ReLU

数式:relu(z) = max(z, 0)

1次導関数:relu'(z) = 1 if z > 0; 0 otherwise

利点:

(1) Does not saturate even for large values of z
(2) Found much success in computer vision applications

Leaky ReLU

数式:leaky(z) = max(z, k dot z) where 0 < k < 1

1次導関数:relu'(z) = 1 if z > 0; k otherwise

利点:

(1) Allows propagation of error for non-positive z which ReLU doesn't

この paper は、楽しいアクティベーション機能を説明しています。あなたはそれを読むことを検討するかもしれません。

62
Wasi Ahmad

LSTMは、何らかの関数の出力を追加するときに値を増減できる内部状態ベクトルを管理します。シグモイド出力は常に負ではありません。状態の値は増加するだけです。 tanhからの出力は正または負であることができ、状態の増加と減少を可能にします。

そのため、tanhを使用して、内部状態に追加する候補値を決定します。 LSTMのGRUのいとこには2番目のタンがないため、ある意味では2番目のタンは必要ありません。詳細については、Chris Olahの nderstanding LSTM Networks の図と説明をご覧ください。

関連する質問、「シグモイドがLSTMで使用されるのはなぜですか?」また、関数の可能な出力に基づいて回答されます。「ゲーティング」は、0と1の間の数を掛けることによって達成され、それがシグモイド出力です。

シグモイドとtanhの導関数の間に実際に意味のある違いはありません。 tanhは、再スケーリングおよびシフトされたシグモイドです。RichardSocherの Neural Tips and Tricks を参照してください。二次導関数が関連する場合、その方法を知りたいです。

41