卷积神经网络参数解析

1.  batch参数——批量学习[1,23]

(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.卷积核的尺寸和深度选择 [910]

        (1)卷积核大小 卷积层数确定的原则是尺寸小,深度深,3个3×3的卷积核效果和1个7×7的卷积核一样,但是前面的参数为27,后面的参数为49.

        (2)工程上深度的选择原则:按照16的倍数倍增,结合了gpu硬件的配置。

4.卷积层的选择[10]

卷积层数设置,选最好性能的那个模型,它是几层那就设置几层。这个是训练数据,激活函数,梯度更新算法等多方面的影响,也不是简单就试出来的。

参考文献:

[1]  Simon Haykin. 神经网络与机器学习[M]. 机械工业出版社, 2011.

[2]  训练神经网络时如何确定batch的大小?

[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

[7]  机器学习中用来防止过拟合的方法有哪些?

[8]  Neural Networks for Machine Learning by Geoffrey Hinton.

[9]  如何确定卷积神经网络的卷积核大小、卷积层数、每层map个数

[10]  卷积神经网络的卷积核大小、卷积层数、每层map个数都是如何确定下来的呢?

    原文作者:dreamsfuture
    原文地址: https://www.jianshu.com/p/f8c7177c37f7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