Momentum,这也是另外一个,有可能可以对抗 Saddle Point,或 Local Minima 的技术,Momentum 的运作是这个样子的

它的概念,你可以想像成在物理的世界裡面,假设 Error Surface 就是真正的斜坡,而我们的参数是一个球,你把球从斜坡上滚下来,如果今天是 Gradient Descent,它走到 Local Minima 就停住了,走到 Saddle Point 就停住了。

但是在物理的世界裡,一个球如果从高处滚下来,从高处滚下来就算滚到 Saddle Point,如果有惯性,它从左边滚下来,因為惯性的关係它还是会继续往右走,甚至它走到一个 Local Minima,如果今天它的动量够大的话,它还是会继续往右走,甚至翻过这个小坡然后继续往右走。

那所以今天在物理的世界裡面,一个球从高处滚下来的时候,它并不会被 Saddle Point,或 Local Minima卡住,不一定会被 Saddle Point,或 Local Minima 卡住,我们有没有办法运用这样子的概念,到 Gradient Descent 裡面呢,那这个就是我们要讲的,Momentum 技术。


(Vanilla) Gradient Descent

那我们先很快的复习一下,原来的 Gradient Descent 长得是什麼样子,这个是 Vanilla 的 Gradient Descent,Vanilla 的意思就是一般的的意思,它直译是香草的,但就其实是一般的,一般的 Gradient Descent 长什麼样子呢。

一般的 Gradient Descent 是说,我们有一个初始的参数叫做 ,我们计算一下 Gradient,然后计算完这个 Gradient 以后呢,我们往 Gradient 的反方向去 Update 参数

我们到了新的参数以后,再计算一次 Gradient,再往 Gradient 的反方向,再 Update 一次参数,到了新的位置以后再计算一次 Gradient,再往 Gradient 的反方向去 Update 参数,这个 Process 就一直这样子下去。


Gradient Descent + Momentum 

加上 Momentum 以后,每一次我们在移动我们的参数的时候,我们不是只往 Gradient Descent,我们不是只往 Gradient 的反方向来移动参数,我们是 Gradient 的反方向,加上前一步移动的方向,两者加起来的结果,去调整去到我们的参数。


PyTorch 中的代码实现只需要在优化器中,加入一个参数即可

# 3.构造loss and optimizer
criterion = torch.nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)

转载自:Batch and Momentum - 李宏毅2021春机器学习笔记 - 知乎

Pytorch学习笔记——Momentum相关推荐

  1. 深度学习入门之PyTorch学习笔记:多层全连接网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 3.1 PyTorch基础 3.2 线性模型 3.2.1 问题介绍 3.2.2 一维线性回归 3.2 ...

  2. PyTorch学习笔记(七):PyTorch可视化

    PyTorch可视化 往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本系列目录: PyTorch学习笔记(一) ...

  3. PyTorch学习笔记(五):模型定义、修改、保存

    往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本系列目录: PyTorch学习笔记(一):PyTorch环境安 ...

  4. PyTorch学习笔记(三):PyTorch主要组成模块

    往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本系列目录: PyTorch学习笔记(一):PyTorch环境安 ...

  5. PyTorch学习笔记2:nn.Module、优化器、模型的保存和加载、TensorBoard

    文章目录 一.nn.Module 1.1 nn.Module的调用 1.2 线性回归的实现 二.损失函数 三.优化器 3.1.1 SGD优化器 3.1.2 Adagrad优化器 3.2 分层学习率 3 ...

  6. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  7. pytorch学习笔记(二):gradien

    pytorch学习笔记(二):gradient 2017年01月21日 11:15:45 阅读数:17030

  8. PyTorch学习笔记(二)——回归

    PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...

  9. pytorch 学习笔记目录

    1 部分内容 pytorch笔记 pytorch模型中的parameter与buffer_刘文巾的博客-CSDN博客 pytorch学习笔记 torchnn.ModuleList_刘文巾的博客-CSD ...

  10. pytorch学习笔记 torchnn.ModuleList

    1 nn.ModuleList原理 nn.ModuleList,它是一个储存不同 module,并自动将每个 module 的 parameters 添加到网络之中的容器. 你可以把任意 nn.Mod ...

最新文章

  1. python 的回调函数
  2. easyui js拼接html,class属性失效的问题
  3. 没看完这11 条,别说你精通 Python 装饰器
  4. 2017年网易校招题 解救小易
  5. mysql 42642 安装报错_1/5 MySQL入门总结:下载安装
  6. 深度学习分类任务常用评估指标
  7. JSR 168 and Portlet
  8. 使用DQL查询数据(重点)
  9. C语言及程序设计提高例程-17 一维数组的定义和引用
  10. 在二维码中间添加logo或者图片
  11. 微信小程序开发实战第六讲之手机号验证码登录
  12. aect17定义_【多选题】AECT关于教育技术的17定义认为,教育技术的目的是()? A. 提高绩效的 B. 促进知识理解 C. 调整改善学习及表现 D. 促进学习...
  13. java里面com.是什么意思
  14. Linux物理内存较少导致OOM问题分析
  15. Android 实现指南针效果
  16. Java 在Windows上通过代码开启和关闭exe程序
  17. python做动态表情包下载_用 Python 开发一个【GIF表情包制作神器】
  18. 信息安全数学基础-期中复习提纲
  19. GVM 内存结构 垃圾回收
  20. 【编译原理】LR语法分析器的设计与实现

热门文章

  1. 小罗说敏捷 | 使用关键路径法优化项目进度管理
  2. 查找——图文翔解SkipList(跳跃表)
  3. Git cherry-pick 指令总结
  4. uniapp打开外部链接
  5. C语言学习-- 计算机原理及二进制
  6. 英诺重明320T服务器安装VMware操作系统流程(图文超详细版)
  7. ES学习笔记八-聚合搜索
  8. 为了写好代码,你坚持了哪些好习惯?
  9. 阿甘本:什么是当代人
  10. 基于Selenium爬取动态网页