文章目录

  • 【零】 Learning Rate - 学习速率
  • 【一】 一般梯度下降
  • 【二】 SGD - 随机梯度下降
  • 【三】 Adagrad - 自适应梯度下降
  • 【四】 Momentum - 动量梯度下降(流平均)
  • 【五】 RMSProp - 均方根反向传播(Ada + 流平均)
  • 【六】 Adam - 亚当

【零】 Learning Rate - 学习速率
【一】 一般梯度下降
  • 直接根据导数更新 W
W = W - lr * J_prime(W)

【二】 SGD - 随机梯度下降
  • 每次迭代 使用 一个样本 来对参数进行更新,也可以选择 多个样本(10个,20个…)Mini-Batch SGD
  • pytorch框架 内,Momentum 动量随机梯度下降被集合在了SGD内部
  • 参数更新速度快,不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函数
  • 准确的下降,即使在目标函数为强凸函数的情况下,SGD仍无法做到线性收敛
  • 可能收敛到局部最优,因为单个样本并不能代表全体样本的趋势
  • 不易于并行实现

【三】 Adagrad - 自适应梯度下降
  • 解决 二维参数更新速度不匹配 问题
  • 初始化 存储变量 S1 S2
        
S1 = S2 = 0 #存储变量
S1 += J_prime(W1) ** 2 #导数平方累加
W1 = W1 - lr * (J_prime1(W1) / np.sqrt(S1)) #开平方更新参数
S2 += J_prime(W2) ** 2 #同理,导数平方累加
W2 = W2 - lr * (J_prime2(W2) / np.sqrt(S2)) #同理,开平方更新参数

【四】 Momentum - 动量梯度下降(流平均)
  • 初始化 速度变量 V比例 β
        
V = β * V + (1-β) * J_prime(W) # 速度
W = W -lr * V # 用 速度V 取代 W

【五】 RMSProp - 均方根反向传播(Ada + 流平均)
  • 初始化 存储变量 S1 S2比例 β
  • 引入 校正因子 S1_correctS2_correct ,细微调整,平衡初始速度过慢,后续速度过快
S1 = S2 = 0 #存储变量
β = 0.5
S1 = β * S1 + (1-β) * (J_prime1(W1) ** 2)
S1_correct = S1 / (1 - β **(i+1)) # 校正因子,i 是迭代次数,在 for 循环里面
W1 = W1 - lr * (J_prime1(W1) / np.sqrt(S1)) #开平方更新参数
# 以下同理
S2 = β * S2 + (1-β) * (J_prime2(W2) ** 2)
S2_correct = S2 / (1 - β **(i+1)) # 校正因子,i 是迭代次数,在 for 循环里面
W2 = W2 - lr * (J_prime2(W2) / np.sqrt(S2)) #开平方更新参数

【六】 Adam - 亚当
  • 一个集成了各大门派优势的方法
  • 通过 Momentum 解决鞍点问题
  • 通过 Adagrad 解决对弱小方向尺度矫正的问题
  • 通过加入 偏置 解决初始值过大的问题
  • 初始化 速度变量 V1 V2,初始化 存储变量S1 S2,初始化 比例 β1 β2
  • 引入 校正因子 V_correctS_correct ,细微调整,平衡初始速度过慢,后续速度过快
        
V1 = V2 = 0 #速度变量
S1 = S2 = 0 #存储变量
β1 = 0.9 #针对 速度变量 V
β2 = 0.99 #针对 存储变量 S
# V1 和 S1
V1 = β1 * V1 + (1-β1) * J_prime1(W1) #无平方
V1_correct = V1 / (1 - β1 ** (i+1)) #V1矫正因子
S1 = β2 * S1 + (1-β2) * (J_prime1(W1) ** 2) #有平方
S1_correct = S1 / (1 - β2 ** (i+1)) #S1矫正因子
W1 = W1 - lr * (V1 / np.sqrt(S1)) #通过 V 和 S 进行参数更新
# V2 和 S2 以下同理
V2 = β1 * V2 + (1-β1) * J_prime2(W2) #无平方
V2_correct = V2 / (1 - β1 ** (i+1)) #V2矫正因子
S2 = β2 * S2 + (1-β2) * (J_prime2(W2) ** 2) #有平方
S2_correct = S2 / (1 - β2 ** (i+1)) #S2矫正因子
W2 = W2 - lr * (V2 / np.sqrt(S2)) #通过 V 和 S 进行参数更新

