深度学习——训练trick

1、数据预处理
数据必须进行预处理以使其zero-mean。
图像处理中有两种方式中心化:减去均值图像(32,32,3);减去每通道均值(3个值)。

2、梯度检查
使用中心形式:
使用双精度:使用单精度浮点数时,可能会出现即使梯度实现是正确的,也会得到比较大的相对误差(比如1e-2),应该使用双精度数据类型。
step大小:不是越小越好,当h过小时会出现数值精确度问题。一般在1e-4到1e-6之间修改h。
计算相对误差:网络越深,误差越大。所以当对一个深度达10层的神经网络进行梯度检查时,即使相对误差为1e-2可能也是可以的。

3、检查初始损失是否合理
由于参数是随机的,所以softmax得到的每个类别的结果是1/class_num,由此可以估计出初始的loss值。检查程序输出的loss值是否和期望的一致,如果不一致,那么可能损失函数计算错误。

4、确保可以在很少的数据集上过拟合
选择大概20个数据来训练网络,那么损失值应该随着训练epoch不断减小并收敛到0。

5、参数初始化

6、学习率
损失值为nan时几乎总意味着学习率过大。

参考

[1] http://yyue.blogspot.com/2015/01/a-brief-overview-of-deep-learning.html
[2] http://cs231n.github.io/neural-networks-3/#gradcheck

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值