有人可以向我解释初始化keras lstm层时传递的激活和重复激活参数之间的区别吗?

May*_*yal 13 lstm keras keras-layer

有人可以向我解释初始化keras lstm层时传递的激活和重复激活参数之间的区别吗?

根据我的理解,LSTM有4层.如果我没有将任何激活参数传递给LSTM构造函数,请解释每个层的默认激活函数是什么?

小智 11

代码上

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)
Run Code Online (Sandbox Code Playgroud)

recurrent_activation用于激活输入/忘记/输出门。

如果单元格状态和隐藏状态激活


小智 10

除了候选隐藏状态(g)和输出隐藏状态(c)之外,LSTM单元还具有称为输入,遗忘和输出门的3个门.

LSTMCell类中的构建方法包含调用这些激活的实现(https://github.com/keras-team/keras/blob/master/keras/layers/recurrent.py#L1892).

recurrent_activation道理也适用于输入,忘记和output门.此参数的默认值是hard-sigmoid函数.该激活道理也适用于候选隐藏状态和输出隐藏状态.此参数的默认值是双曲正切函数.


Mar*_*jko 4

因此,当LSTM调用一个层时,会执行两种操作:

  • 内部循环激活计算实现内部存储单元 - 为此recurrent_activation使用(默认值为 a hard_sigmoid)。
  • 计算层的最终输出。这里您正在应用一个activation函数(默认值为tanh)。

在这里您可以阅读详细信息。

  • 我刚刚读了你分享的文章。据我了解,单个 LSTM 块中有四层。1. 忘记层决定从单元状态中忘记什么。2. 输入门层决定我们将更新细胞状态的哪些值 3. tanh 层创建新候选值的向量,可以将其添加到状态中。4.最后一个 sigmoid 层决定我们要输出什么。现在请您告诉我这四种激活中哪些是重复激活,哪些是正常激活。 (2认同)