Optimization for Deep Learning

Notations:

  1. \theta _{t}: model parameters at time step t
  2. \triangledown L(\theta _{t}) or g_{t}: gradient at \theta _{t} used to compute \theta _{t+1}
  3. m_{t+1}: momentum accumulated from time step 0 to time step t, which is used to cpmpute \theta _{t+1}

Optimization

What is Optimization about?

        找到一组参数\theta,使得 \sum _{x}L(\theta ;x) 最小,或者说是找到一组参数\theta,使得L(\theta )最小。

  1. On-line: one pair of (x_{t},\hat{y}_{t}) at a time step
  2. Off-line: all pair of (x_{t},\hat{y}_{t}) at a time step

SGD

        当SGD计算出Gradient非常接近于0的时候,更新会卡在这个点上,不能再继续更新,以及自适应Learning Rate问题。

SGD with Momentum(SGDM)

        如果梯度计算出来非常接近于0的话,在SGD的情况下,不会再跟新卡在这个点上,但是SGDM,当前的Momentum会由上一次的Momentum和当前的Gradient决定,也就是说,当前的Gradient不仅会考虑到当前计算出的梯度本身还会考虑之前累积的Gradient。通过SGDM就算是在当前梯度很接近于0的点也不会卡住,因为之前的Momentum会像惯性一样不会马上停下来会带着它冲出这个点,但是仍然自适应Learning Rate问题。

Adagrad

\theta _{t} = \theta _{t-1}-\frac{\eta }{\sqrt{\sum _{i=0}^{t-1}(g_{i})^{2}}}g_{t-1}

        考虑这样的情况,如果过去的Gradient都是很大的情况下,说明在这个区域的Error surface比较崎岖,\frac{\eta }{\sqrt{\sum _{i=0}^{t-1}(g_{i})^{2}}}就会有比较小的值,Movement会很小,走的步子慢一点。如果过去的Gradient都是很小的情况下,说明在这个区域的Error surface比较平缓,\frac{\eta }{\sqrt{\sum _{i=0}^{t-1}(g_{i})^{2}}}就会有比较大的值,Movement会很大,走的步子大一点。

RMSProp

        Adagrad有个问题,如果在一开始的Gradient太大的时候,Learning rate会很小,因为Gradient是从开始累积到当前时刻的,它可能没走几步就卡住。RMSProp加权和来缓解这个问题。

Adam

        Adam是将SGDM和RMSProp做结合这样,刚开始所需动量比较大,后面模型基本稳定后,逐步减小对动量的依赖

Adam vs SGDM

  1. Adam: 训练速度更快,比较不稳定,泛化能力比较差,
  2. SGDM: 比较稳定,泛化能力比较好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/488314.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频怎么变成gif动图?一招教你在线转换

MP4是一种常见的视频文件格式,它可以包含音频和视频数据,并支持高质量的视频压缩。MP4视频可以呈现连续的动态效果,可以包含平滑的运动、音频等多媒体元素。而GIF动图是由一系列静态图像组成的,通过快速连续播放这些帧来创造出动态…

使用Python制作进度条有多少种方法?看这一篇文章就够了!

前言 偶然间刷到一个视频,说到:当程序正在运算时,会有一个较长时间的空白期,谁也不知道程序运行的进度如何,不如给他加个进度条。 于是我今个就搜寻一下,Python版的进度条都可以怎么写! 送书…

一出手就是“天价”,鹰角网络的第二款游戏《来自星尘》,备受游戏行业关注

​还有4天,鹰角网络的第二款游戏《来自星尘》即将面市。 行业内大部分人都在关注这一产品的落地情况,想要知道市场对于这一游戏的反应。 这当然有其原因。 最简单的一点是,这是鹰角网络自《明日方舟》后,时隔五年后才出的第二款…

基础光学系列:(一)光学在机器视觉中的角色:原理、应用与学习途径

光学是一门研究光的产生、传播以及与物质相互作用的科学,对于机器视觉技术的发展至关重要。机器视觉利用计算机和相机系统模拟人类视觉,解释和理解图像,广泛应用于制造业、医疗、安全监控等领域。本文旨在探讨光的传播原理及其在机器视觉中的…

二手旧物回收系统开发:推动可持续发展的关键

随着人们环保意识的增强,二手旧物回收系统的发展逐渐成为社会关注的焦点。开发二手旧物回收系统,不仅能有效减少废弃物的排放,降低对环境的污染,还能实现资源的循环利用,推动可持续发展。本文将深入探讨二手旧物回收系…

【前端素材】推荐优质后台管理系统Salreo平台模板(附源码)

一、需求分析 当我们从多个层次来详细分析后台管理系统时,可以将其功能和定义进一步细分,以便更好地理解其在不同方面的作用和实际运作。 1. 结构层次 在结构层次上,后台管理系统可以分为以下几个部分: a. 辅助功能模块&#…

【linux】查看openssl程序的安装情况

【linux】查看openssl程序的安装情况 1、查看安装包信息 $ rpm -qa |grep openssl 2、安装路径 $ rpm -ql openssl $ rpm -ql openssl-libs $ rpm -ql openssl-devel 3、相关文件和目录 /usr/bin/openssl /usr/include/openssl /usr/lib64/libssl.so.* /usr/lib64/libcrypto…

Python奇幻之旅(从入门到入狱基础篇)——面向对象进阶篇(下)

目录 引言 3. 面向对象高级和应用 3.1. 继承【补充】 3.1.1. mro和c3算法 c3算法 一句话搞定继承关系 3.1.2. py2和py3区别 3.3. 异常处理 3.3.1. 异常细分 3.3.2. 自定义异常&抛出异常 3.3.3. 特殊的finally 3.4. 反射 3.4.1. 一些皆对象 3.4.2. import_modu…

UI风格汇:扁平化风格来龙去脉,特征与未来趋势

Hello,我是大千UI工场,设计风格是我们新开辟的栏目,主要讲解各类UI风格特征、辨识方法、应用场景、运用方法等,本次带来的扁平化风格的解读,有设计需求,我们也可以接单。 一、什么是扁平化风格 扁平化风格…

多窗口编程

六、多窗口编程 QMessageBox消息对话框(掌握) QMessageBox继承自QDialog,显示一个模态对话框。用于用户前台信息通知或询问用户问题,并接收问题答案。 QDialog的Qt源码中,派生类往往都是一些在特定场合下使用的预设好的…

MFC 多文档程序的基本编程

下载了一个openGL mfc的多文档程序,以此来学习mfc多文档模式的编程; 1 基本编程 它每次新建一个文档,会在窗口绘制一个三角形、一个矩形;如果没有了图形刷新一下; 先看一下为什么每次打开新文档会绘制图形; 生成工程之后主要有5个类,比单文档程序多了一个子框架类; 可…

分享数字孪生潭江流域建设与实践论文

数字孪生潭江流域建设 广东省水利厅 以支撑江门市沿线水工程精准联调联控,提升水旱灾害防御能力为首要任务,融合多信息源预报、GIS等技术,建立气象-水文-水动力集一体的复杂流域入库径流预报及其洪涝延伸预报模型平台,构建具有“…