当前位置: 首页 > news >正文

new optimizers for dl

学习深度学习可能接触过这几个optimizer: SGD, SGDM(SGD with momentum), adagrad, RMSProp, adam

我们用optimization其实就是去找一组参数可以是loss最小

接下来是一些optimizers的应用:

最常用,也是最好用的两个optim就是adam 和 sgdm,他们之间会有些差别:

如图可见,training时候的loss function和test的时候因为data set的不同,所以会不一样,但相似,如果是flat minimum的话,不会有太大的区别,但是sharp minimum就有很大区别了

 我们想要去优化adam,我们就要看为什么adam不稳定,收敛效果和泛化效果不如sgdm:因为单次更新的最大移动距离受限以及非信息性梯度可能对参数更新产生过大影响,如下图所示

gradient突然变大后,任然根据先前的这个状态去调整 ,被先前的gradient牵着鼻子走,图中的小gradient影响了大的gradient,导致移动的不够多,所以有人提出了这样子的一个策略:amsgrad

max函数会记得之前有过的大的这个vt,在大部分gradient很小的时候也不会忘记看过很大的gradient,但这样也会导致一个问题,就是可能又回到了adagrad遇到的问题,越到后面lr越小,步子越小

所以又有人想要去解决这些问题,让gradient大的时候,lr也不是很小(因为train到后面,lr不是很大,就是很小)

 我们最想要的,就是根据train data 自动调整lr,于是后面就出来了amsgrad,

但是,因为有一个lower bound和一个higher bound,其实我们也无法做到adaptive,无法自动调整这个lr,那么,既然我们没办法去调整adam,我们就转向调整sgdm,sgdm的缺点是比较慢,无法自动调整lr,我们就在想,能不能先找到合适的lr,让它快一点 

一般lr局中的时候,效果会比较好

接下来的这个循环的lr,则是鼓励model不要停留在一个状态,也相当于自动调节lr(gradient大的时候,lr小)

adam需不需要warm up?需要,因为一开始data set可能会导致gradient比较乱,是lr比较不符合预期,所以一开始要让它走的小步一点,虽然得到的值不一定好,但不会暴走

对于上图中的radam,

http://www.xdnf.cn/news/447733.html

相关文章:

  • 在Unity中制作拥有36年历史的游戏系列新作《桃太郎电铁世界》
  • 通过宝塔配置HTTPS证书
  • Python爬虫实战:研究拦截器,实现逆向解密
  • UI 原型设计:交互规则的三要素——重要性、原则与实践
  • 【Liblib】基于LiblibAI自定义模型,总结一下Python开发步骤
  • 小说所有设定(v3.0 preview)
  • Qml自定义组件之车辆风扇展示
  • 【Linux】掌握 setsid:让进程脱离终端独立运行
  • 三种映射方式总结
  • 第二十九节:直方图处理-直方图均衡化
  • ET ProcessInnerSender类(实体) 分析
  • ultralytics中tasks.py---parse_model函数解析
  • 求助求助,重金酬谢
  • Java知识框架
  • AIGC与数字媒体实验室解决方案分享
  • Jmeter对服务端进行压测快速上手
  • 【电路笔记 通信】8B/10B编码 高速数据传输的串行数据编码技术 论文第三部分 The 8B/10B coding map
  • HarmonyOS NEXT 适配高德地图FlutterSDK实现地图展示,添加覆盖物和移动Camera
  • OpenCV CUDA 模块中用于在 GPU 上计算两个数组对应元素差值的绝对值函数absdiff(
  • Flutter 开发入门:从一个简单的计数器应用开始
  • 操作系统-物理结构
  • 【拥抱AI】Deer-Flow字节跳动开源的多智能体深度研究框架
  • MCP:开启AI的“万物互联”时代
  • 网站安全防御
  • 北斗导航 | 接收机自主完好性监测算法综述,1980至2025年(原理,公式,代码)
  • Java版OA管理系统源码 手机版OA系统源码
  • 深入理解卷积神经网络:从基础原理到实战应用
  • 硕士论文用YOLO可以毕业吗?
  • 记录算法笔记(20025.5.14)对称二叉树
  • 码题集——魔数、A的B次方、网球比赛、三角形、点与线段的关系