论文阅读--On optimization methods for deep learning

深度学习的优化方法研究

论文信息:Le Q V, Ngiam J, Coates A, et al. On optimization methods for deep learning[C]//Proceedings of the 28th International Conference on Machine Learning, ICML 2011, Bellevue, Washington, USA, June 28 - July 2, 2011. DBLP, 2012.
本文提出时间较早,GPU和集群运算的并行计算还暂不普及
创新点:

  • 作者基于当前SGD的局限性和LBFGS和CG方法的优势,对各种常见优化算法进行了比较,找到不同任务的理论上最适应的优化算法极其适应的原因。
  • L-BFGS对于低维问题,尤其是卷积模型,L-BFGS具有很强的竞争力,有时甚至优于SGDs/CG。
  • 对于高维问题,CG更具竞争力,通常优于L-BFGS和SGDs。
  • SGDs使用大型小批处理和行搜索可以提高性能。

Abstract && Introduction

SGD 特点
优点:实现简单,当训练样本足够多时优化速度非常快。
缺点:
1.需要人为调整很多参数,比如学习率,收敛准则等。如果一个人不知道手头的任务,很难找到一个好的学习率或一个好的收敛准则。
2.它是序列的方法,不利于GPU并行或分布式处理。
3.针对SGD的局限性,目前现有的有限内存BFG(L-BFGS)和共轭梯度(CG)线搜索方法,可以极大简化和加快预训练深算法的过程

批处理方法,如有限内存BFG(L-BFGS)或共轭梯度(CG),具有线搜索过程的存在,通常训练起来更稳定,并且更容易检查收敛性。这些方法还通过在GPU上计算梯度和/或跨机器分布计算来享受并行性。

L-BFGS和CG需要计算整个数据集的梯度来进行更新,在数据集的一小部分上计算梯度的小批量训练很好地解决了这一弱点。当数据集较大时,小批量L-BFGS/CG速度很快。

本文分别在自编码器和稀疏自编码器训练上实证研究现成的重点比较L-BFGS、CG和SGDs优化算法的利弊。

概念介绍

  • SGD 随机梯度下降
    批量梯度下降(Batch Gradient Descent):它是指在每一次迭代时使用所有样本来进行梯度的更新
    随机梯度下降(Stochastic Gradient Descent):随机梯度下降是在每次迭代时使用一个样本来对参数进行更新
    小批量梯度下降(Mini-Batch Gradient Descent):使用一个以上而又不是全部的训练样本。
      梯度下降法的计算过程就是沿梯度下降的方向求解极小值,也可以沿梯度上升方向求解最大值。 假设模型参数为 θ \theta θ ,损失函数为 J ( θ ) J\left(\theta\right) J(θ) ,损失函数 J ( θ ) J\left(\theta\right) J(θ)关于参数 θ \theta θ 的偏导数,也就是梯度为 ▽ θ J ( θ ) \triangledown _{\theta}J\left ( \theta \right ) θJ(θ) ,学习率为 α \alpha α ,则使用梯度下降法更新参数为:
    θ t + 1 = θ t − α ⋅ ∇ θ J ( θ ) \theta_{t+1}=\theta_t-\alpha \cdot \nabla_\theta J(\theta) θt+1=θtαθJ(θ)

  • L-BFGS 有限内存BFGS
      L-BFGS由牛顿法发展而来,是为了提高计算效率而提出的近似计算方法,在施行牛顿法的过程中需要计算海森矩阵 H H H的逆 H − 1 H^{-1} H1,计算矩阵逆工作量巨大,所以采用符合拟牛顿条件的矩阵代替或进行计算,这种方法称为拟牛顿法,其代表性方法有DFP算法和BFGS算法,L-BFGS在BFGS的基础上进一步在有限的内存下进行近似而提高效率的算法。BFGS算法可以只使用 B 0 B_0 B0表达,那么L-BFGS在这个基础上,再一次进行近似,就是只用有限的内存来保存近m个向量的值来进行计算。

  • CG 共轭梯度
      使用梯度信息来获得共轭的搜索方向。而这种通过梯度信息来实现共轭方向法的算法被我们称为共轭梯度法(conjugate gradient method)
    最优化方法复习笔记–共轭梯度法

  • Autoencoders 自编码器
      Auto-Encoder,中文称作自编码器,是一种无监督式学习模型。它基于反向传播算法与最优化方法(如梯度下降法),利用输入数据
    X X X 本身作为监督,来指导神经网络尝试学习一个映射关系,从而得到一个重构输出 X R X^R XR
      Auto-Encoder可以学习到输入数据的隐含特征,这称为编码(coding),同时用学习到的新特征可以重构出原始输入数据,称之为解码(decoding)。从直观上来看,自动编码器可以用于特征降维,类似主成分分析PCA,但是其相比PCA其性能更强,这是由于神经网络模型可以提取更有效的新特征。
    自编码器
    在这里插入图片描述

  • Map-Reduce
    Map阶段:Map阶段的主要作用是"分",即把复杂的任务分解为若干个"简单的任务"来并行处理。Map阶段的这些任务可以并行计算,彼此间没有依赖关系。
    Reduce阶段:Reduce阶段的主要作用是"合",即对map阶段的结果进行全局汇总。

  • MNIST数据集(Mixed National Institute of Standards and Technology database)是美国国家标准与技术研究院收集整理的大型手写数字数据集,包含了60,000个样本的训练集以及10,000个样本的测试集。

