神经网络:优化器和全连接层

SGD(随机梯度下降)

随机梯度下降的优化算法在科研和工业界是很常用的。

很多理论和工程问题都能转化成对目标函数进行最小化的数学问题。

举个例子:梯度下降(Gradient Descent)就好比一个人想从高山上奔跑到山谷最低点,用最快的方式奔向最低的位置。

SGD的公式:

动量(Momentum)公式:

基本的mini-batch SGD优化算法在深度学习取得很多不错的成绩。然而也存在一些问题需解决:

  1. 选择恰当的初始学习率很困难。
  2. 学习率调整策略受限于预先指定的调整规则。
  3. 相同的学习率被应用于各个参数。
  4. 高度非凸的误差函数的优化过程,如何避免陷入大量的局部次优解或鞍点。

AdaGrad(自适应梯度)

AdaGrad优化算法(Adaptive Gradient,自适应梯度),它能够对每个不同的参数调整不同的学习率,对频繁变化的参数以更小的步长进行更新,而稀疏的参数以更大的步长进行更新。

AdaGrad公式:

g t , i g_{t,i} gt,i 表示t时刻的 θ i \theta_{i} θi 梯度。

G t , i i G_{t,ii} Gt,ii 表示t时刻参数 θ i \theta_{i} θi 的梯度平方和。

与SGD的核心区别在于计算更新步长时,增加了分母:梯度平方累积和的平方根。此项能够累积各个参数 θ i \theta_{i} θi 的历史梯度平方,频繁更新的梯度,则累积的分母逐渐偏大,那么更新的步长相对就会变小,而稀疏的梯度,则导致累积的分母项中对应值比较小,那么更新的步长则相对比较大。

AdaGrad能够自动为不同参数适应不同的学习率(平方根的分母项相当于对学习率α进进行了自动调整,然后再乘以本次梯度),大多数的框架实现采用默认学习率α=0.01即可完成比较好的收敛。

优势: 在数据分布稀疏的场景,能更好利用稀疏梯度的信息,比标准的SGD算法更有效地收敛。

缺点: 主要缺陷来自分母项的对梯度平方不断累积,随时间的增加,分母项越来越大,最终导致学习率收缩到太小无法进行有效更新。

RMSProp

RMSProp结合梯度平方的指数移动平均数来调节学习率的变化。能够在不稳定的目标函数情况下进行很好地收敛。

计算t时刻的梯度:

计算梯度平方的指数移动平均数(Exponential Moving Average), γ \gamma γ 是遗忘因子(或称为指数衰减率),依据经验,默认设置为0.9。

梯度更新的时候,与AdaGrad类似,只是更新的梯度平方的期望(指数移动均值),其中 ε = 1 0 − 8 \varepsilon = 10^{-8} ε=108 ,避免除数为0。默认学习率 α = 0.001 \alpha = 0.001 α=0.001

优势: 能够克服AdaGrad梯度急剧减小的问题,在很多应用中都展示出优秀的学习率自适应能力。尤其在不稳定(Non-Stationary)的目标函数下,比基本的SGD、Momentum、AdaGrad表现更良好。

Adam

Adam优化器结合了AdaGrad和RMSProp两种优化算法的优点。对梯度的一阶矩估计(First Moment Estimation,即梯度的均值)和二阶矩估计(Second Moment Estimation,即梯度的未中心化的方差)进行综合考虑,计算出更新步长。

Adam的优势:

  1. 实现简单,计算高效,对内存需求少。
  2. 参数的更新不受梯度的伸缩变换影响。
  3. 超参数具有很好的解释性,且通常无需调整或仅需很少的微调。
  4. 更新的步长能够被限制在大致的范围内(初始学习率)。
  5. 能自然地实现步长退火过程(自动调整学习率)。
  6. 很适合应用于大规模的数据及参数的场景。
  7. 适用于不稳定目标函数。
  8. 适用于梯度稀疏或梯度存在很大噪声的问题。

Adam的实现原理:

计算t时刻的梯度:

然后计算梯度的指数移动平均数, m 0 m_{0} m0 初始化为0。

类似于Momentum算法,综合考虑之前累积的梯度动量。

β 1 \beta_{1} β1 系数为指数衰减率,控制动量和当前梯度的权重分配,通常取接近于1的值。默认为0.9。

接着,计算梯度平方的指数移动平均数, v 0 v_{0} v0 初始化为0。

β 2 \beta_{2} β2 系数为指数衰减率,控制之前的梯度平方的影响情况。默认为0.999。

类似于RMSProp算法,对梯度平方进行加权均值。

由于 m 0 m_{0} m0 初始化为0,会导致 m t m_{t} mt偏向于0,尤其在训练初期阶段。

