【深度学习】小白学深度学习:参数优化与优化器原理

深度学习的「参数优化」

深度学习模型的优化过程是指调整模型的参数以尽量减小预测误差的过程。下面是深度学习模型优化的基本流程:

  • 确定损失函数:衡量模型预测输出和实际输出之间误差的函数。

  • 梯度反向传播:用于计算每个参数对损失函数的贡献程度。

深度学习需要多次尝试

在实际应用中,深度学习的优化过程是一个反复迭代的过程,需要不断地调整超参数和算法以达到最优的效果。

  • 调节学习率:学习率是控制每次参数更新的步长大小的超参数,过大的学习率可能导致模型震荡不收敛,而过小的学习率可能导致模型收敛速度过慢。

  • 正则化:正则化是通过对模型参数添加惩罚项来避免模型过拟合的方法。

  • 验证集和早停法:通过将一部分数据作为验证集来评估模型的性能,当模型在验证集上的性能不再提升时,就停止训练以避免过拟合。

深度学习不需要凸优化

凸优化是指在约束条件下,寻找一个凸函数的最小值的问题,其最优解是全局最优解。

在深度学习中,模型的参数数量通常非常庞大,很难找到全局最优解。深度学习模型的损失函数通常是非凸的,即存在多个局部最优解。因此,使用凸优化方法来优化深度学习模型并不是最优的选择。

深度学习不需要最优解

由于深度学习模型的复杂性,通常不存在闭式解来求解最优参数,因此需要使用迭代算法进行优化。这些算法会在每次迭代中更新模型的参数,以逐步接近最优解。即使全局最优解存在,寻找它也可能非常困难,需要花费大量的时间和计算资源进行优化。

「优化器」原理

随机梯度下降法(Stochastic Gradient Descent,SGD)

随机梯度下降法是一种更快速的优化算法,它通过每次只使用一个样本来计算梯度,从而加速计算。由于每次只使用一个样本,SGD更新的方向会更加随机,可能会比梯度下降法(Gradient Descent,GD)更容易逃离局部最优解。

动量法(Momentum)

动量法是一种通过累加之前梯度的指数移动平均来加速梯度下降的算法。动量法可以有效地减少梯度下降的震荡,加速收敛速度,使得更新方向更加平滑。

自适应学习率方法(Adaptive Learning Rate Methods)

自适应学习率方法是一类根据历史梯度信息来自适应地调整学习率的算法。常见的自适应学习率方法包括Adagrad、Adadelta、RMSprop和Adam等。

权重衰减(Weight Decay)

权重衰减是一种正则化方法,通过向目标函数添加一个权重的L2范数惩罚项,来减少模型的过拟合问题。

「优化器」方法

Adadelta

https://arxiv.org/abs/1212.5701

Adadelta是一种自适应学习率方法,是对Adagrad算法的改进。Adadelta可以适应变化的学习率,并且相对于Adagrad减少了学习率的快速下降。

c12cbe3fa085060a56c7522cb0ba3b3e.png

Adadelta的主要思想是不仅仅累积梯度的平方,而是累积一定数量的梯度平方的滑动平均和参数更新量的平方的滑动平均。

  • rho:累计梯度系数

  • weight_decay:权重衰减系数

https://pytorch.org/docs/stable/generated/torch.optim.Adadelta.html

Adagrad

http://jmlr.org/papers/v12/duchi11a.html

Adagrad是一种自适应学习率方法,主要思想是根据梯度的历史信息,为不同的参数设置不同的学习率。

441de48d7545e6f00fce9d03007c551f.png

Adagrad核心思想是,对于频繁出现的参数,缩小它们的学习率,对于不频繁出现的参数,增加它们的学习率。这样可以使得梯度较大的参数学习率变小,从而使得参数在更新时更加平稳。

  • lr_decay:学习率衰减稀疏

  • weight_decay:权重衰减系数

https://pytorch.org/docs/stable/generated/torch.optim.Adagrad.html

Adam

https://arxiv.org/abs/1412.6980

Adam是一种自适应学习率优化算法,结合了Adagrad和RMSProp算法的优点,并加入了一些新的技巧。Adam算法可以有效地解决神经网络训练中的梯度消失和梯度爆炸问题,同时具有快速收敛和高效的计算效率。

Adam算法的主要思想是,对每个参数维护两个变量,分别为梯度的一阶矩估计(即梯度的平均值)和梯度的二阶矩估计(即梯度的平方的平均值),然后利用这些变量来调整学习率。

  • betas:梯度均值系数

  • weight_decay:权重衰减系数

  • amsgrad:是否使用

https://pytorch.org/docs/stable/generated/torch.optim.Adam.html

AdamW

https://arxiv.org/abs/1711.05101

