1. batch参数——批量学习[1,2,3]
(1)现象:
(1-1)一次性将batch数量个样本feed神经网络,进行前向传播;然后再进行权重的调整,这样的一整个过程叫做一个回合(epoch),也即一个batch大小样本的全过程就是一次迭代。
(1-2)将训练数据分块,做成批(batch training)训练可以将多个训练数据元的loss function求和,使用梯度下降法,最小化求和后的loss function,进而对神经网络的参数进行优化更新
(2)一次迭代:包括前向传播计算输出向量、输出向量与label的loss计算和后向传播求loss对权重向量w导数(梯度下降法计算),并实现权重向量w的更新。
(3)优点:
(a)对梯度向量(代价函数对权值向量w的导数)的精确估计,保证以最快的速度下降到局部极小值的收敛性;一个batch一次梯度下降;
(b)学习过程的并行运行;
(c)更加接近随机梯度下降的算法效果;
(d)Batch Normalization 使用同批次的统计平均和偏差对数据进行正则化,加速训练,有时可提高正确率[7]
(4)现实工程问题:存在计算机存储问题,一次加载的batch大小受到内存的影响;
(5)batch参数选择:
(5-1)从收敛速度的角度来说,小批量的样本集合是最优的,也就是我们所说的mini-batch,这时的batch size往往从几十到几百不等,但一般不会超过几千
(5-2)GPU对2的幂次的batch可以发挥更佳的性能,因此设置成16、32、64、128...时往往要比设置为整10、整100的倍数时表现更优
(6)4种加速批梯度下降的方法[8]:
(6-1)使用动量-使用权重的速度而非位置来改变权重。
(6-2)针对不同权重参数使用不同学习率。
(6-3)RMSProp-这是Prop 的均方根 ( Mean Square ) 改进形式,Rprop 仅仅使用梯度的符号,RMSProp 是其针对 Mini-batches 的平均化版本
(6-4)利用曲率信息的最优化方法。
2. 学习率η参数[6]
(1)定义:运用梯度下降算法优化loss成本函数时,权重向量的更新规则中,在梯度项前会乘以一个系数,这个系数就叫学习速率η
(2)效果:
(2-1)学习率η越小,每次迭代权值向量变化小,学习速度慢,轨迹在权值空间中较光滑,收敛慢;
(2-2)学习率η越大,每次迭代权值向量变化大,学习速度快,但是有可能使变化处于震荡中,无法收敛;
(3)处理方法:
(3-1)既要加快学习速度又要保持稳定的方法修改delta法则,即添加动量项。
(4)选择经验:
(4-1)基于经验的手动调整。 通过尝试不同的固定学习率,如0.1, 0.01, 0.001等,观察迭代次数和loss的变化关系,找到loss下降最快关系对应的学习率。
(4-2)基于策略的调整。
(4-2-1)fixed 、exponential、polynomial
(4-2-2)自适应动态调整。adadelta、adagrad、ftrl、momentum、rmsprop、sgd
(5)学习率η的调整:学习速率在学习过程中实现自适应调整(一般是衰减)
(5-1)非自适应学习速率可能不是最佳的。
(5-2)动量是一种自适应学习速率方法的参数,允许沿浅方向使用较高的速度,同时沿陡峭方向降低速度前进
(5-3)降低学习速率是必要的,因为在训练过程中,较高学习速率很可能陷入局部最小值。
3.卷积核的尺寸和深度选择 [9-10]
(1)卷积核大小 卷积层数确定的原则是尺寸小,深度深,3个3×3的卷积核效果和1个7×7的卷积核一样,但是前面的参数为27,后面的参数为49.
(2)工程上深度的选择原则:按照16的倍数倍增,结合了gpu硬件的配置。
4.卷积层的选择[10]
卷积层数设置,选最好性能的那个模型,它是几层那就设置几层。这个是训练数据,激活函数,梯度更新算法等多方面的影响,也不是简单就试出来的。
参考文献:
[1] Simon Haykin. 神经网络与机器学习[M]. 机械工业出版社, 2011.
[3] 学习笔记:Batch Size 对深度神经网络预言能力的影响
[4] 机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size. http://blog.csdn.net/u012162613/article/details/44265967
[5] 深度学习如何设置学习率. http://blog.csdn.net/mao_feng/article/details/52902666
[6] 调整学习速率以优化神经网络训练.https://zhuanlan.zhihu.com/p/28893986
[8] Neural Networks for Machine Learning by Geoffrey Hinton.