优化器,sgd,adam等
https://zhuanlan.zhihu.com/p/32230623
首先定义:待优化参数: ,目标函数: ,初始学习率 。
而后,开始进行迭代优化。在每个epoch :
- 计算目标函数关于当前参数的梯度:
- 根据历史梯度计算一阶动量和二阶动量:,
- 计算当前时刻的下降梯度:
- 根据下降梯度进行更新:
sgd:
先来看SGD。SGD没有动量的概念,也就是说:
代入步骤3,可以看到下降梯度就是最简单的
SGD缺点:下降速度慢,而且可能会在沟壑的两边持续震荡,停留在一个局部最优点。
SGD with Momentum
sgd引入一阶动量,为了抑制SGD的震荡,SGDM认为梯度下降过程可以加入惯性。下坡的时候,如果发现是陡坡,那就利用惯性跑的快一些
t时刻的下降方向,不仅由当前点的梯度方向决定,而且由此前累积的下降方向决定 0.9
AdaGrad
怎么样去度量历史更新频率呢?那就是二阶动量——该维度上,迄今为止所有梯度值的平方和:
我们再回顾一下步骤3中的下降梯度:
可以看出,此时实质上的学习率由 变成了 ,这也是为什么叫自适应学习率
这一方法在稀疏数据场景下表现非常好。但也存在一些问题:因为 是单调递增的,会使得学习率单调递减至0,可能会使得训练过程提前结束,即便后续还有数据也无法学到必要的知识。
AdaDelta / RMSProp
由于AdaGrad单调递减的学习率变化过于激进,我们考虑一个改变二阶动量计算方法的策略:不累积全部历史梯度,而只关注过去一段时间窗口的下降梯度。这也就是AdaDelta名称中Delta的来历。其实只关注了上一个时刻
这就避免了二阶动量持续累积、导致训练过程提前结束的问题了。
Adam
谈到这里,Adam和Nadam的出现就很自然而然了——它们是前述方法的集大成者。我们看到,SGD-M在SGD基础上增加了一阶动量,AdaGrad和AdaDelta在SGD基础上增加了二阶动量。把一阶动量和二阶动量都用起来,就是Adam了——Adaptive + Momentum。
SGD的一阶动量:
加上AdaDelta的二阶动量:
优化算法里最常见的两个超参数 就都在这里了,前者控制一阶动量,后者控制二阶动量。
转载于:https://www.cnblogs.com/ymjyqsx/p/9527560.html
优化器,sgd,adam等相关推荐
- 各种优化器SGD,AdaGrad,Adam,LBFGS都做了什么?
文章目录 各种优化器SGD,AdaGrad,Adam,LBFGS都做了什么? 1. SGD: 2. SGD+Momentum: 3. NAG(Nesterov Accelerated Gradient ...
- 妈耶,讲得好详细,十分钟彻底看懂深度学习常用优化器SGD、RMSProp、Adam详解分析
深度学习常用优化器学习总结 常用优化器 SGD RMS Prop Adam 常用优化器 SGD 基本思想:通过当前梯度和历史梯度共同调节梯度的方向和大小 我们首先根据pytorch官方文档上的这个流程 ...
- pytorch梯度下降函数_Pytorch中常用的四种优化器SGD、Momentum、RMSProp、Adam
来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-16 引言 很多人在使用pytorch的时候都会遇到优化器选择的问题,今天就给大家介绍对比 ...
- torch优化器sgd源码
Optimizer 更新参数主要是靠 step 函数 SGD类__init__函数 #params 网络模型的参数 #余参数被打包进字典中命名为defaultsdef __init__(self, p ...
- Pytorch学习 - Task6 PyTorch常见的损失函数和优化器使用
Pytorch学习 - Task6 PyTorch常见的损失函数和优化器使用 官方参考链接 1. 损失函数 (1)BCELoss 二分类 计算公式 小例子: (2) BCEWithLogitsLoss ...
- 优化器介绍—SGD、Adam、Adagrad
文章目录 深度学习中的优化器 介绍 随机梯度下降优化器 Adam 优化器 Adagrad 优化器 如何选择优化器 结论 深度学习中的优化器 介绍 在深度学习中,优化器是一个非常重要的组成部分,它通过调 ...
- Adam优化器如何选择
在很多机器学习和深度学习的应用中,我们发现用的最多的优化器是 Adam,为什么呢? 下面是 TensorFlow 中的优化器, https://www.tensorflow.org/api_guide ...
- Adam真的是最好的优化器吗?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 提到优化器,大多数人会想到 Adam.自 2015 年推出以来,A ...
- Adam真的是最好的优化器吗?有人认为不过是神经网络进化的结果
来源:机器之心 本文约2400字,建议阅读6分钟 Adam 优化器真的是最好的优化器吗? 提到优化器,大多数人会想到 Adam.自 2015 年推出以来,Adam 一直是该领域的"王者&qu ...
- adam优化_认识 AdaMod: 一个新的有记忆的深度学习优化器
Meet AdaMod: a new deep learning optimizer with memory by Less Wright https://medium.com/@lessw/meet ...
最新文章
- java对于app版本号比较,Java对比APP版本号大小
- Xshell Linux常用命令及vim与权限修改等常见问题
- 程序员的中场职业规划
- linux下的/dev/shm/ 以及与swap目录的区别【转】
- 阿里妈妈基于TensorFlow做了哪些深度优化?TensorFlowRS架构解析
- kaggle(02)-房价预测案例(基础版)
- springmvc拦截器配置
- 京东壕掷27亿买下一座酒店 官方回应:以办公为主!
- SSM中log4j2.xml配置文件的各项标签
- RPM + yum 完美完装tomcat
- ubuntu下安装宋体simsun
- php 做批量打印二维码,php语言开发的网站,如何实现批量打印快递单的功能?
- 爬虫-抖音无水印视频下载
- wrk服务器性能测试
- 数字化时代,安全沙箱技术促进企业网络安全生态安全运转
- [转载] 羽毛球——学打羽毛球 04 正手发高远球
- 理解path.join() 和 path.resolve()
- 大数据十年回顾(2):当代理论与Google云
- 【高效开发工具系列】API工具
- 浅谈 裴蜀定理扩展欧几里得
热门文章
- Android 摄像头
- OpenCV-图像处理(26、直方图反向投影(Back Projection))
- python finally语句里面出现异常_python try except语句出现异常
- STL map 的基本成员函数
- docker php安装gd扩展_PHP安装AMQP扩展
- 【HDU4456】Crowd(曼哈顿距离转切比雪夫距离+二维坐标hash离散化+二维树状数组)
- 【洛谷P1256】公路修建(问题分析+最小生成树prim法)
- php7类型约束,类型约束 - PHP 7 中文文档
- Pandas:时间序列数据基本操作和分组
- 推流式搅拌器选型功率计算方法_QSJ-1000