loss 曲线 神经网络_总结李飞飞教授讲义中的神经网络调参技巧

这篇博客总结了李飞飞教授关于神经网络调参的技巧,包括数据预处理(零均值、归一化、去相关性、白化)、学习率调整、loss曲线分析及训练策略。文中提到了如何处理loss曲线下降缓慢、爆炸或出现NaN的情况,并给出了训练和验证集loss差距过大时的解决办法。此外,还建议关注梯度与权重的比例,以及通过可视化权重辅助调整正则项。
摘要由CSDN通过智能技术生成

总结了李飞飞教授的讲义,稍微结合自己的一些经验(也就是厚着脸皮说一下结合了自己的经验了,其实自己的那些经验,都在教授的讲义中了。。。。)。

数据预处理:零均值(zero-centered),将数据的均值变成零。所有数据整体减去本身的均值就行了。

归一化(normalize),把数据各个向量的方差改成1. (1,2两点,在BN层中其实也是这样的思想了)

去相关性(decorrelate),将数据各个分量设置为互相独立的。协方差矩阵是对角阵。

白化(whiten),协方差矩阵是单位阵,零均值,方差为1.

这些操作在神经网络中比较常见。有些层的设计也是基于上面的一些思想来的。

少量数据的验证:

先使用少量数据,确保网络能够在这些很少的数据集上完全拟合。如果是自己写的代码,可以验证有没有错误,结构设计有没有缺陷。

学习率:

这个调整起来相当看经验。。。。。下面总结的几点也不是绝对的。如果loss 没有下降:学习率可能过低或者过高。过低是因为每次更新的太小了,总在很小的地方波动,网络基本无法训练。过高是因为在某个最低点附近震动,无法进入那个最低点。(此处非常感谢 @赵英俊 指出问题!)。

如果loss 爆炸了:学习率过高

如果loss出现了NaN:一个可能是学习率过高,另外可能是自己写的哪里有bug。(有时候有一些奇怪的情况,非常偶尔出现NaN,就是查不出哪里错了,而且不能复现NaN,后面的实验都是正常的。这个问题我也不清楚,难道是GPU过热了23333。。。)(NaN的情况有@ValK的分析&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值