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

问题描述 投票:8回答:5

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

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

keras lstm keras-layer
5个回答
10
投票

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

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

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


10
投票

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

激活,如果是细胞状态和隐藏状态。


3
投票

所以当调用LSTM层时,会执行两种操作:

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

Here你可以阅读细节。


0
投票

根据Andrew Ng在这个video1中的解释,三个门即更新,遗忘和输出门需要一个sigmoid类型的激活函数。因此keras文档中的激活指的是这些激活值。

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


-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.