python - Keras LSTM 中的内核和循环内核

标签 python machine-learning keras lstm

我试图在脑海中勾勒 LSTM 的结构,但我不明白什么是内核和循环内核。根据这个post在 LSTM 部分,内核是与输入相乘的四个矩阵,循环内核是与隐藏状态相乘的四个矩阵,但是,图中的这 4 个矩阵是什么?
enter image description here
是门吗?
我正在测试这个 app怎么了unit下面代码的变量影响内核、循环内核和偏差:

model = Sequential()
model.add(LSTM(unit = 1, input_shape=(1, look_back)))
look_back = 1它告诉我:
enter image description here
unit = 2它返回给我这个
enter image description here
unit = 3这个
enter image description here
用这个值测试我可以推导出这个表达式
enter image description here
但我不知道这在内部是如何工作的。什么意思<1x(4u)><ux(4u)> ? u = units

最佳答案

内核基本上是 LSTM 单元处理的权重
单位 = 神经元,就像经典的多层感知器
它没有显示在您的图表中,但输入是一个具有 1 个或多个值的向量 X,每个值都发送到一个具有自己权重 w 的神经元中(我们将通过反向传播来学习)
这四个矩阵是这些(表示为 Wf、Wi、Wc、Wo):
The weights
当您添加一个神经元时,您正在添加其他 4 个权重\内核
因此,对于您的输入向量 X,您有四个矩阵。因此

1 * 4 * units = kernel
关于recurrent_kernel here you can find the answer .
基本上在 keras 中,输入和隐藏状态不像示例图 (W[ht-1, t]) 那样连接,但它们被拆分并与其他四个称为 U 的矩阵一起处理:
how keras handle input x and hidden state ht-1
因为你有一个隐藏状态 x 神经元,权重 U(所有四个 U)是:
units * (4 * units) = recurrent kernel
ht-1 从你所有的神经元中反复出现。就像在多层感知器中一样,神经元的每个输出都进入所有下一个循环层神经元
来源:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

关于python - Keras LSTM 中的内核和循环内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64881855/

相关文章:

python - 如何使用 Biopython 翻译 FASTA 文件中的一系列 DNA 序列并将蛋白质序列提取到单独的字段中?

python - 基于条件的值之间的差异

python - 如何确定 Keras 的 Dense 方法中层的大小?

opencv - 如何在自定义检测算法中使用级联分类器?

python - 从图像中减去均值

python - 较大的神经网络比较小的神经网络会收敛到更大的误差

python - LSTM MNIST 数据集中的特征和时间步

python - 检测 SQLAlchemy 模型是否有与其关联的待处理写入操作

python - 为什么我的 Flask Web 应用程序未检测到代码更改

python - InaccessibleTensorError - 在另一层的循环条件中使用 `tf.keras.layers.Layer` 输出时