前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >吴恩达深度学习笔记 course2 week2 优化算法

吴恩达深度学习笔记 course2 week2 优化算法

作者头像
Dar_Alpha
发布2018-09-03 16:52:16
5710
发布2018-09-03 16:52:16
举报
文章被收录于专栏:技术小站

1.Mini-batch 

batch:之前所用的都是将m个样本放在一起组成向量来就行训练,称为batch,所存在的问题:当样本的数量比较庞大的时候,迭代一次所需要的时间比较多

,这种梯度下降算法成为Batch Gradient  Descent

为了解决这一问题引入 Mini-batch Gradient descent

它是将全部样本分成t份子集,然后对每一份子集进行一个单一的训练,这样就会大大提高训练速度 例:假设有5000000个样本,分为5000个子集,每个子集1000份样本,则每次可对这1000样本组成的子集进行一个训练

mini batch gradient descent过程:

T次for循环后,称完成了一次epoch,与batch gradient descent不同的是,一个epoch进行T次梯度下降算法,而batch只进行一次

可以进行多次epoch,每次最好顺序打乱,重新分T组mini-batch,这样有利于训练最佳的模型

2.understand mini-batch gradient descent

cost function下降图如下:

从图中可以看出mini batch 会出现震荡现象,原因:每个子集情况不同,例如可能第一个子集(X {1} ,Y {1} ) 是好的子集,而第二个子集(X {2} ,Y {2} ) 包含了一些噪声noise

 mini batch size的选取:

考虑两种极端情况,size=m时,迭代一次所需要的时间过长,前进速度慢; size=1时,称为Stachastic gradient descent,这种情况每个样本的情况不同,所以会产生比较明显的震荡,路线也比较曲折,除此之外,不能使用向量化来提高速度,不过前进速度比较快

选取合适的数量可以融合两者的优点

如果样本数量小于等于2000,可以直接使用batch gradient descent

数量比较大,size的选取一般为2的幂,推荐常用的有64,128,256,512,选择2的幂的原因:计算机存储数据一般都为2的幂,这样设置可以提高运算速度.

3.Exponentially weighted averages

指数加权平均 

θ

举个例子:上图为伦敦半年的气温曲线,比较震荡,为了能看到整体变化趋势,我们要使它更平滑,我们可以把它移动平均,第t天用Vt=0.9Vt-1+0.1θt,可以得到红色曲线,这种方法叫指数加权平均

V t =β Vt−1 +(1−β)θt 

其中  1/(1-β)为平均的天数  

平均的天数越大,曲线越平滑,曲线也会往右移,原因是平均的天数越多,当温度改变时,会减缓这种改变,所以会有一个延迟,造成曲线右移

4.Understand Exponentially weighted averages

 指数加权平均展开如上    

我们已经知道了指数加权平均的递推公式。实际应用中,为了减少内存的使用,我们可以使用这样的语句来实现指数加权平均算法

 3.Bias correction in exponentially weighted average

 之前我们令β=0.98所得到的绿线实际上是经过偏差修正的曲线,原曲线如上图的紫线

偏差修正公式如上图右侧部分:刚开始的时候1-βt,由于t比较小,所以也比较小,修正的比较大,随着t的增加,1-βt越来越接近1,修正效果越来越弱

值得一提的是,机器学习中,偏移校正并不是必须的。因为,在迭代一次次数后(t较大),V t  受初始值影响微乎其微,紫色曲线与绿色曲线基本重合。所以,一般可以忽略初始迭代过程,等到一定迭代之后再取值,这样就不需要进行偏移校正了。

6.Gradient descent with monument

动量梯度下降算法

传统的梯度下降方向只与每一点的方向有关,这样会发生一些震荡,尤其是w和b相差比较大的情况下,导致前进的比较缓慢

如果对梯度进行一个指数加权平均,那么每一点的方向不仅与当前方向有关,也会与当前方向有关,梯度下降会趋近平滑,前进速度会更快速

表达式如下:

从动量角度分析:dw,db看作加速度,β看作摩擦力,Vdw,Vdb表示现在要求的速度,现在的速度被摩擦力和加速度一起限制,能限制Vdw瞬变

动量梯度下降算法实现如下:

 另一种实现方式是上图紫色部分,不过不推荐用那种,那样学习因子α(为α/(1−β) )也会受β影响,调节参数β时,涉及到α,不利于调节

其中β常设为0.9,也就是相当于平均10个梯度

7.RMSprop

 RMSprop是另一种优化梯度下降的算法,它的表达式如上图所示

原理:我们把水平方向看作w,垂直方向看作b,由图中可以看出b方向震荡大,w方向震荡小,即dw小,db大,即上式中的Sdw小,Sdb大

这样相除以后就会较大,

这个相除就较小,所加的ξ是为了防止分母为0

8.Adam optimization algorithm

adam优化算法 

算法实现如上图,结合动量梯度下降算法和Rmsprop算法特征

各个参数一般设置如下:

一般只要对β1,β2进行调试

2.9 Learning rate decay

学习率下降

如果我们不对学习率进行一个下降,那么当梯度下降到最优值附近的时候,,步长依然较大,这样就会出现一个震荡,从而离最优值较远

因此我们要对学习率进行一个下降,常用的学习率表达式下降如下:

除此之外还有:

10.The problem of local optima

局部最优问题

在使用梯度下降算法时可能会发生局部最优情况,如图所示,当参数较多的时候,凹槽也会较多,往往该参数的最优值不是在凹槽底部,而是在其他地方,上图右边绿点梯度为0,并不是最优值,最优值还在其下,如下图

在这种情况下,曲线较为平滑,梯度下降到上图红点所需要的时间长,下降到红点之后,由于随机扰动,梯度一般能够离开saddle point,继续前进,只是在plateaus上花费了太多时间。

当然我们之前所介绍的动量梯度下降算法,RMSprop,Adam能有效解决这个问题

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.Mini-batch 
  • 2.understand mini-batch gradient descent
  • 3.Exponentially weighted averages
  • 4.Understand Exponentially weighted averages
  •  3.Bias correction in exponentially weighted average
  • 6.Gradient descent with monument
  • 7.RMSprop
  • 8.Adam optimization algorithm
  • 2.9 Learning rate decay
  • 10.The problem of local optima
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档