deep-learning - Mini-batch 表现不如 Batch 梯度下降?
问题描述
我能够从批量梯度下降(批量大小 37000)中获得相当不错的结果,但是当我尝试小批量梯度下降时,我得到的结果非常差(即使使用 adam 和 dropout)。
在批处理 gd 中,我能够获得 100% 的训练和 97% 的 dev/cv 准确度。而在大小为 128 的小批量中,两者的准确率都只有 88% 左右。
训练损失似乎围绕 1.6 旋转,并且不会随着任何进一步的迭代而减少,但当我增加批量大小(因此提高准确性)时会缓慢减少。最终我达到 37000 的批量大小以获得最大准确度。
我尝试调整 alpha 但仍然具有相同的准确性。
我正在训练 mnist 数字数据集。
可能是什么原因?请帮忙
解决方案
我找到了解决方案
我用于批处理 gd 的 lmbda 值(即 10)对于 mini batch gd 似乎太大了。通过将其降低到 0.1 ,我解决了这个问题。
推荐阅读
- java - Java:测试给定字符串中所有包含数字是否按升序排列的有效方法
- java - 定义一个多接口变量
- accessibility - 使视障者的屏幕阅读器可以访问非本地应用程序
- c# - 脚手架项目的包还原失败问题
- python - 我的正则表达式没有在文本中捕获所需的模式?
- swift - 如何通过弹出框的行为全屏显示 ViewController?迅速
- javascript - 汇总错误:导入 Material-UI 组件时无法从 @babel/runtime 加载模块
- c# - 在 Linux 上使用 SQLite DB 部署 ASP.Net Core API 后出现“没有这样的表”
- python - 随机播放数组,使得元素的预期索引将是其原始索引
- python - python中的后台无限循环