Keras-LSTMs中的核与递归核

2024-09-28 21:34:24 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: 代码appmodel状态backunit矩阵post
1条回答
网友
1楼 · 发布于 2024-09-28 21:34:24

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

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

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

四个矩阵为(表示为Wf、Wi、Wc、Wo):

The weights

当您添加一个神经元时,您正在添加其他4个权重\内核

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

1 * 4 * units = kernel

关于recurrent_kernel{a2}。 基本上,在KERA中,输入和隐藏状态不像示例图中那样串联(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/

相关问题 更多 >