网易云深度学习第二课NoteBook2
优化算法
1.Mini-batch梯度下降法
对整个训练集进行梯度下降法的时候,我们必须处理整个训练数据集,然后才能进行一步梯度下降,即每一步梯度下降需要对整个训练集进行一次处理,如果训练数据很大时,处理速度就会非常慢。
但是如果每次处理训练数据的一部分进行梯度下降法,则算法的执行速度会变快。而处理的这一小部分训练子集即为Mini-batch.
对于普通的梯度下降法,一个epoch只能进行一次梯度下降;而对于Mini-batch梯度下降法,一个epoch可以进行Mini-batch次梯度下降。
Batch gradient descent和Mini-batch gradient descent区别:
batch梯度下降:
对m个训练样本执行一次梯度下降,每次迭代时间较长。
Cost Function总是向减小的方向下降。
随机梯度下降(样本为m个,分为m个mini-batch):
对每一个训练样本执行一次梯度下降,但是无法享受向量化带来的计算加速。
Cost function总体趋势是向最小值方向下降,但是无法达到全局最小值点,呈现波动的形势。
Mini-batch梯度下降:
选择一个1
2.指数加权平均
指数加权平均的关键函数:
理解指数加权平均
例子,当β=0.9时:
v100=0.9v99+0.1θ100
v99=0.9v98+0.1θ99
v98=0.9v97+0.1θ98
展开后:
上式中θ前面的系数相加起来为1或者接近于1,称之为偏差修正。
总体来说存在,(1−ε)^1/ε=1/e,在我们的例子中,1−ε=β=0.9,即0.9^10≈0.35≈1/e。相当于大约10天后,系数的峰值(这里是0.1)下降到原来的1/e,只关注了过去10天的天气。
指数加权平均实现
v0=0
v1=βv0+(1−β)θ1
v2=βv1+(1−β)θ2
v3=βv2+(1−β)θ3
因为,在计算当前时刻的平均值,只需要前一天的平均值和当前时刻的值,所以在数据量非常大的情况下,指数加权平均在节约计算成本的方面是一种非常有效的方式,可以很大程度上减少计算机资源存储和内存的占用。
3. 动量(Momentum)梯度下降法
4. RMSprop
5. Adam 优化算法
6.学习率衰减
我们利用mini-batch梯度下降法寻找损失函数的最小值的时候,如果我设置一个固定的学习率α,则算法在到达最小值附近的时候,由于不同的batch中存在一定噪声,使得J不会精确收敛到0,而是会在一个接近于0的范围内波动。
但是如果我们使用学习率衰减,逐渐减小学习速率α,在算法开始的时候,学习速率还是相对较快,能够相对快速的向最小值点的方向下降。但随着α的减小,下降的步伐也会逐渐变小,最终会在最小值附近的一块更小的区域里波动.
学习率衰减的实现:
(1)decay_rate*epoch_num法
(2)指数衰减法:
7.局部最优问题
在低纬度的情形下,我们可能会想象到一个Cost function存在一些局部最小值点,在初始化参数的时候,如果初始值选取的不得当,会存在陷入局部最优点的可能性。
但是,如果我们建立一个神经网络,通常梯度为零的点,并不是如左图中的局部最优点,而是右图中的鞍点(叫鞍点是因为其形状像马鞍的形状)。
在一个具有高维度空间的函数中,如果梯度为0,那么在每个方向,Cost function可能是凸函数,也有可能是凹函数。但如果参数维度为2万维,想要得到局部最优解,那么所有维度均需要是凹函数,其概率为2^−20000,可能性非常的小。也就是说,在低纬度中的局部最优点的情况,并不适用于高纬度,我们在梯度为0的点更有可能是鞍点。
在高纬度的情况下:
几乎不可能陷入局部最小值点;
处于鞍点的停滞区会减缓学习过程,利用如Adam等算法进行改善
网易云深度学习第二课NoteBook2相关推荐
- 网易云深度学习第二课Notebook3
1.超参数调试处理 在机器学习领域,超参数比较少的情况下,我们之前利用设置网格点的方式来调试超参数: 但在深度学习领域,超参数较多的情况下,不是设置规则的网格点,而是随机选择点进行调试.这样做是因为在 ...
- 网易云深度学习第二课notebook1
改善深层神经网络:超参数调试.正则化以及优化 1.训练.验证.测试 对于一个dataset,我们通常将其划分为训练集.验证集.测试集 训练集(train set):用训练集对算法或者模型进行训练 验证 ...
- 网易云深度学习第一课第二周编程作业
Part 2: Logistic Regression with a Neural Network mindset 你将学到: -建立学习算法的一般架构 -初始化参数 -计算损失函数和它的梯度 -使用 ...
- 网易云深度学习第一课第一周编程作业
1.1Python Basics with Numpy (optional assignment) Welcome to your first assignment. This exercise gi ...
- 网易云深度学习第一课第三周编程作业
具有一个隐藏层的平面数据分类 第三周的编程任务: 构建一个含有一层隐藏层的神经网络,你将会发现这和使用逻辑回归有很大的不同. 首先先导入在这个任务中你需要的所有的包. -numpy是Python中与科 ...
- 2.10 局部最优的问题-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 2.9 学习率衰减 回到目录 2.11 总结 局部最优的问题 (The Problem of Local Optima) 在深度学习研究早期,人们总是担心优化算法会困在极差的 ...
- 1.5 为什么正则化有利于预防过拟合-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 1.4 正则化 回到目录 1.6 Dropout 正则化 为什么正则化有利于预防过拟合呢 (Why regularization reduces overfitting?) ...
- 1.4 正则化-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 1.3 机器学习基础 回到目录 1.5 为什么正则化可以减少过拟合 正则化 (Regularization) 深度学习可能存在过拟合问题--高方差,有两个解决方法,一个是正则 ...
- 1.3 机器学习基础-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 1.2 偏差/方差 回到目录 1.4 正则化 机器学习基础 (Basic "Recipe" for Machine Learning) 上节课我们讲的是如 ...
最新文章
- linux网络命名空间详解,『中级篇』 Linux网络命名空间(25)
- 探索javascript----获得节点计算后样式
- 演练GridView控件显示目录图片
- oracle4.0,OracleTM Application Server 4.0简 介
- java ee 的使用方法_改善Java EE生产支持技能的8种方法
- 栈结构功能实现的伪码展示【数据结构F】
- 关于“幽灵架构”的补充说明5:改造控制器
- [凯立德]2015春季版C2739-M7L83-3521JON,已O+带3D+带路况
- Mysql 8.0 遇到用遇到的几个问题及解决办法
- 【爬虫系列之三】URLError异常处理以及Cookie的使用
- 2022最新短视频去水印解析API接口支持各大小程序平台分享
- SqlServer2012中使用动态sql语句
- 水印相机定位不准确怎么办_水印相机怎么定位位置
- 智能家居控制系统制作技术_【动态】HDL在欧洲推广智能家居技术
- 微信小程序 input 事件
- TensorFlow 人脸识别网络与对抗网络搭建
- 小米手机录屏功能在哪?图文教学,轻松解决
- c语言编程雅可比迭代法方程,雅可比迭代法解方程组的C\C++程序
- Enterprise Architect 中文版 注册码 破解 亲测有效!
- STM32使用模拟I2C读取硒翔30mL流量传感器
热门文章
- 聊聊编程那些破事-0.Prehistory
- socketmq 设置队列大小_LeetCode 622:设计循环队列 Design Circular Queue
- qt界面嵌入web_使用Qt WebAssembly而不是JavaScript创建Web用户界面
- JS_模块的命名空间
- 图例 | Java混合模式分析之火焰图实例
- 监听器实栗 在线人数统计
- vrep中的a dubins state space
- 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-特征点法和特征提取和匹配实践
- 手机远程linux桌面,centos8安装xrdp远程桌面,Android手机连接linux桌面
- 八个角最多可以把平面分成多少部分?_为什么越来越多的空间无主灯了?