Keras嵌入层的工作原理是什么?

我开始使用Keras来构建神经网络模型。

我有一个分类问题,其中特征是离散的。为了处理这种情况,标准程序包括将离散特征转换为二进制数组,使用独热编码(one-hot encoding)。

然而,似乎在Keras中这一步不是必需的,因为可以简单地使用嵌入层(Embedding layer)来创建这些离散特征的特征向量表示。

这些嵌入是如何执行的?

我的理解是,如果离散特征f可以取k个值,那么嵌入层会创建一个具有k列的矩阵。每当我在训练阶段接收到该特征的一个值,比如i时,只有矩阵的i列会被更新。

我的理解正确吗?


回答:

正如人们可能很容易注意到的那样,将one-hot向量与Embedding矩阵相乘可以在恒定时间内有效执行,因为这可以被理解为矩阵切片。这正是Embedding层在计算过程中所做的。它只是使用gather后端函数选择适当的索引。这意味着您对Embedding层的理解是正确的。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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