内核和循环内核在Keras LSTM中的应用

我在尝试在脑海中构建LSTM的结构时,不理解内核和循环内核的含义。根据这个帖子中的LSTM部分,内核是与输入相乘的四个矩阵,而循环内核是与隐藏状态相乘的四个矩阵,但是,在这个图中这四个矩阵指的是什么呢?

enter image description here

这些是门控吗?

我使用这个应用测试了下面的代码中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单元处理的权重

units = 神经元,就像经典的多层感知机一样

你的图中没有显示,但输入是一个包含一个或多个值的向量X,每个值被发送到一个具有自己权重w的神经元(我们将通过反向传播来学习这些权重)

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

The weights

当你增加一个神经元时,你就在增加另外四个权重\内核

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

1 * 4 * units = kernel

关于recurrent_kernel,你可以在这里找到答案这里。在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/

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注