誰かがkeraslstmレイヤーの初期化で渡されたアクティベーションと繰り返しアクティベーション引数の違いを説明できますか?
私の理解によると、LSTMには4つの層があります。 LSTMコンストラクターにアクティベーション引数を渡さない場合の各レイヤーのデフォルトのアクティベーション関数は何ですか?
オン コード
1932年からのライン
i = self.recurrent_activation(z0)
f = self.recurrent_activation(z1)
c = f * c_tm1 + i * self.activation(z2)
o = self.recurrent_activation(z3)
h = o * self.activation(c)
recurrent_activationは、入力/忘れ/出力ゲートをアクティブにするためのものです。
アクティベーションセル状態と非表示状態の場合。
LSTMユニットには、候補の非表示状態(g)と出力の非表示状態(c)に加えて、入力ゲート、忘却ゲート、出力ゲートと呼ばれる3つのゲートがあります。
LSTMCellクラスのbuildメソッドには、これらのアクティベーションが呼び出される実装が含まれています( https://github.com/keras-team/keras/blob/master/keras/layers/recurrent.py#L1892 )。
recurrent_activation引数は、入力ゲート、忘却ゲート、および出力ゲートに適用されます。この引数のデフォルト値は、ハードシグモイド関数です。 activation引数は、候補の非表示状態と出力の非表示状態に適用されます。この引数のデフォルト値は、双曲線正接関数です。
このビデオのAndrewNgによる説明 1 によると、update、forget、outputゲートの3つのゲートには、シグモイド型の活性化関数が必要です。したがって、kerasドキュメントの活性化はこれらの活性化値を参照しています。
更新候補と出力に必要なアクティベーションはtanhです。したがって、繰り返しのアクティベーションは、Kerasドキュメントのこれらのアクティベーションに対応します。 RA-繰り返しのアクティベーション、Act.-アクティベーション