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能有效解决这个问题

转载于:https://www.cnblogs.com/Dar-/p/9389584.html

吴恩达深度学习笔记 course2 week2 优化算法相关推荐

  1. 吴恩达深度学习笔记6-Course2-Week2【优化算法】

    优化算法 一.Mini-batch gradient descent(小批量梯度下降法) Mini-batch: 把整个训练数据集分成若干个小的训练集,即为Mini-batch. 为什么要分?梯度下降 ...

  2. 吴恩达深度学习笔记course3 week2 测验

    第 1 个问题 To help you practice strategies for machine learning, in this week we'll present another sce ...

  3. 吴恩达深度学习笔记(四)

    吴恩达深度学习笔记(四) 卷积神经网络CNN-第二版 卷积神经网络 深度卷积网络:实例探究 目标检测 特殊应用:人脸识别和神经风格转换 卷积神经网络编程作业 卷积神经网络CNN-第二版 卷积神经网络 ...

  4. 花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)

    目录 0. 前言 1. 牛顿法 2. 共轭梯度法(CG) 3. BFGS 4. L-BFGS 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(五)正则化 ...

  5. 花书+吴恩达深度学习(八)优化方法之 Batch normalization

    目录 0. 前言 1. Batch normalization 训练 2. Batch normalization 测试 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...

  6. 花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)

    目录 0. 前言 1. 指数加权平均(exponentially weighted averages) 2. Momentum 动量 3. Nesterov 动量 4. AdaGrad 5. RMSP ...

  7. 花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)

    目录 0. 前言 1. Batch gradient descent(BGD) 2. Stochastic gradient descent(SGD) 3. Mini-batch gradient d ...

  8. 799页!吴恩达深度学习笔记.PDF

    吴恩达深度学习课程,是公认的最优秀的深度学习课程之一,目前没有教材,只有视频,本文提供完整笔记下载,这本笔记非常适合和深度学习入门. 0.导语 黄海广博士和同学将吴恩达老师深度学习视频课程做了完整的笔 ...

  9. 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)

    深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...

  10. 吴恩达深度学习笔记——神经网络与深度学习(Neural Networks and Deep Learning)

    文章目录 前言 传送门 神经网络与深度学习(Neural Networks and Deep Learning) 绪论 梯度下降法与二分逻辑回归(Gradient Descend and Logist ...

最新文章

  1. R语言使用pwr包的pwr.r.test函数对相关信息分析进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
  2. CSDN 居然免费送会员?程序员们快来领!
  3. mysql中使用join exists in时该注意的问题
  4. 调用天气预报Web Service
  5. 【错误记录】Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( No module named ‘numpy‘ )
  6. SpringBoot升级到2.3.x后返回message为空
  7. 写一个算法统计在输入字符串中各个字符出现的频度
  8. python列表用来有序存放一组_python入门第二课------列表
  9. Vue学习笔记01:准备开发与调试环境
  10. java—数据库连接池看这篇就够了
  11. mysql 用户授权授权_mysql的用户权限如何授权
  12. 游戏开发中防外挂的那些事儿
  13. ASP.NET Core中的TagHelper及其用法
  14. Tensorflow serving 学习(一)
  15. 华为最终面试java_最全的华为面试题-java学习
  16. 【兴趣】儿时背诵过的朝代歌和节气歌
  17. 联想昭阳k43c-80 BIOS里UEFI是灰色项,改不了为legacy
  18. python递归查找文件
  19. NovAtel 卫星接收机 718D 数据手册简介
  20. 细胞生物学-1-绪论

热门文章

  1. vue学习-处理边界-依赖注入
  2. pve网卡直通虚拟机pve失联打不开解决方案,不用重新安装pve
  3. PHP PDO(mysql) 封装类
  4. Eureka 自我保护模式、健康检查机制、Eureka 元数据
  5. 新xp系统如何链接网络连接服务器地址,xp系统如何设置宽带连接
  6. java 2d 图形_Java学习笔记--Swing2D图形
  7. layer icon对应图标
  8. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_19-页面静态化-模板管理-模板存储...
  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-3.Vidoe相关接口完善和规范协议...
  10. CF620E New Year Tree