10.2训练
一、卷积层参数tricks
- 图片输入是2的幂次方,例如32、64、96、224等。
- 卷积核大小是3*3或者5*5。
- 输入图片上下左右需要用0来补充,即padding,且假如卷积核大小是5那么padding就是2(图片左右上下都补充2),卷积核大小是3padding大小就是1。
二、池化层参数tricks
-
pooling层也能防止过拟合,使用overlapped pooling,即用来池化的数据有重叠,但是pooling的大小不能超过3,常用的池化是2*2。
- max pooling 比avg pooling 效果会好一些。
三、学习率
- 0.1是学习率的常用值
- 在实际中,如果在验证集上看不到性能的提升(如损失函数值下降或者准确率上升),那就可以对当前的学习率除以2(或5)看看效果并循环这一过程,或许能给你一个惊喜。
四、正则化:预防过拟合
过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。
常用防止过拟合方法:
- L1正则化
- L2正则化
- 最大模限制
- dropout
有一个比较好的讲解L1、L2正则化文章:https://blog.csdn.net/jinping_shi/article/details/52433975
1) L1正则化
下图是Python中Lasso回归的损失函数,式中加号后面一项α||w||1α||w||1即为L1正则化项:
L1正则化是指权值向量ww中各个元素的绝对值之和,通常表示为||w||1||w||1。
L1正则化作用:可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择 。
2)L2正则化
L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合。
下图是Python中Ridge回归的损失函数,式中加号后面一项α||w||22α||w||22即为L2正则化项。
L2正则化是指权值向量ww中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为||w||2。
3)最大模限制
4)Dropout
Dropout 是一个超级有效、简单且是前阵子由 Srivastava 等人提出《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》的,它是其它正则方法(如 L1 、 L2 、 最大模限制 )的补充。在训练中, dropout 可理解为对整个神经网络进行抽样(出的网络),并基于输入数据仅仅更新抽样网络的参数。(因为这些抽样得到的网络是共享参数的,所以这些抽样出的网络的权重参数并非是独立的)。