优化算法

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相关推荐

  1. 网易云深度学习第二课Notebook3

    1.超参数调试处理 在机器学习领域,超参数比较少的情况下,我们之前利用设置网格点的方式来调试超参数: 但在深度学习领域,超参数较多的情况下,不是设置规则的网格点,而是随机选择点进行调试.这样做是因为在 ...

  2. 网易云深度学习第二课notebook1

    改善深层神经网络:超参数调试.正则化以及优化 1.训练.验证.测试 对于一个dataset,我们通常将其划分为训练集.验证集.测试集 训练集(train set):用训练集对算法或者模型进行训练 验证 ...

  3. 网易云深度学习第一课第二周编程作业

    Part 2: Logistic Regression with a Neural Network mindset 你将学到: -建立学习算法的一般架构 -初始化参数 -计算损失函数和它的梯度 -使用 ...

  4. 网易云深度学习第一课第一周编程作业

    1.1Python Basics with Numpy (optional assignment) Welcome to your first assignment. This exercise gi ...

  5. 网易云深度学习第一课第三周编程作业

    具有一个隐藏层的平面数据分类 第三周的编程任务: 构建一个含有一层隐藏层的神经网络,你将会发现这和使用逻辑回归有很大的不同. 首先先导入在这个任务中你需要的所有的包. -numpy是Python中与科 ...

  6. 2.10 局部最优的问题-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.9 学习率衰减 回到目录 2.11 总结 局部最优的问题 (The Problem of Local Optima) 在深度学习研究早期,人们总是担心优化算法会困在极差的 ...

  7. 1.5 为什么正则化有利于预防过拟合-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.4 正则化 回到目录 1.6 Dropout 正则化 为什么正则化有利于预防过拟合呢 (Why regularization reduces overfitting?) ...

  8. 1.4 正则化-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.3 机器学习基础 回到目录 1.5 为什么正则化可以减少过拟合 正则化 (Regularization) 深度学习可能存在过拟合问题--高方差,有两个解决方法,一个是正则 ...

  9. 1.3 机器学习基础-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.2 偏差/方差 回到目录 1.4 正则化 机器学习基础 (Basic "Recipe" for Machine Learning) 上节课我们讲的是如 ...

最新文章

  1. linux网络命名空间详解,『中级篇』 Linux网络命名空间(25)
  2. 探索javascript----获得节点计算后样式
  3. 演练GridView控件显示目录图片
  4. oracle4.0,OracleTM Application Server 4.0简 介
  5. java ee 的使用方法_改善Java EE生产支持技能的8种方法
  6. 栈结构功能实现的伪码展示【数据结构F】
  7. 关于“幽灵架构”的补充说明5:改造控制器
  8. [凯立德]2015春季版C2739-M7L83-3521JON,已O+带3D+带路况
  9. Mysql 8.0 遇到用遇到的几个问题及解决办法
  10. 【爬虫系列之三】URLError异常处理以及Cookie的使用
  11. 2022最新短视频去水印解析API接口支持各大小程序平台分享
  12. SqlServer2012中使用动态sql语句
  13. 水印相机定位不准确怎么办_水印相机怎么定位位置
  14. 智能家居控制系统制作技术_【动态】HDL在欧洲推广智能家居技术
  15. 微信小程序 input 事件
  16. TensorFlow 人脸识别网络与对抗网络搭建
  17. 小米手机录屏功能在哪?图文教学,轻松解决
  18. c语言编程雅可比迭代法方程,雅可比迭代法解方程组的C\C++程序
  19. Enterprise Architect 中文版 注册码 破解 亲测有效!
  20. STM32使用模拟I2C读取硒翔30mL流量传感器

热门文章

  1. 聊聊编程那些破事-0.Prehistory
  2. socketmq 设置队列大小_LeetCode 622:设计循环队列 Design Circular Queue
  3. qt界面嵌入web_使用Qt WebAssembly而不是JavaScript创建Web用户界面
  4. JS_模块的命名空间
  5. 图例 | Java混合模式分析之火焰图实例
  6. 监听器实栗 在线人数统计
  7. vrep中的a dubins state space
  8. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-特征点法和特征提取和匹配实践
  9. 手机远程linux桌面,centos8安装xrdp远程桌面,Android手机连接linux桌面
  10. 八个角最多可以把平面分成多少部分?_为什么越来越多的空间无主灯了?