1. ホーム
  2. machine-learning

[解決済み] LSTMでtanhを使う直感とは?[クローズド]

2023-03-30 11:08:43

質問

LSTMネットワークにおいて( LSTMの理解 )では、なぜ入力ゲートと出力ゲートにtanhが使われているのですか?

直感的にはどうなのでしょうか?

単なる非線形変換なのでしょうか?もしそうなら、両方を別の活性化関数(ReLUなど)に変えてもいいのでしょうか?

どのように解決するのですか?

シグモイド の3つのゲート(in, out, forget)のゲート関数として使用されます。 LSTM の3つのゲートのゲート関数として使用されます。0と1の間の値を出力し、ゲートに情報を流さないことも、完全に流すことも可能だからです。

一方、消失勾配の問題を解決するためには、ゼロになる前に長い時間二階微分が維持できる関数が必要です。 Tanh は上記の性質を持つ良い関数です。

良いニューロンユニットは、境界があり、容易に微分可能で、単調で(凸最適化に適している)、扱いやすいものであるべきです。これらの性質を考慮するならば、私は ReLU の代わりに tanh 関数に置き換えることができます。

しかし、活性化関数を選択する前に、他の関数に対する自分の選択の利点と欠点が何であるかを知っておく必要があります。ここでは、いくつかの活性化関数とその利点について簡単に説明します。

シグモイド

数学的表現。 sigmoid(z) = 1 / (1 + exp(-z))

一階微分。 sigmoid'(z) = -exp(-z) / 1 + exp(-z)^2

メリット

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

タン

数学的表現。 tanh(z) = [exp(z) - exp(-z)] / [exp(z) + exp(-z)]

一階微分。 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

一階微分。 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)

一階微分。 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

漏れるReLU

数学的表現。 leaky(z) = max(z, k dot z) where 0 < k < 1

一階微分。 relu'(z) = 1 if z > 0; k otherwise

メリット

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

この論文 では,楽しい活性化関数が紹介されている.読んでみてください。