Deep Learning入门:参数意义及对一些trick理解的总结

以下大部分都是在CIFAR10数据集使用tensorflow时获得的经验。

一、batch normalization

batch normalization是以一个batch为整体进行归一化,一般方法是(x-均值)/方差。

由于该方法能将图片上的值的范围变换致(-c,c)(c视batch而定),不但缩小到了不同的范围,而且使值在负数上也有分布。

缩小范围的好处在于减少光照的影响。此处一种侧面的证明是我对数据集的预处理方法进行单一变量测试时,在对batch进行归一化后,使用random_brightness函数随机增加图片的亮度,训练得出的准确率基本等于只做归一化,而随机左右反转+归一化的组合却能明显提高准确率。对于这种现象我的理解是:亮度可以理解图片的值的分布偏向(因此增加亮度只要对图片的所有值加一个数就可以了),假设亮度对准确率造成了影响,那么可以认为只要对图片的范围进行平移距离c,就可以缩小该影响。而归一化所做的就是缩小值与值之间的差距,数据上反映为把c的值变小,那么c对最终准确率的影响也就变小了。

但是,归一化的负面影响也是由于归一化将值的范围缩小了。值的缩小不仅仅将那些干扰因素的影响缩小,也将那些有利的特征缩小了,比如光照有时也会成为数据的关键特征。这样的话,数据的特征将会更加难以学习得出。

同时,有效的归一化也使得不同batch的数据分布出现了明显的差距,这样其实也在某种程度上增加了数据集的数量。

归一化的最关键优点其实在于它使数据在负数上也有分布,这样的话,relu函数才会有更明显的效果。

二、卷积核

5×5的卷积核可以表示为两层3×3的卷积核。

64×64+128×128+256×256三核和32×32+64×64+128×128三核的组合最终训练结果相同,但后者参数少,选择后者。

三、过拟合

当出现过拟合的时候,我的导师跟我说是训练集准确率先基本不变一段时间后,开始上升,而测试集准确率下降。而根据我自己的经验,过拟合也变现为训练集准确率与测试集准确率的差距,即两个准确率在最终都能基本收敛,但是一般而言训练集比测试集高。一种变相的证明方法是当我使用dropout时,当调低keep property时,训练集准确率与测试集准确率之间的差距确实缩小了,实际表现为测试集准确率不变的情况下训练集,训练集准确率不会上升到很高的数值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值