AdamW是Adam算法的扩展,它通过加入权重衰减(weight decay)的方式来解决Adam算法的一些问题。

51092ec474d7d7a6b87f6e696c9724b9.png

Adam算法在更新参数时不考虑权重衰减,而AdamW算法在更新参数时同时考虑权重衰减和梯度更新,可以更好地控制权重的更新。

  • betas:梯度均值系数

  • weight_decay:权重衰减系数

  • amsgrad:是否使用

https://pytorch.org/docs/stable/generated/torch.optim.AdamW.html

Adamax

Adamax是Adam算法的扩展,主要是为了解决Adam算法在稀疏梯度情况下的精度。Adamax算法的优点是在处理稀疏梯度的情况下表现较好。

549d1dccb8ffc77d0df04e6e0b1d9262.png

  • betas:梯度均值系数

  • weight_decay:权重衰减系数

https://pytorch.org/docs/stable/generated/torch.optim.Adamax.html

ASGD

https://dl.acm.org/citation.cfm?id=131098

ASGD(Averaged Stochastic Gradient Descent)算法是一种随机梯度下降(SGD)的优化算法,它的主要思想是使用滑动平均来提高参数更新的稳定性和收敛速度。

1d2f24d1ed813a154f40968a99a8ee0d.png

ASGD算法在每次迭代中计算当前时刻的梯度,然后将其与之前时刻到时刻的所有梯度进行平均,得到平均梯度。

  • lambd:衰减系数

  • alpha:学习率更新系数

  • weight_decay:权重衰减系数

https://pytorch.org/docs/stable/generated/torch.optim.ASGD.html

LBFGS

https://www.cs.ubc.ca/~schmidtm/Software/minFunc.html

L-BFGS(Limited-memory Broyden-Fletcher-Goldfarb-Shanno)算法是一种用于解决无约束优化问题的迭代算法。

fff1c7f8d56f2a6b2bae490a354a901b.png

L-BFGS算法的主要思想是在每次迭代中,利用之前一定数量的历史梯度信息来估计当前梯度的逆矩阵。

  • max_iter:最大迭代次数

  • max_eval:最多评价次数

https://pytorch.org/docs/stable/generated/torch.optim.LBFGS.html

NAdam

https://openreview.net/forum?id=OM0jvwB8jIp57ZJjtNEZ

NAdam(Nesterov-accelerated Adaptive Moment Estimation)是Adam算法的一个变种,其主要的改进在于使用了Nesterov动量。

db3030c9049792f754787dc6dea8ffef.png

NAdam算法通过使用指数加权移动平均估计梯度的一阶矩和二阶矩,并使用Nesterov动量来加速收敛速度。

  • betas:梯度均值系数

  • weight_decay:权重衰减系数

  • momentum_decay:动量衰减系数

https://pytorch.org/docs/stable/generated/torch.optim.NAdam.html

RAdam

https://arxiv.org/abs/1908.03265

RAdam (Rectified Adam) 是一种优化器算法,它是对 Adam 算法的改进。RAdam 通过在 Adam 中引入偏差修正来改善 Adam 的性能,使得它在某些情况下比 Adam 更优秀。

  • betas:梯度均值系数

  • weight_decay:权重衰减系数

https://pytorch.org/docs/stable/generated/torch.optim.RAdam.html

RMSprop

https://arxiv.org/pdf/1308.0850v5.pdf

RMSprop(Root Mean Square Propagation)是一种常用的自适应学习率优化算法。RMSprop 算法通过不断调整每个参数的学习率来优化模型,使得参数更新时不同的维度有不同的学习率。

a87e38ee43f9730b4e275ce3a4a6455f.png

RMSprop 算法使用了一个衰减系数(decay rate)来控制历史梯度的权重,使得在更新参数时,历史梯度对学习率的影响逐渐降低。

  • alpha:学习率更新系数

  • weight_decay:权重衰减系数

  • momentum:动量系数

  • centered:是否方差的估计进行归一化

https://pytorch.org/docs/stable/generated/torch.optim.RMSprop.html

Rprop

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.21.1417

Rprop 算法通过动态调整每个参数的学习率来优化模型,使得参数更新时不同的维度有不同的学习率,从而在训练过程中可以更加精细地调整模型参数。

166d024aea5d2c5af41fb3b404ee9a8d.png

Rprop 算法根据每个参数的梯度变化情况来调整学习率,如果梯度变化的符号不变,则学习率保持不变;如果梯度变化的符号改变,则学习率减少;如果梯度为零,则学习率不变。

  • etas:乘法增减因子

  • step_sizes:允许步长

https://pytorch.org/docs/stable/generated/torch.optim.Rprop.html

 
 

fca2b47abbcfef7ff8c412066cbaa9e6.jpeg

 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码
