据我了解,嵌入层只是查找矩阵,其权重是通过优化问题来学习的。
对于此示例,假设我的数据集包含一个类别变量。例如,我想自动将单词的句子编码为自身,以学习句子的表示形式。
# example model
input = tf.keras.layers.Input()
embed = tf.keras.layers.Embedding(99)(input)
encoder = tf.keras.layers.LSTM()(embed)
decoder = tf.keras.layers.LSTM()(encoder)
model = tf.keras.models.Model(input, decoder)
该错误将使embed
和decoder
输出之间的差异最小化。
但是,由于嵌入是根据优化条件来学习的,因此我认为我最终将学习一些琐碎的表示形式,例如
嵌入矩阵全为1,解码器始终输出1。 (甚至是零),使我的训练准确率达到了100%。
例如,在嵌入矩阵中,所有单词只是1的向量,而自动编码器仅返回1。
我想做的是学习有意义的分类变量表示。