吴恩达深度学习笔记 course2 week2 优化算法
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 优化算法相关推荐
- 吴恩达深度学习笔记6-Course2-Week2【优化算法】
优化算法 一.Mini-batch gradient descent(小批量梯度下降法) Mini-batch: 把整个训练数据集分成若干个小的训练集,即为Mini-batch. 为什么要分?梯度下降 ...
- 吴恩达深度学习笔记course3 week2 测验
第 1 个问题 To help you practice strategies for machine learning, in this week we'll present another sce ...
- 吴恩达深度学习笔记(四)
吴恩达深度学习笔记(四) 卷积神经网络CNN-第二版 卷积神经网络 深度卷积网络:实例探究 目标检测 特殊应用:人脸识别和神经风格转换 卷积神经网络编程作业 卷积神经网络CNN-第二版 卷积神经网络 ...
- 花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)
目录 0. 前言 1. 牛顿法 2. 共轭梯度法(CG) 3. BFGS 4. L-BFGS 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(五)正则化 ...
- 花书+吴恩达深度学习(八)优化方法之 Batch normalization
目录 0. 前言 1. Batch normalization 训练 2. Batch normalization 测试 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...
- 花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)
目录 0. 前言 1. 指数加权平均(exponentially weighted averages) 2. Momentum 动量 3. Nesterov 动量 4. AdaGrad 5. RMSP ...
- 花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)
目录 0. 前言 1. Batch gradient descent(BGD) 2. Stochastic gradient descent(SGD) 3. Mini-batch gradient d ...
- 799页!吴恩达深度学习笔记.PDF
吴恩达深度学习课程,是公认的最优秀的深度学习课程之一,目前没有教材,只有视频,本文提供完整笔记下载,这本笔记非常适合和深度学习入门. 0.导语 黄海广博士和同学将吴恩达老师深度学习视频课程做了完整的笔 ...
- 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)
深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...
- 吴恩达深度学习笔记——神经网络与深度学习(Neural Networks and Deep Learning)
文章目录 前言 传送门 神经网络与深度学习(Neural Networks and Deep Learning) 绪论 梯度下降法与二分逻辑回归(Gradient Descend and Logist ...
最新文章
- R语言使用pwr包的pwr.r.test函数对相关信息分析进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
- CSDN 居然免费送会员?程序员们快来领!
- mysql中使用join exists in时该注意的问题
- 调用天气预报Web Service
- 【错误记录】Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( No module named ‘numpy‘ )
- SpringBoot升级到2.3.x后返回message为空
- 写一个算法统计在输入字符串中各个字符出现的频度
- python列表用来有序存放一组_python入门第二课------列表
- Vue学习笔记01:准备开发与调试环境
- java—数据库连接池看这篇就够了
- mysql 用户授权授权_mysql的用户权限如何授权
- 游戏开发中防外挂的那些事儿
- ASP.NET Core中的TagHelper及其用法
- Tensorflow serving 学习(一)
- 华为最终面试java_最全的华为面试题-java学习
- 【兴趣】儿时背诵过的朝代歌和节气歌
- 联想昭阳k43c-80 BIOS里UEFI是灰色项,改不了为legacy
- python递归查找文件
- NovAtel 卫星接收机 718D 数据手册简介
- 细胞生物学-1-绪论
热门文章
- vue学习-处理边界-依赖注入
- pve网卡直通虚拟机pve失联打不开解决方案,不用重新安装pve
- PHP PDO(mysql) 封装类
- Eureka 自我保护模式、健康检查机制、Eureka 元数据
- 新xp系统如何链接网络连接服务器地址,xp系统如何设置宽带连接
- java 2d 图形_Java学习笔记--Swing2D图形
- layer icon对应图标
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_19-页面静态化-模板管理-模板存储...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-3.Vidoe相关接口完善和规范协议...
- CF620E New Year Tree