- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑:我看到有人对这篇文章投了反对票,请让我知道我做了什么,以便我将来可以避免这样做。谢谢
我对深度学习非常陌生,我正在研究我的第一个基于非教程的 RNN 模型,但是我得到的结果非常差。
我创建了 Anthony Fantano 的专辑评论数据集,其分数目标分别在 1-9 之间 ( here )。我的目标是使用情感分析根据输入文本预测分数。
首先,我使用 keras Tokenizer
实用程序类来预处理我的原始文本,然后我将基于标记的文本填充/截断为最大大小 np.mean(num_tokens) + 2 * np.std(num_tokens)
然后创建一个嵌入向量(使用 keras Embedding
类)
我对目标数据使用 one-hot 编码,向量长度为 10。
我的网络通过 softmax
激活生成长度为 10 的向量,并且我使用 categorical_crossentropy
作为损失函数。我任意选择了 GRU 单元的单位大小(这是正确的术语吗?),但使用它们并没有给我带来更好的结果。
model = Sequential()
model.add(embedding)
model.add(GRU(units=32, return_sequences=True))
model.add(GRU(units=16))
model.add(Dense(10, activation='softmax'))
optimizer = SGD(lr=0.01)
model.compile(loss='categorical_crossentropy',
optimizer=optimizer,
metrics=['accuracy'])
model.summary()
model.fit(x_pad, y_encoded,
validation_split=0.05, epochs=5, batch_size=64)
这是我的 keras 网络摘要
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
layer_embedding (Embedding) (None, 2290, 8) 8000
_________________________________________________________________
gru_1 (GRU) (None, 2290, 32) 3936
_________________________________________________________________
gru_2 (GRU) (None, 16) 2352
_________________________________________________________________
dense_1 (Dense) (None, 10) 170
=================================================================
Total params: 14,458
Trainable params: 14,458
Non-trainable params: 0
_________________________________________________________________
Train on 259 samples, validate on 14 samples
我的准确度,在学习率为 0.01 时,总是收敛到 0.3166,但我不确定为什么
259/259 [==============================] - 18s 68ms/step - loss: 2.2998 - acc: 0.2124 - val_loss: 2.2935 - val_acc: 0.4286
Epoch 2/10
259/259 [==============================] - 16s 63ms/step - loss: 2.2927 - acc: 0.2973 - val_loss: 2.2854 - val_acc: 0.3571
Epoch 3/10
259/259 [==============================] - 16s 61ms/step - loss: 2.2822 - acc: 0.2471 - val_loss: 2.2767 - val_acc: 0.3571
Epoch 4/10
259/259 [==============================] - 15s 58ms/step - loss: 2.2728 - acc: 0.2973 - val_loss: 2.2681 - val_acc: 0.4286
Epoch 5/10
259/259 [==============================] - 15s 58ms/step - loss: 2.2651 - acc: 0.3166 - val_loss: 2.2575 - val_acc: 0.4286
Epoch 6/10
259/259 [==============================] - 15s 58ms/step - loss: 2.2548 - acc: 0.3166 - val_loss: 2.2496 - val_acc: 0.4286
Epoch 7/10
259/259 [==============================] - 15s 57ms/step - loss: 2.2469 - acc: 0.3166 - val_loss: 2.2420 - val_acc: 0.4286
Epoch 8/10
259/259 [==============================] - 15s 58ms/step - loss: 2.2382 - acc: 0.3166 - val_loss: 2.2325 - val_acc: 0.4286
Epoch 9/10
259/259 [==============================] - 15s 58ms/step - loss: 2.2305 - acc: 0.3166 - val_loss: 2.2265 - val_acc: 0.4286
Epoch 10/10
259/259 [==============================] - 15s 58ms/step - loss: 2.2222 - acc: 0.3166 - val_loss: 2.2158 - val_acc: 0.4286
我能想到有两个可能的原因,第一个是我的学习率太大(因为准确率似乎跳跃,表明超调)。我尝试将其一直降低到 0.05,但 20 个 epoch 后,我的准确率无法超过 0.2046。我还尝试过使用随机梯度下降和 Adam 优化器,但两者都没有产生截然不同的结果。
我能想到的另一个可能的原因是我的数据集太小(只有 259 个样本),但我什至无法通过过度拟合获得高精度,所以我认为这不是问题?另外,我的实际特征数据(原始文本)非常大且广泛。
如果有任何帮助,我的完整源代码文件可以使用 here .
任何帮助将不胜感激,无论是正确的方向还是纠正我的理解。谢谢
最佳答案
我认为你正在滥用你的数据集。您的评论评分范围为 1 到 9,尽管这不是一个连续的范围,但它的特点是您没有使用的严格总顺序。为了让我的观点更清楚,如果你的算法预测评论的得分为 8,而真实标签为 9,那么它可能是错误的,但也只是轻微的错误。另一方面,如果它的预测为 1,那么结果就会相差很大。您当前的系统无法进行这种区分,因为您将所有 10 个离散类别视为彼此相距同样遥远。我的建议是将目标函数切换为 MSE,尽管数据具有离散性质,并使用包装器来测量准确性。这绝对有助于训练,您可以稍后切换回交叉熵。
免责声明:我还没有通读你的代码,但我经常遇到类似的问题,并且我已经能够按照我描述的方式解决它们。
关于python - 为什么我的模型准确率停留在 ~32%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50820527/
这是我的代码 />100 1000 它不按要求工作.. 当提交表单时(并且在任何错误情况下)它返回到默认选中的单选按钮,即值 = 1000 用户必须再次单击值 = 100,而目标是,如果用户选择了 1
假设我有一个透明的红色 HTML 元素。当我悬停该元素时,它应该变成纯红色。当我停止悬停该元素时,它应该动画回到第一个状态,但仅在 X 秒后。 到目前为止一切顺利,请参阅代码片段。 我的问题是当我停止
我遇到了 cookie 情况,我的 cookie 会存储一个颜色名称或根本不存储任何内容。所以让我们这样解释吧。我的 cookie 与我网站的外观有关,我的网站有 3 种外观: 正常(完全没有 coo
这是我的问题。我有一张包含三个 div 的 Bootstrap v4 卡。 A 是最重要的一个,我希望它保持在左上角。 当页面较宽时,我希望 B 和 C 在 A 的右侧。 当页面变窄时,卡片缩小,C
示例表: uid time_stp traf 1 2016-01-13 00:00:00 6 1 2016-01-13 05:00:00 8 1
我是一名优秀的程序员,十分优秀!