gpt4 book ai didi

neural-network - 使用嵌入的 Keras LSTM 语言模型

转载 作者:行者123 更新时间:2023-12-03 17:39:49 25 4
gpt4 key购买 nike

我正在使用 keras 做一个语言模型。

基本上,我的词汇量 N 是 ~30.000,我已经在它上面训练了一个 word2vec,所以我使用嵌入,然后是 LSTM,然后我用一个全连接层和 softmax 预测下一个单词。
我的模型写如下:

EMBEDDING_DIM = 256
embedding_layer = Embedding(N,EMBEDDING_DIM,weights=[embeddings],
trainable=False)

model = Sequential()
model.add(embedding_layer)
model.add(LSTM(EMBEDDING_DIM))
model.add(Dense(N))
model.add(Activation('softmax'))

model.compile(loss="categorical_crossentropy", optimizer="rmsprop")

我有两个问题:
  • 在这种情况下,您能否确认我们只使用 LSTM 的最后一个隐藏层(后面是全连接层和 softmax),并且没有像 lstm 的连续隐藏层的最大/平均池化之类的东西(比如这里的情感分析 http://deeplearning.net/tutorial/lstm.html)?
  • 你怎么看,而不是将 lstm 的最后一个隐藏层连接到一个大小为 N (30.000) 的大的全连接层,连接到一个大小为 EMBEDDING_DIM 的层,并预测下一个词的嵌入而不是词本身,在这种情况下,我们用 mse 之类的东西替换损失,减少训练时间,主要是“帮助”我们的模型,因为词汇量很大,嵌入也可以用于网络的末端?

  • 谢谢 !

    最佳答案

    我只能肯定地回答第一个问题:

    是的,LSTM 层的输出是最后一个隐藏单元。如果给它参数 return_sequences=True,它只会返回所有隐藏状态。 .默认设置为 False。

    对于第二个问题,我只能说我试图预测词的 one-hot 向量表示的嵌入,但它给了我不好的结果。
    单词仍然是分类变量,即使我们可以通过连续表示以某种方式近似它们。
    出于这个原因,人们投入了大量精力来开发 Hierachical Softmax。

    关于neural-network - 使用嵌入的 Keras LSTM 语言模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39142665/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com