首页 > 编程语言 >深度学习的优化算法

深度学习的优化算法

时间:2023-04-12 14:37:29浏览次数:43  
标签:cdot 梯度 beta 下降 学习 算法 深度 优化 SGD

目前,深度学习的优化器以反向传播的梯度下降算法为主流。常见的优化器有如下几种:

  • BGD
  • SGD
  • MBGD
  • Momentum
  • RMSProp
  • AdaGrad
  • Adam

1. 批量梯度下降(Batch Gradient Descent, BGD)

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

3. 小批量随机梯度下降(Mini-batch Gradient Descent, MBGD)

4. SGDM(SGD with Momentum)

SGDM在SGD基础上引入了一阶动量:

\[m_t = \beta_1\cdot m_{t-1}+(1-\beta_1)\cdot g_t \]

SGD-M参数更新公式如下,其中\(\alpha\)是学习率,\(g_t\)是当前参数的梯度

\[\omega_{t+1} = \omega_t - \alpha\cdot m_t = \omega_t-\alpha\cdot\left(\beta_1\cdot m_{t-1}+(1-\beta_1)\cdot g_t\right) \]

一阶动量是各个时刻梯度方向的指数移动平均值,也就是说,\(t\)时刻的下降方向,不仅由当前点的梯度方向决定,而且由此前累积的下降方向决定。\(\beta_1\) 的经验值为0.9,这就意味着下降方向主要是此前累积的下降方向,并略微偏向当前时刻的下降方向。想象高速公路上汽车转弯,在高速向前的同时略微偏向,急转弯可是要出事的。

特点:

因为加入了动量因素,SGD-M缓解了SGD在局部最优点梯度为0,无法持续更新的问题和振荡幅度过大的问题,但是并没有完全解决,当局部沟壑比较深,动量加持用完了,依然会困在局部最优里来回振荡。

5. RMSProp

6. 自适应梯度法(adaptive gradient, AdaGrad)

它通过记录每次迭代过程中的前进方向和距离,从而使得针对不同问题,有一套自适应调整学习率的方法,即不同的参数是需要不同的学习率的。具有损失较大偏导的参数相应地有一个快速下降的学习率,而具有小偏导的参数在学习率上有相对较小的下降。

AdaGrad的效果是:在参数空间中更为平缓的倾斜方向会取得更大的进步(因为平缓,所以历史梯度平方和较小,对应学习下降的幅度较小)。

优点:解决了SGD中学习率不能自适应调整的问题。

缺点:
(1)对于训练深度神经网络模型而言,从训练开始时累积平方梯度值会越来越大,会导致学习率过早和过量的减少,从而导致迭代后期收敛及其缓慢。AdaGrad在某些深度学习模型上效果不错,但不是全部。
(2)需要手动设置全局学习率

7. Adam

标签:cdot,梯度,beta,下降,学习,算法,深度,优化,SGD
From: https://www.cnblogs.com/huxiaohu52/p/17301389.html

相关文章

  • 排序算法
    冒泡排序  letarray=[2,5,3,1,4]functionsort(arr){letres=[]if(!Array.isArray(arr))return[]for(vari=0;i<arr.length;i++){for(varj=i+1;j<arr.length;j++){if(arr[i]>arr[j]){lett......
  • 高空安全带算法实现
    1.项目背景由于项目中用到安全带识别算法,所以进行了比较粗略的安全带识别算法的实现,经过我们的资料查阅发现安全帽的识别算法比较普遍,但是安全带的算法比较少,但也不能说没有,几篇罢了,现将实现过程记录如下;需求:每次传入算法一张图片(或者三维数组),经过算法处理后传出一张图片(或者......
  • 数学建模算法模型--蚁群算法
    ​本文参考蚁群算法学习资料分享:链接:https://pan.baidu.com/s/10rY9OYN0ADfhKDXOK0R4fA?pwd=v09z 提取码:v09z ​编辑蚁群算法(AntColonyOptimization,简称ACO)是一种基于模拟蚂蚁找食物路径行为的元启发式优化算法,常用于求解最优化问题。蚁群算法模拟了蚂蚁在寻找食物时留下......
  • 优化代码的原则?
    集中原则,最短距离原则。就是要让你声明的变量和你使用变量的地方越近越好。聚合性和耦合性是难舍难分的,必须要高内聚,才能达到低耦合。如果一个变量在顶部声明,底部才用,那么肯定不是一个好的写法。如果一个参数传入了这个方法,却在这个方法里面又传入了另一个方法里用,明显非常不合理,......
  • 人工智能技术助力医疗行业实现智能化管理和服务优化
    ​ 人工智能技术已经逐渐渗透到各个领域,医疗行业也不例外。人工智能技术的应用,不仅可以提高医疗服务的效率和质量,还可以为医疗行业带来更多的创新和发展。一、人工智能技术在医疗诊断中的应用人工智能技术可以通过对大量的医疗数据进行分析和处理,帮助医生更准确地进行诊断和治......
  • 四种语言刷算法之相交链表
    力扣160. 相交链表1、C/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*getIntersectionNode(structListNode*headA,structListNode*headB){if(headA==NULL||headB==NU......
  • 光栅化算法-中点画圆算法
    光栅化算法-中点画圆算法中点画圆算法对圆形光栅化时,只需考虑在极坐标下\(\theta\in[\pi/4,\pi/2]\)的点即可,其他的点可通过对称法绘制。将圆形光栅化的算法类似于Bresenham算法。设当前绘制的点的坐标为\(P_{k}(x_{k},y_{k})\),那么下一个点的坐标为\(P_{k+1}(x_{k+1},y_{......
  • 第七篇 手写原理代码 - 对象 【 实现对象的深度拷贝、实现对象的深度对比 】
    在JavaScript中,对象拷贝可以分为浅拷贝和深拷贝两种方式1、浅拷贝浅拷贝只是复制了对象的引用地址,新对象的属性与原对象的属性指向同一块内存地址2、深拷贝深拷贝会完整地复制对象以及其内部所有嵌套对象使用JSON.parse(JSON.stringify())方法进行深拷贝......
  • 复杂网络社区发现算法聚类分析全国电梯故障数据和可视化:诊断电梯“安全之殇”|附代码
    参考原文:http://tecdat.cn/?p=2186最近我们被客户要求撰写关于复杂网络社区发现算法的研究报告,包括一些图形和统计输出。物业工程肩负着维持项目各类设施设备的正常运作,保障全体业主的正常生活,令物业保值升值,是项目的心脏部门。拓端数据(tecdat)研究人员根据全国电梯故障上报汇总......
  • 考虑需求响应和碳交易的综合能源系统日前优化调度模型
    考虑需求响应和碳交易的综合能源系统日前优化调度模型关键词:柔性负荷需求响应 综合能源系统参考:私我仿真平台:MATLAByalmip+cplex主要内容:在冷热电综合能源系统的基础上,创新性的对用户侧资源进行了细致的划分和研究,首先按照能源类型将其分为热负荷需求响应和电负荷需求响......