Keras LSTM 中的内核和循环内核

Kernel and Recurrent Kernel in Keras LSTMs

我试图在脑海中勾勒出 LSTM 的结构,但我不明白什么是内核和循环内核。根据 LSTM 部分中的 post,内核是四个矩阵乘以输入,循环内核是四个矩阵乘以隐藏状态,但是,该图中的这 4 个矩阵是什么?

是大门吗?

我正在用这个 app 测试下面代码的 unit 变量如何影响内核、递归内核和偏差:

model = Sequential()
model.add(LSTM(unit = 1, input_shape=(1, look_back)))

look_back = 1 它 returns 我认为:

unit = 2它returns我这个

unit = 3这个

用这个值测试我可以扣除这个表达式

但我不知道它在内部是如何工作的。 <1x(4u)><ux(4u)> 是什么意思? u = units

内核基本上是由 LSTM 单元处理的权重

units = 神经元,就像经典的多层感知器

它没有显示在你的图表中,但输入是一个具有 1 个或多个值的向量 X,并且每个值都在一个神经元中发送,它有自己的权重 w(我们将通过反向传播学习)

四个矩阵是这些(表示为Wf, Wi, Wc, Wo):

当你添加一个神经元时,你正在添加其他 4 个 weights\kernel

因此对于您的输入向量 X,您有四个矩阵。因此

1 * 4 * units = kernel

关于 recurrent_kernel 。 基本上在 keras 中,输入和隐藏状态不像示例图中那样连接在一起 (W[ht-1, t]),但它们被拆分并与其他四个称为 [=41= 的矩阵一起处理]U:

因为你有一个隐藏状态 x 神经元,权重 U(所有四个 U)是:

units * (4 * units) = recurrent kernel

ht-1 从你所有的神经元中循环出现。就像在多层感知器中一样,神经元的每个输出都进入所有下一个循环层神经元

来源:http://colah.github.io/posts/2015-08-Understanding-LSTMs/