【问题标题】:Keras model for multiclass classification for sentiment analysis with LSTM - how can my model be improved?用于使用 LSTM 进行情感分析的多类分类的 Keras 模型 - 如何改进我的模型?
【发布时间】:2020-07-23 12:56:39
【问题描述】:

所以我想通过 keras 预测产品在亚马逊上获得的星数,我已经看到了其他方法,但我使用了带有 one-hot 编码的通用句子编码器(我遵循了一个 Youtube 教程嵌入评论)。现在不使用 LSTM 层并使用以下层:

`model.add(keras.layers.Dense(units=256,input_shape=(X_train.shape[1], ),activation='relu'))
model.add(keras.layers.Dropout(rate=0.5))
model.add(keras.layers.Dense(units=128,activation='relu'))
model.add(keras.layers.Dropout(rate=0.5))
model.add(keras.layers.Dense(5, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(0.0001),metrics= ['accuracy'])`

我能够获得大约 0.55 的准确度和 1 的损失,这不是很好。但是,当我将 X_train 和 X_test 数据重塑为 LSTM 层的 3D 输入,然后将其放入模型中时,例如:

`model.add(keras.layers.Dense(units=256,input_shape=(512, 1), activation='relu'))
model.add(keras.layers.Dropout(rate=0.5))
model.add(keras.layers.Bidirectional(keras.layers.LSTM(100, dropout=0.2, recurrent_dropout=0.3)))
model.add(keras.layers.Dense(5, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(0.0001),metrics= ['accuracy'])`

我得到了大约 0.2 的准确度,甚至更差,损失接近 2.00。

我不知道是否需要 LSTM,因为我是神经网络的新手,但我一直在为我的项目尝试这样做。

所以我问我应该坚持不使用 LSTM 的第一个模型,还是有办法在使用我使用的嵌入方法的同时改变带有 LSTM 的第二个神经网络的准确度为 0.2?

感谢您的宝贵时间!

【问题讨论】:

    标签: python tensorflow keras sentiment-analysis


    【解决方案1】:

    为什么你应该选择 LSTM 而不是普通的神经元,因为在语言中,单词之间存在关系,这对于理解句子的含义很重要。只有密集层的模型不能做得那么好,因为它没有可以存储此类信息的连接,它只是通过查看整个图片而不是单词之间的连接来预测。来到 LSTM,他们代表 Long Short Term Memory,简而言之,他们拥有的是记住他们以前看过的数据的能力,这有助于它在同一个句子中创建与不同单词的连接。

    谈到您将如何创建模型。首先,您需要 TF 库中的 Tokenizer 以从您的数据中创建令牌,然后通过它将您的序列转换为数字,然后使用 pad_sequences 填充您的数据。然后您的数据就准备好了。在您的网络中,您的第一层应该是嵌入层。紧随其后的是 LSTM(我已经解释了为什么要使用它们)或双向 LSTM(它们可以学习从左到右和从右到左的依赖关系,比单向 LSTM 表现更好)或 Conv1D(根据过滤器大小,它能够在过滤器长度上建立依赖关系,它已被使用并工作,您可以尝试)层,然后是池化层(GlobalMaxPooling1D),然后是密集层以获得您的预测。

    【讨论】:

      猜你喜欢
      • 2017-11-07
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 2019-06-24
      • 2019-11-30
      相关资源
      最近更新 更多