(七)卷积神经网络调参

**- 更多优化算法

  • 激活函数
  • 网络初始化
  • 批归一化
  • 数据增强
  • 更多调参技巧。。。。**

一。更多优化算法:

~~随机梯度下降:1。效果较好,时间较长,但受初始学习率影响很大 2。每个维度的学习率一样
~AdaGrad算法:调整学习率,,,,,,前期regularizer较小,放大梯度,后期减小梯度,梯度随训练次数增大而减小,每个分量有不同的学习率,,,,,,缺点:前期学习率设置太大,后期学习率太小。需要训练较深较复杂的网络且需要快速收敛时,使用Adam更合适。
~RMSProp算法:是Adagrad的变种,由累积平方梯度变为平均平方梯度,解决了后期学习不动的问题(学习率过小提前结束)

***注意:***对于稀疏矩阵,要使用学习率自适应方法。

Adam的收敛性好于AdaGrad和RMSProp.

激活函数

sigmoid:
1在输入非常大或非常小时,非常小
2.输出均值非0

Tanh:
依旧没有梯度,输出均值是0

Relu

不饱和(梯度不会过小)
收敛速度快
输出均值非0
在x的负轴的梯度为0,会有Dead-Relu

Leaky-Relu
在Relu的基础上,负轴用一个斜率小的正比例函数代替

Elu
在Relu基础上,负轴用指数代替
均值更接近0,但计算量会变大

Maxout

Relu的泛化版本。。。。

总结激活函数选择技巧
1.。。。。Relu-小心设置learning rate
2…不要使用sigmoid
3…使用后三种Relu的改进版
4.。。。可以试试Tanh,不要抱太大期望

网络初始化

如何分析初始化好坏
查看初始化后各层的激活值分布,如果分布特别集中不均匀,则初始化不好

1。全为0
只能适用于单层网络,不能用于多层

正态分布初始化
方差较小时会逐渐集中到0,方差较大会逐渐集中到1

**。





。。
**

批归一化

思想:使每层的激活分布比较统一,理解成正态分布变成标准正态
每个batch在每一层上都做归一化
另设两个参数来逆归一化

数据增强

归一化
图像变换:翻转拉伸剪裁变形
色彩变化对比度,亮度
多尺度裁剪缩放。。。

更多调参技巧

  1. 拿到更多的数据

  2. 给神经网络添加层次

  3. 紧跟最新进展,使用新方法

  4. 增大训练的迭代次数

  5. 尝试正则化

  6. 使用更多的GPU来加速训练

  7. 可视化工具检查中间状态:
    。。。。。。 [损失 ]
    。。。。。. [ 梯度]
    。。。。. 【准确率]
    。。。。。。. [学习率】

  8. 标准数据集上训练

  9. 在小数据集上进行训练

  10. 数据集分布平衡

  11. 使用预调整好的稳定模型结构

  12. Fine-tuning:使用预训练好的网络结构进行微调

猜你喜欢

转载自blog.csdn.net/qq_36309884/article/details/88771229