深度学习经验总结
来源:互联网 发布:淘宝投诉卖家后没用啊 编辑:程序博客网 时间:2024/06/11 12:12
在keras上的实验,SGD,也叫随机梯度下降法,按我个人的理解,在keras上的实现过程是这样的,先把训练数据打乱(可选,也就是fit里面的shuffle属性)然后根据batch_size设置的值把训练数据拆分成几个等份,每份有batch_size个大小,用这些训练数据进行训练网络。
其实keras里的sgd是可以实现mini_batch的。当batch_size取1的时候,也就是说每次训练只选一个进行训练,然后把所有训练数据都遍历一遍后就完成了一个epoch.
而当batch_size设置为训练集的大小时,实现的就是batch梯度下降,也就是全量梯度下降。而当batch_size设置成中间只时就相当于mini_batch梯度下降 。
在我自己的实验中发现,当使用全量梯度下降时,损失曲线下降较平滑,但是收敛速度比较慢
而当使用mini_batch梯度下降是,损失曲线会有震荡下降的趋势,这在一方面可以跳过局部最小值,另一方面也造成了正确率会剧烈震荡。当batch_size的值设置的越小,可能震荡越剧烈。而且,batch_ssize设置越大(越接近训练数据总量)训练速度也越快。
另外,有一种自适应梯度下降法,叫adam,可以使收敛速度加快,效果较好,是目前用的比较多的一种梯度下降法。
另外,可以将学习率设置成随着训练的进行慢慢减小,这样也能 使最终结果收敛到一个较好的值。根据我的经验,比如迭代10000次,在100次里面验证集损失值没有下降,就将学习率减半,而在1000次里面学习率没有下降就提前停止训练。
0 0
- 深度学习经验总结
- 深度学习之经验总结
- Git深度使用经验总结
- Git深度使用经验总结
- Git深度使用经验总结
- Git深度使用经验总结
- Git深度使用经验总结
- Git深度使用经验总结
- 学习经验总结
- 学习经验总结
- 学习经验总结
- good,JSP学习经验总结
- 大一学习经验总结
- 个人学习经验总结
- JSP学习经验总结
- JSP 的学习经验总结
- java 学习经验总结
- Linux/Unix学习经验总结
- 机器学习 The optimal margin classier
- Python 2.x中常见字符编码和解码方面的错误及其解决办法 总结
- 数组中的最长连续序列---dp实现
- Hibernate架构
- 勒索病毒来袭!及时备份数据吧!
- 深度学习经验总结
- myeclipse 工具点击close all 项目不再图形化界面,怎么调出来
- Android学习五 网络编程与handler消息机制
- u-boot环境变量与内核MTD分区关系[转载]
- [脑科学]-这才是心理学
- Linux 下 Java JDK 安装流程
- JAVA基础学习---- 封装
- 对象的一些模糊
- Windows系统打开Linux下Ext格式磁盘方式