结论

  作者通过实验得出的结论是:不同的优化算法有不同的优缺点,适合不同的场合,比如LBFGS算法在参数的维度比较低(一般指小于10000维)时的效果要比SGD(随机梯度下降)和CG(共轭梯度下降)效果好,特别是带有convolution的模型。

  而针对高维的参数问题,CG的效果要比另2种好。也就是说一般情况下,SGD的效果要差一些,这种情况在使用GPU加速时情况一样,即在GPU上使用LBFGS和CG时,优化速度明显加快,而SGD算法优化速度提高很小。

  在单机器训练上,LBFGS的优势主要是利用参数之间的2阶近视特性来加速优化,而CG则得得益于参数之间的共轭信息,需要计算Hessian矩阵。不过当使用一个大的minibatch且采用线搜索的话,SGD的优化性能也会提高。

  在单机器训练上比较SGD,LBFGS,CG三种算法的优化性能,当针对Autoencoder模型,SGD效果最差。这主要原因是LBFGS和CG能够使用大的minibatch数据来估算每个节点的期望激发值,这个值是可以用来约束该节点的稀疏特性的,而SGD需要去估计噪声信息。

  CG和L-BFG也是可以更好地利用GPU的方法,因为它们偏好更大的小批量。此外,如果使用平铺(局部连接)网络或具有相对少量参数的其他网络,则可以在Map-Reduce框架中计算梯度,并使用L-BFGS加速训练

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

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

相关文章

北邮22级信通院数电:Verilog-FPGA(5)第四第五周实验 密码保险箱的设计

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.密码箱的功能和安全性 显示:…

C++ 类和对象篇(八) const成员函数和取地址运算符重载

目录 一、const成员函数 1. const成员函数是什么? 2. 为什么有const成员函数? 3. 什么时候需要使用const修饰成员函数? 二、取地址运算符重载 1. 为什么需要重载取地址运算符? 2. 默认取地址运算符重载函数 3. 默认const取地址运…

mac连接easyconnnect显示“本地环境出现异常”

mac连接easyconnnect显示“本地环境出现异常” 解决方法: 终端下输入:vim ~/.zprofile文件内加入如下内容,如下图: ####解决连接easyconnnect显示“本地环境出现异常问题 function EC_start(){/Applications/EasyConnect.app/Co…

使用ChatGPT和MindShow一分钟生成PPT模板

对于最近学校组织的实习答辩,由于时间太短了,而且小编也特别的忙,于是就用ChatGPT结合MindShow一分钟快速生成PPT,确实很实用。只要你跟着小编后面,你也可以快速制作出这个PPT,下面小编就来详细介绍一下&am…

【数据结构初阶】七、非线性表里的二叉树(堆的实现 -- C语言顺序结构)

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【数据结构初阶】六、线性表中的队列(链式结构实现队列)-CSDN博客 1 . 非线性表里的 树(Tree) 树的概念及结构: 树的概念 树是一种非线性的数据…

Spring中的设计模式

目录 工厂模式 组合模式 适配器模式 代理模式 单例模式 观察者模式 模板方法模式 责任链模式 Spring有着非常优雅的设计,很多地方都遵循SOLID原则,里面的设计模式更是数不胜数大概有以下几种: 工厂模式 所谓的工厂模式,核…

二十九、高级IO与多路转接之epollreactor(收官!)

文章目录 一、Poll(一)定义(二)实现原理(三)优点(四)缺点 二、I/O多路转接之epoll(一)从网卡接收数据说起(二)如何知道接收了数据&…

【 构建maven工程时,配置了阿里云的前提下,依旧使用中央仓库下载依赖导致失败的问题!】

构建maven工程时,配置了阿里云的前提下,依旧使用中央仓库下载依赖导致失败的问题!!! 错误提示信息: Cannot download ZIP distribution from https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3…

yolov7的bug,无法指定显卡(程序默认0号卡)

**问题:**命令行参数指定的是4号卡,但实际却总是在0号卡建立进程 真抽象啊,这一步,模型被送到0号卡,但实际上,送到了4号卡(进程是在4号卡上建立的) 解决办法: 在train.py…

【Linux】Linux 之用户管理

Linux 之用户管理 1.Linux 下的用户2.配置文件3.用户管理3.1 useradd3.1.1 创建用户并指定用户 ID3.1.2 指定用户的主目录3.1.3 指定用户的主组 3.2 adduser3.3 userdel3.4 密码文件3.4.1 字段含义解释3.4.2 给用户添加密码 3.5 其他与用户相关的命令 4.修改用户的信息4.1 user…

中国替代方案探索:替代谷歌企业邮箱的选择

“谷歌企业邮箱在中国有哪些替代方案?在中国市场上表现出色的企业邮箱有腾讯企业邮箱、网易企业邮箱、阿里企业邮箱以及适合外贸的Zoho Mail企业邮箱。” 在中国由于各种原因,包括网络安全、数据隐私保护以及与GFW(防火长城)等,谷歌企业邮箱并…

FFmpeg 基础模块:AVIO、AVDictionary 与 AVOption

目录 AVIO AVDictionary 与 AVOption 小结 思考 我们了解了 AVFormat 中的 API 接口的功能,从实际操作经验看,这些接口是可以满足大多数音视频的 mux 与 demux,或者说 remux 场景的。但是除此之外,在日常使用 API 开发应用的时…