风度78
关注 关注
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
仅标头的LBFGS无约束优化器。-C/C++开发
05-27
仅标头的LBFGS无约束优化器。 LBFGS-Lite仅标题的LBFGS无约束优化器。 0.关于LBFGS-Lite是一个C / C ++仅标头库,用于对两个连续可微分函数进行无限制的优化。 这段代码是liblbfgs的修改版本,因此为了简单起见,只保留了必要的部分。 1.功能只需一个头文件“ lbfgs.hpp”即可使用。 除C / C ++标准库外,没有任何依赖关系。 该库是Limited-Memory Broyden-Fletcher-Goldfarb-Shanno(
参数优化方法(梯度下降、牛顿法、拟牛顿法、L-BFGS算法、共轭梯度法)
rosefun96的博客
01-17 2万+
1 分类 梯度法,共轭梯度法,牛顿法,拟牛顿法,蒙特卡洛法、Steepest Descent(SD)、L-BFGS等参数优化方法。 参数优化目标 在机器学习中,在定义好损失函数好,希望通过参数优化,使得损失函数最小。 2 梯度下降法(最速下降法) 沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向(去负号),则就是更加容易找到函数的最小值。 批量梯度下降法(Bat...
参数优化算法
qq_62140542的博客
11-26 1404
深度学习中,参数优化是一个很重要的概念,为什么这么说?首先你需要指导你的预测结果跟你实际结果的偏差吧?那么你想要保证你的偏差最小,如何保证你的偏差最小,就需要优化算法。一般流程是什么,我们可以叫优化算法是正向传播过程,每次正向传播完,我们都反向传播算去他们的梯度,之后继续循环,直到目标函数条件满足,停止,得到目前的权重参数
深度学习入门--参数优化算法
我只钓小鱼的博客
11-27 4385
神经网络参数优化方法,包括随机下降法,动量优化法,自适应习率优化算法
深度学习中的参数优化方法
清舞 点滴
08-16 5591
  一、梯度下降法 : 习率 1、批量梯度下降法 每次更新需要在整个数据集上求出 优点:如果loss是个凸函数,则批量梯度下降会在全局最小值处收敛;若loss非凸,则会收敛于局部最小值 缺点:1)更新速度慢            2)不能在线训练模型            3)如果数据集很大,内存无法容纳,则无法使用此方法训练模型            4)若loss非凸,...
参数优化算法总结
A080807的博客
03-27 2194
参数优化算法机器学习优化领域中的重要组成部分,用于寻找最优的参数配置以最大化或最小化某个指定的目标函数。以下是一些常见的参数优化算法,它们可以根据不同的原理和特点进行归类。
【飞桨深度学习 && 百度七日打卡 && Python小白逆袭大神】Day5:综合大作业
12-21
【飞桨深度学习 && 百度七日打卡 && Python小白逆袭大神】Day5:综合大作业 在本文中,我们将探讨的是一个针对初者的深度学习项目,它结合了飞桨(PaddlePaddle)深度学习框架和Python编程语言,旨在帮助Python...
研究生课程深度学习实验报告
最新发布
05-22
- **未来展望**:进一步探索更高效的深度学习算法优化技术,以适应更多样化的农业场景需求。 综上所述,本研究通过利用深度学习技术解决了植物幼苗分类的关键问题,不仅提高了分类的准确性和效率,还为农业生产...
小白入门机器学习资料.zip
08-08
另外,还可能包含TensorFlow或PyTorch的代码,这两个深度学习框架在处理复杂的神经网络模型时非常有用。 "个人笔记"部分通常会包含作者对课程的理解和解释,可能是对复杂概念的简化,或者是在实践中遇到问题的解决...
自己手写的Unet程序,实现图像到图像的生成,可以帮助小白快速入门
09-14
通过运行和调试代码,你可以逐步掌握模型训练、参数调整等技能,从而深入理解深度学习在图像处理中的应用。 **总结** 综上所述,这个压缩包提供的Unet程序是一个全面的图像到图像生成解决方案,特别适合深度学习...
LSTM小白入门_lstm神经网络_lstm代码_LSTM_LSTM深度神经网络
09-10
1. LSTM的结构与原理: LSTM的核心在于其记忆单元,它由输入门、遗忘门和输出门组成。这些门控机制允许LSTM在网络中习何时存储信息、何时遗忘无用信息,并决定何时输出存储的信息。每个门都有一个sigmoid激活函数...
BP.zip基于Matlab /机器学习小白入门
08-31
通过实践这个BP算法的Matlab实现,你可以深入理解神经网络的工作原理,为进一步深度学习和其他机器学习算法打下坚实的基础。在习过程中,建议结合理论知识和代码实践,不断调整和优化网络,提高预测精度。同时...
《青春有你2》AI机器学习人脸识别测试图片集
04-29
通过这个项目,不仅可以掌握人脸识别的基本原理和流程,还能了解如何利用PaddleHub和PaddlePaddle进行深度学习模型的开发与应用。对于想要提升AI技能的Python小白来说,这是一个非常实用且有趣的实践项目。同时,...
机器学习三部曲,让你从小白到大神
03-30
优化机器学习的核心部分,因为我们需要找到使模型性能最佳的参数。凸优化是解决这类问题的有效方法,尤其在处理大规模和高维度问题时。这部分的习将帮助你理解梯度下降、牛顿法、拟牛顿法等优化算法,并提升模型...
pytorch LBFGS
思维缜密的博客
07-11 3234
pytorch的LBFGS也是一个优化器但是与一般的优化器不同平常我们的顺序是而LBFGS是。
Pytorch优化器全总结(三)牛顿法、BFGS、L-BFGS 含代码
热门推荐
xian0710830114的专栏
01-09 3万+
这篇文章是优化器系列的第三篇,主要介绍牛顿法、BFGS和L-BFGS,其中BFGS是拟牛顿法的一种,而L-BFGS是对BFGS的优化,那么事情还要从牛顿法开始说起。L-BFGS即Limited-memory BFGS。 L-BFGS的基本思想就是通过存储前m次迭代的少量数据来替代前一次的矩阵,从而大大减少数据的存储空间。
优化模型参数,模型集成
Shiraka的博客
08-06 470
前言 前三节我们掌握了模型和数据,这节我们将通过优化数据参数来训练,验证和测试模型。训练模型是一个迭代过程;每次迭代(称为epoch),模型对输出进行预测,计算其预测误差(loss),收集误差相对于其参数的导数,使用梯度下降优化参数 Prerequisite Code 首先从前两节中Datasets & DataLoaders和Build Model部分加载代码 import torch from torch import nn from torch.utils.data import Data
简单介绍神经网络中不同优化器的数原理及使用特性【含规律总结】
Yooooung_Lee的博客
09-12 532
每种优化器都有其适用的场景,具体的选择需要根据问题的特性和实际实验的结果来决定。
327
原创
5251
点赞
4万+
收藏
3615
粉丝
关注
私信
写文章

