python - 在对示例进行训练后,神经网络损失增加是否正常?
问题描述
我目前正在测试 LSTM 网络。我在反向传播之前和反向传播之后在训练示例上打印其预测的损失。后损失应该总是小于前损失是有道理的,因为网络只是在那个例子上训练的。
但是,我注意到在第 100 个训练示例左右,网络开始在反向传播之后给出比在训练示例上反向传播之前更不准确的预测。
是否期望网络始终具有前损失高于后损失?如果是这样,是否有任何原因发生这种情况?
需要明确的是,对于前一百个示例,网络似乎训练正确并且做得很好。
解决方案
你的数据集被洗牌了吗?否则,它可能会为前 99 个示例预测一个类别。如果不是,那么 LSTM 可能很难训练。尝试更改超参数,我也建议从 SimpleRNN、GRU 和 LSTM 开始,因为有时一个简单的网络可能就可以解决问题。
推荐阅读
- windows-installer - 查找 vcredist_x86.exe 的合并模块
- amazon-web-services - Terraform:lambda_function_association cloudfront 分布 s3 origin m
- python - 在 C++ 中嵌入 Python 时未定义对“main”错误的引用
- python - 如何将无序列表转换为熊猫中的一行?
- r - 如何将匹配的列替换为具有值的行值
- python - 将时间序列数据转换为横截面数据的最有效方法是什么?
- javascript - 网站页面加载时间非常慢
- python - 与另一个数据框相比,如何获得在唯一类成员资格(在一列上)方面不同的数据框行?
- amazon-dynamodb - AWS dynamoDB / 更新 / UpdateExpression / 如何通过使用嵌套地图来绕过路径重叠限制?
- c++ - 从 Windows PC 向 https url 发布 json 请求时出现 SSL 连接错误的原因可能是什么?