有人可以向我解释初始化keras lstm层时传递的激活和重复激活参数之间的区别吗?
根据我的理解,LSTM有4层。如果我没有将任何激活参数传递给LSTM构造函数,请解释每个层的默认激活函数是什么?
答案 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使用激活;