Training Neural Networks, part II

part II :

- Fancier optimization

- Regularization

- Transfer Learning

 

  •  Optimization

Problems with SGD

1.

 当我们在水平方向变化时,损失函数的变化非常慢

而在竖直方向(等高线方向)变化时,损失值变化很快

 

在这样函数上,SGD:

         Very slow progress along shallow dimension, jitter along steep direction

 

2. 局部极小值(local minima),鞍点(saddle points)

local minima:

Zero gradient, gradient descent gets stuck

saddle points:

Saddle points much more common in high dimension

 

解决方法:

SGD + Momentum

Nesterov Momentum 

 

用换元法改进一下,以便于求loss,gradient

 

AdaGrad

 

当沿一个轴有很小的梯度时,在更新参数时除以累加梯度平方,得到一个比较大的值,从而加快学习速度

当沿一个轴有很大的梯度时,在更新参数时除以累加梯度平方,得到一个比较小的值,从而减慢学习速度

随着时间的增加,步长会越来越小,这一特点在凸函数中表现很好,但在非凸函数时会有问题 ---> RMSProp

RMSProp

Adam(almost)

在第一次循环的时候,second_moment 可能接近0,会导致步长非常大。---->

Adam (full form)

  

About learning rate

通常首先选择一个不带衰减的,不错的学习率,查看结果如何,仔细观察损失曲线,决定在哪个地方开始衰减

 

二次逼近

 

模型集成

用于减小训练和测试之间的误差差距

 

  • Regularization

提升单一模型的表现,防止过拟合

1.

 

2. dropout 

 

若是在意 test 的效率,也可以:

 

3. Batch Normalization

加入一些随机性的元素:

 

4. Data Augmentation

可以做水平翻转

可以抽取不同尺度大小的裁剪图像,在测试时,评估一些固定的裁剪图像

可以做色彩抖动:

还可以:

 

5. DropConnect

 

6. Fractional Max Pooling

 

7.  Stochastic Depth

 

  • Transfer Learning

在小样本中更好的训练,防止过拟合

冻结前部分,调整后部分

 

 

数据集很小时:

1.找到一个有类似数据的非常大的数据集,在那里训练一个大的convnet

2.在你的数据集做迁移学习

Caffe: https://github.com/BVLC/caffe/wiki/Model-Zoo

TensorFlow: https://github.com/tensorflow/models

PyTorch: https://github.com/pytorch/vision

 

  • Summary

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值