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

时间:2017-07-06 11:39:34

标签: keras lstm keras-layer

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

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

5 个答案:

答案 0 :(得分:8)

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

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

recurrent_activation 参数适用于输入,遗忘和输出门。此参数的默认值是hard-sigmoid函数。 激活参数适用于候选隐藏状态和输出隐藏状态。此参数的默认值是双曲正切函数。

答案 1 :(得分:8)

code

始于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 用于激活输入/忘记/输出门。

激活 (如果是单元格状态和隐藏状态)。

答案 2 :(得分:2)

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

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

Here您可以阅读详细信息。

答案 3 :(得分:0)

根据吴安德(Andrew Ng)在此视频1中的解释,三个门,即更新,忘记和输出门需要S型曲线激活功能。因此,喀拉拉邦文献中的激活是指这些活动值。

更新候选者和输出所需的激活为tanh。因此,周期性激活对应于Keras文档中的这些激活。RA-Recurrent Activation, Act.-Activations

答案 4 :(得分:-2)

我验证了您的问题,以下是我的结论:   - 激活:tanh;   - 经常性激活:sigmoid(keras中的默认hard_sigmoid); 并且对于一个单元格中的4个门:   - i,f,o使用反复激活;   - C和更新h使用激活;