李宏毅深度学习-网络设计的技巧

李宏毅深度学习-网络设计的技巧

本篇文章主要基于以下资料:
开源文档:课程开源文档
视频地址:B站开源视频

一、当optimization失败怎么办

在用梯度下降法优化参数时,当除最优值之外的某个点的梯度接近于0,得到的估计参数误差会比较大。这个点可能是local minima,也有可能是saddle point,其中saddle point是有方向改进的,因此我们需要区分是哪一种情形。
在这里插入图片描述

  • 判断是local minimum 还是saddle point
    在这里插入图片描述
    结合泰勒展开式,当梯度趋近于0时,绿框里的值就等于0,此时如果H矩阵是正定矩阵,那么红框里的值始终大于0,此时的损失函数值是局部最小的,也就是遇到了local minima;如果H矩阵是负定矩阵,那么红框里的值始终小于0,不管往哪个方向迭代,损失函数都在减小;如果H矩阵既不是正定也不是负定,就是saddle point。而H矩阵的正定与否可以根据特征根的正负来判断。
    下面的例子就展示w1=0,w2=0的点是saddle point,而不是local minima。
    在这里插入图片描述
    如果判断出该点是saddle point,我们可以先找到H矩阵的负值特征根对应的特征向量u,往该方向可以减小损失函数,具体原理如下图所示,但是通常我们并不用这种方法继续迭代,因为得到H矩阵以及特征根特征向量的计算量非常的大。
    在这里插入图片描述
  • saddle point VS local minima
    • 从高维角度来看local minima,或许就是一个saddle point

在这里插入图片描述

二、 batch and momentum
1.batch

在进行参数优化迭代时,不全部用到所有的样本数据,每一次迭代用到的样本量为batch size,所有的样本数据都完成一次迭代,就是1 epoch.
在这里插入图片描述

  • 为什么用batch
    不同batch对比
    考虑时间:larger batch的时间未必很长,除非batch size非常的大,那么时间就有个跃升。
    在这里插入图片描述
    batch size越小,训练集的准确率越大,当batch size很大时,准确率下降很多。
    在这里插入图片描述
    采取一定的手段,使得large batch size 和small batch size两种情形下得到的训练集准确率相同,但是batch size越小,预测效果越好
    在这里插入图片描述
    总结与对比:
    在这里插入图片描述
  • 从物理动量的角度思考
    在这里插入图片描述
    参数迭代的方向并不完全由gradient决定,由梯度和momentum共同决定
    在这里插入图片描述
三、自动调整学习率

实际上,我们遇到的很多training stuck 都不一定是因为small gradient导致的。
在这里插入图片描述
如上图所示例子,当学习率为0.01时,迭代一直在两端震荡,始终没有办法接近global minima,当减小学习率到10^-7时,参数进入了平缓区但是由于学习率过于小,即使迭代100000次仍然没办法到达global minima。因此我们希望学习率更具多样化,在不同情形下取不同的值。也就是满足下面这个形式。
在这里插入图片描述

  • root mean square
    实现坡度大时学习率小,坡度小的时候学习率大。
    在这里插入图片描述
    同样上面的例子使用root mean square可以得到右边的迭代图,可以发现确实参数更加接近global minima,但是在越趋近的时候就开始出现动荡。
    在这里插入图片描述
    为了解决这个问题,我们又引入了learning rate scheduling,其实就是让学习率随着迭代次数也发生迭代。
    在这里插入图片描述
    • learning rate decay
      随着参数的不断迭代,我们令学习率越来越小。
      在这里插入图片描述
    • **warm up **
      这部分内容在part 7 的32分钟左右,还需要对相关材料进行研究。
      在这里插入图片描述
  • RMS Prop
    在这里插入图片描述
    跟root mean square方法最大的区别是,该方法对邻近的点的权重更大,邻近的点的影响力更强,这也就导致学习率变化更敏感更快。
  • Adam (目前最常用的优化方法)
    在这里插入图片描述
    还需要自己进一步了解扩充这个部分。
  • 总结
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值