CS231n学习记录Lec8 Training训练神经网络(下)

Lec8 训练神经网络(下)


主要内容:更好的优化,优化方法介绍
1. Fancier Optimization

  • problems with SGD
    陷入局部最小(local minima)和鞍点(saddle points)。
    随机性,容易受噪声影响
  • SGD + Momentum(动量)
    这里写图片描述
    保持一个不随时间变化(?)的速度,把梯度估计添加到速度上,在速度方向上前 进而不是在梯度方向上前进。同时利用摩擦系数ρ来控制速度。实际上,速度的初始值通常可以设置为0,并不算一个超参数。
    在凸优化问题上这个方法表现得较好。
    能够跳过某些非常尖锐的极值点可以说是S+M的一个特性。当S+M还是掉入尖锐极值点的时候就说明可能已经开始过拟合了。
    S+G避免了单纯SGD的局部最小(local minima)和鞍点(saddle points):
    这里写图片描述

  • Nesterov Momentum(动量)
    这里写图片描述

  • AdaGrad和RMSProp

不是很懂(***
这里写图片描述
更倾向于不太使用AdaGrad

  • Adam(RMSProp和M的结合)
    这里写图片描述
    1e-7只是为了保证分母不是一个零的数,影响不大。
    Adam几乎是一个非常好的优化算法,对于不同的问题都能有非常不错的效果,推荐首选。(初始参数可以从蓝色区域中开始)

  • 学习率衰减
    有时候学习率不一定要设置成一个固定的值,可能一开始较大,然后逐渐衰减。当在靠近一个较好的结果的时候衰减学习率,使之更靠近最优情况。但是学习率衰减是一个二阶超参数,不应当一开始就是实用,所以好的办法使一开始不衰减看看损失函数曲线,然后决定在那个地方衰减。
    这里写图片描述

  • 集成学习
    训练多组网络,然后取平均或者其他操作将结果综合起来。更够稍微缓解过拟合,提高一点结果准确性。
    但是并不能提高单一网络的准确性。

2. Regularization

为了抑制过拟合。

正则化的一些常用手段:

  • 添加一些和 w w 相关的term在损失项上去。
  • dropout。正在传播的时候随机将一些神经元的激活函数值置零。一般是在全连接层置零。让神经网络依赖一些更零散的特征来判断,而不是将那些特征集中起来来判断,算是某种程度上抑制了过拟合。置零引入的随机,可能会在测试的时候带来一点随机性,通过一个期望值来进行类似于“局部逼近”的操作。但是测试时,通过dropout的期望乘以预测值来进行缩放。(不太准确)
    通常dropout是一种较好的方式。训练时引入dropout可能会使训练时间增加,但是一旦收敛后模型的鲁棒性更好。
    思想是在训练的时候引入一些随机性,来扰乱他完美的拟合数据,然后在测试的时候想法抵消这些随机性,从而达到最大的准确性。

  • invert dropout。

  • batch normalization
    某种程度上也是一种随机性。
  • data augmentation数据增强
    训练集的图像随机转换(翻折等、色彩扰动改变对比度亮度等)进行训练。
  • dropConnect
    丢掉一些参数w
  • Fractional Max Pooling
    (不是很懂)
  • stochastic depth随机深度
    比较前沿,大概是训练的时候不用一些层,训练的时候用全部层。
  • 有时候使用BN就够了,但是当网络特别深的时候可能不太够,这时候就可以增加一些dropout或者其他东西来帮忙阻止过拟合。一开始不要盲目地使用这些方法,而是在发生过拟合的时候有的放矢的采用。

3. Transfer learning
迁移学习

  • 强大的网络在你只用小样本集的时候容易过拟合,这时候正则化是一种方法,另一种方法是迁移学习。迁移学习能够让你不需要超大的样本集。
  • 找一个强大的卷积网络,从最后一层的特征到最后的分类输出之间的全连接层,你需要重新初始化这部分参数矩阵。保持前面的参数冻结,只训练这个线性层,让它在你的数据上收敛。当你在处理一个很小的数据集的时候,这会很有作用。
    但当你的数据集稍微大一点的时候,则微调更新更多的参数,现将学习率调小,因为之前的网络泛华能力已经较好了,只需要微调来适应你的数据集。
  • 迁移学习非常普遍。大多数人都不会从头开始。都可以从ImageNet开始。

这里写图片描述

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值