所以,此处需要对梯度均值 m t m_{t} mt进行偏差纠正,降低偏差对训练初期的影响。

同时 v 0 v_{0} v0 也要进行偏差纠正:

最后总的公式如下所示:

其中默认学习率 α = 0.001 \alpha = 0.001 α=0.001 ε = 1 0 − 8 \varepsilon = 10^{-8} ε=108 避免除数变为0。

从表达式中可以看出,对更新的步长计算,能够从梯度均值和梯度平方两个角度进行自适应地调节,而不是直接由当前梯度决定。

Adam的不足:

虽然Adam算法目前成为主流的优化算法,不过在很多领域里(如计算机视觉的图像识别、NLP中的机器翻译)的最佳成果仍然是使用带动量(Momentum)的SGD来获取到的。

全连接层的作用

全连接层将卷积学习到的高维特征映射到label空间,可以作为整个网络的分类器模块。

虽然全连接层参数存在冗余的情况,但是在模型进行迁移学习时,其能保持较大的模型capacity。

目前很多模型使用全局平均池化(GAP)取代全连接层以减小模型参数,并且依然能达到SOTA的性能。

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

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

相关文章

云原生系列2-CICD持续集成部署-GitLab和Jenkins

1、CICD持续集成部署 传统软件开发流程: 1、项目经理分配模块开发任务给开发人员(项目经理-开发) 2、每个模块单独开发完毕(开发),单元测试(测试) 3、开发完毕后,集成部…

海康威视运行管理中心 Fastjson RCE

漏洞描述 海康威视运行管理中心系统存在低版本Fastjson远程命令执行漏洞,攻击者可在未鉴权情况下获取服务器权限,且由于存在相关依赖,即使服务器不出网无法远程加载恶意类也可通过本地利用链直接命令执行,从而获取服务器权限。 漏…

AMD和CMD的区别

AMD和CMD的区别 AMD和CMD的区别 AMD和CMD的区别 依赖引入不同 AMD: 依赖前置 CMD:就近依赖模块导出不同 AMD:return 返回值 CMD:exports //CMD define(function(){//依赖就近书写var module1 require(Module1);var result1 module1.exec();//exports导出module.exports {r…

【RTOS学习】源码分析(信号量和互斥量 事件组 任务通知)

🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 目录 🍓信号量和互斥量🍅创建🍅Take🍅Give &#x…

【SpringMVC】SpringMVC的请求与响应

文章目录 0. Tomcat环境的配置1. PostMan工具介绍创建WorkSpace建立新的请求 2. 请求映射路径案例结构与代码案例结构案例代码 案例存在问题解决方案方法方法升级版——配置请求路径前缀注解总结 3. Get请求与Post请求案例结构与案例代码案例结构案例代码 Get请求Post请求接收中…

c++打开网页

1.使用ShellExecute 效果图: 相关代码: void Open_url::on_pushButton_clicked() {QString path1 "explorer.exe";QString urlui->lineEdit->text();ShellExecute(NULL, L"open", path1.toStdWString().c_str(), url.toStdWString().c…

海康威视IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)

漏洞介绍 海康威视IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 Hikvision Intercom Broadcasting System 3.0.3_20201113_RELEASE(HIK)版本存在操作系统命令注入漏洞,该漏洞源于文件/ph…

山景DU561—32位高性能音频处理器(DSP)芯片

音频处理可以更好地捕捉和处理声音和音乐;而DSP音频处理芯片是一种利用数字信号处理技术进行音频处理的专用芯片;可用于多种应用,从音乐拾音到复杂的音频信号处理,和声音增强。 由工采网代理的山景DU561是一款集成多种音效算法高…

【大数据存储与处理】实验一 HBase 的基本操作

一、实验目的: 1. 掌握 Hbase 创建数据库表及删除数据库表 2. 掌握 Hbase 对数据库表数据的增、删、改、查。 二、实验内容: 1、题目 0:进入 hbase shell 2、题目 1:Hbase 创建数据库表 创建数据库表的命令:create 表…

ssm基于Java Web的线上办公管理系统设计与实现论文

摘 要 使用旧方法对线上办公管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在线上办公管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的线…

计算机网络基础——光模块(Optical Modules)基础知识介绍

一、光模块的工作原理 光模块(Optical Modules)的工作原理是将电信号转换为光信号,或者将光信号转换为电信号,实现光纤通信中的光电转换和电光转换功能。具体来说,光模块主要由光电子器件(光发射器和光接收…

阿里云大模型数据存储解决方案,为 AI 创新提供推动力

云布道师 随着国内首批大模型产品获批名单问世,百“模”大战悄然开启。在这场百“模”大战中,每一款大模型产品的诞生,都离不开数据的支撑。如何有效存储、管理和处理海量多模态数据集,并提升模型训练、推理的效率,保…