热门文章

  • 理论加实践,终于把时间序列预测ARIMA模型讲明白了 127977
  • 【Python基础】Matplotlib如何绘制多个子图的几种方法 118284
  • 【Python基础】matplotlib字体设置看这一篇就够了 58612
  • 【Python基础】Python中读取图片的6种方式 56810
  • 【机器学习基础】时间序列测试题的40题,看看你对时间序列的了解水平 55148

最新评论

  • 【深度学习】手把手教你使用CNN进行交通标志识别(已开源)

    2201_75985706: 请问这个path怎么设置呀

  • 紫东太初:自动化所开源图-文-音三模态的预训练大模型

    D.H.591: 请问你有试过他的视觉预训练模型吗

  • 【Python】手把手教你用Python爬取某网小说数据,并进行可视化分析

    2401_87312669: 请问可以分享源代码吗?

  • 【算法基础】数据结构导论第二章-线性表.pptx

    韩冰704: sjjg2

  • 【Python】推荐10个好用到爆的Jupyter Notebook插件,让你效率飞起

    YeyeZi_04: 我的出现的是ModuleNotFoundError: No module named 'notebook.nbextensions',咋整?

最新文章

  • 35岁中年博士失业,决定给找高校教职的后辈一些建议
  • OpenAI震撼发布o1大模型!RL深度思考,技术差距拉开
  • 论读研遇到的极品导师……
2024
09月 40篇
08月 73篇
07月 76篇
06月 72篇
05月 74篇
04月 83篇
03月 80篇
02月 72篇
01月 68篇
2023年896篇
2022年813篇
2021年1087篇
2020年1178篇
2019年332篇
2018年39篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王网站页面优化从哪些方面着手新乡网络网站搭建优化金华网站代码优化网站怎么优化速度中站网站关键词优化方法铜川网站优化排名推广中心网站运营优化建议宣城企业网站排名优化哪家靠谱唐山效果好的网站优化哪家专业武汉网站推广优化公司网站优化霸屏加盟费用推广网站排名SEO优化百度技术英文网站首页优化河北网站优化托管运营浙江网站优化推广收费网站优化核心休宁seo网站优化马鞍山市网站关键词优化哪家靠谱九里堤网站关键词优化魏县网站优化价格南城网站推广优化韶关市网站seo优化多少钱如何优化网站百度收录长沙网站seo优化排名公司大竹县网站seo优化排名咨询师用网站如何优化荆州外包网站优化哪家好高新区网站优化推广新站可以优化老网站吗百度网站SEO优化技术香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化