【ML】_00_03_梯度下降相关推荐

  1. ML笔记1——什么是ML;回归LossFunction(LF)推导;LF与凸函数关系;梯度下降推导;范数与正则化。

    了解什么是Machine learning 学习中心极限定理,学习正态分布,学习最大似然估计 推导回归Loss function 学习损失函数与凸函数之间的关系 了解全局最优和局部最优 学习导数,泰勒 ...

  2. LeCun称梯度下降是最优雅的 ML 算法,Marcus:我不同意

    作者|李梅 编辑|陈彩娴 来源|AI科技评论 前几天刚跟马斯克吵完架的Gary Marcus,又双叒叕跟人吵起来了,这次的吵架对象是Yann LeCun. 一向喜欢给深度学习泼冷水的Marcus,在今 ...

  3. LeCun称梯度下降是最优雅的 ML 算法,Marcus:我不同意!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CVer 微信技术交流群 转载自:AI科技评论  作者|李梅  编辑|陈彩娴 前几天刚跟 ...

  4. ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介、常用方法、案例应用之详细攻略

    ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介.常用方法.案例应用之详细攻略 目录 ...

  5. [ML]--梯度下降 GD 的理解和探究

    文章目录 1. Content 2. References 1. Content 2. References 深度理解机器学习"梯度下降" jianshu 一文读懂梯度下降算法 c ...

  6. 『ML笔记』梯度下降法和随机梯度下降法和小批量梯度对比

    目录 1. 梯度下降法(gradient descent) 2. 随机梯度下降(Stochastic gradient descent) 3. 小批量梯度下降(Mini-Batch gradient ...

  7. Gradient Descent梯度下降(透彻分析)

    ----------首先了解什么是梯度? 官方解释: 梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为 ...

  8. 独家 | 数据科学家指南:梯度下降与反向传播算法

    作者:Richmond Alake 翻译:陈之炎 校对:zrx本文约3300字,建议阅读5分钟 本文旨在为数据科学家提供一些基础知识,以理解在训练神经网络时所需调用的底层函数和方法. 标签:神经网络, ...

  9. 独家 | ​多项式回归:从零开始学习梯度下降

    作者:SETHNEHA 翻译:王可汗 校对:陈丹 本文约3200字,建议阅读15分钟 本文为大家介绍多项式回归中的梯度下降算法. 关键词:梯度下降.多项式回归.模型优化 梯度下降是一个需要理解的重要算 ...

最新文章

  1. 真是好东西!一组动感的页面加载动画效果
  2. Java NIO系列教程(五)Buffer
  3. php根据位置获取经纬度(百度地图)
  4. iOS沙盒目录结构解析
  5. 执行点击事件,第一次点击后,一切正常,第二次点击,执行两次,以此类推
  6. 以太坊java接口_java以太坊库web3j文档
  7. LeetCode 965. 单值二叉树
  8. 重命名myclipse中web项目名称的过程
  9. 【C++ STL学习之三】容器deque深入学习
  10. 忘记using namespace std;
  11. web高拍仪图片上传
  12. 定制小狼豪(五笔+拼音)输入法
  13. python--Venn图及upsetplot进阶
  14. 2009 中国七夕情人节 --期待
  15. 100天精通Python丨基础知识篇 —— 02、Python和Pycharm(语言特点、学习方法、工具安装)
  16. 什么样的视频算搬运的?
  17. webbench1-5源码分析
  18. UI: 网易新闻实现
  19. 英孚教育全面上云与Serverless构建之路
  20. 标量/向量/矩阵求导方法

热门文章

  1. 【C初阶】第一篇——初识C语言(万字篇,带你敲响C语言的大门)
  2. 理解滑动平均(exponential moving average)
  3. This is an MDK version 4 project ,require Device support for Cortex-M based devices.
  4. Termux安装sox但rec录音静音的问题
  5. c语言编程 菲薄拉,C语言设计模式-封装-继承-多态
  6. 京东Java岗:来自面试官的夺命连环56问,直接当场怀疑人生~
  7. 气象绘图(二)——散点图
  8. 抖音、快手、脸书陷舆论漩涡,CEO纷纷致歉,AI算法不灵了?
  9. 皮肤美化润饰滤镜Imagenomic Portraiture 4.0.3 for PS/LR4032 WIN中文汉化版
  10. c语言for循环打印菱形五行,用C语言编程 输出五行菱形*。。急需啦。。大神帮忙撒。。。...