DL之DNN优化技术:DNN优化器的参数优化—更新参数的四种最优化方法(SGD/Momentum/AdaGrad/Adam)的案例理解、图表可视化比较

简介: DL之DNN优化技术:DNN优化器的参数优化—更新参数的四种最优化方法(SGD/Momentum/AdaGrad/Adam)的案例理解、图表可视化比较

优化器案例理解

输出结果

image.png

image.png

image.png

设计思路

image.png


核心代码

#T1、SGD算法

class SGD:

'……'

   def update(self, params, grads):

       for key in params.keys():

           params[key] -= self.lr * grads[key]

#T2、Momentum算法

import numpy as np

class Momentum:

'……'

   def update(self, params, grads):

       if self.v is None:

           self.v = {}

           for key, val in params.items():                                

               self.v[key] = np.zeros_like(val)

       for key in params.keys():

           self.v[key] = self.momentum*self.v[key] - self.lr*grads[key]

           params[key] += self.v[key]

#T3、AdaGrad算法

'……'

     

   def update(self, params, grads):

       if self.h is None:

           self.h = {}

           for key, val in params.items():

               self.h[key] = np.zeros_like(val)

       for key in params.keys():

           self.h[key] += grads[key] * grads[key]

           params[key] -= self.lr * grads[key] / (np.sqrt(self.h[key]) + 1e-7)  

#T4、Adam算法

'……'

     

   def update(self, params, grads):

       if self.m is None:

           self.m, self.v = {}, {}

           for key, val in params.items():

               self.m[key] = np.zeros_like(val)

               self.v[key] = np.zeros_like(val)

       self.iter += 1

       lr_t  = self.lr * np.sqrt(1.0 - self.beta2**self.iter) / (1.0 - self.beta1**self.iter)        

     

       for key in params.keys():

           self.m[key] += (1 - self.beta1) * (grads[key] - self.m[key])

           self.v[key] += (1 - self.beta2) * (grads[key]**2 - self.v[key])

         

           params[key] -= lr_t * self.m[key] / (np.sqrt(self.v[key]) + 1e-7)


相关文章
|
3月前
|
达摩院 开发者 容器
「达摩院MindOpt」优化形状切割问题(MILP)
在制造业,高效地利用材料不仅是节约成本的重要环节,也是可持续发展的关键因素。无论是在金属加工、家具制造还是纺织品生产中,原材料的有效利用都直接影响了整体效率和环境影响。
「达摩院MindOpt」优化形状切割问题(MILP)
|
4月前
|
人工智能 自然语言处理 达摩院
MindOpt 云上建模求解平台:多求解器协同优化
数学规划是一种数学优化方法,主要是寻找变量的取值在特定的约束情况下,使我们的决策目标得到一个最大或者最小值的决策。
|
3月前
|
存储 达摩院 调度
「达摩院MindOpt」优化FlowShop流水线作业排班问题
在企业在面临大量多样化的生产任务时,如何合理地安排流水线作业以提高生产效率及确保交货期成为了一个重要的问题。
「达摩院MindOpt」优化FlowShop流水线作业排班问题
|
9月前
|
达摩院 调度
使用达摩院MindOpt优化交通调度_最大化通行量—线性规划问题
在数学规划中,网络流问题是指一类基于网络模型的流量分配问题。网络流问题的目标是在网络中分配资源,使得网络的流量满足一定的限制条件,并且使得某些目标函数最小或最大化。网络流问题通常涉及一个有向图,图中每个节点表示一个资源,每条边表示资源之间的关系。边上有一个容量值,表示该边上最多可以流动的资源数量。流量从源节点开始流出,经过一系列中间节点,最终到达汇节点。在这个过程中,需要遵守一定的流量守恒和容量限制条件。
|
5月前
|
API Python
MindOpt V1.0优化种植计划问题,新的建模方法
种植计划是指农业生产中针对不同农作物的种植时间、面积和种植方式等方面的规划安排。根据具体情况进行合理的规划和安排,以实现农作物的高产、优质和可持续发展。
MindOpt V1.0优化种植计划问题,新的建模方法
|
9月前
|
达摩院 供应链 JavaScript
网络流:优化仓储物流调度问题-达摩院MindOpt
仓储物流调度是指在物流供应链中,对仓储和运输(运输路线、成本)进行协调和安排的过程。主要包含物流计划、运输调度、运发管理、库存管理等重要环节。随着网络、电商行业的迅速发展,仓储物流调度对于企业来说也非常重要,优秀的调度方案可以帮助降低库存成本、物流配送的效率、成本等等等,从而给企业带来降本增效。
网络流:优化仓储物流调度问题-达摩院MindOpt
|
9月前
|
数据可视化
MindOpt优化如何分散化风险并实现收益与风险最优配比问题
资产配置,投资组合是指通过分散投资资金的方式来规避投资过程中的风险。在实际的投资过程中,如何决定投资哪些产品来实现收益最大化和风险最小化是一个关键的问题。
MindOpt优化如何分散化风险并实现收益与风险最优配比问题
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
7 Papers & Radios | 英伟达把GPT-4塞进我的世界;比Adam快2倍的大模型预训练优化器
7 Papers & Radios | 英伟达把GPT-4塞进我的世界;比Adam快2倍的大模型预训练优化器
114 0
|
11月前
|
人工智能 算法 调度
马腾宇团队新出大模型预训练优化器,比Adam快2倍,成本减半
马腾宇团队新出大模型预训练优化器,比Adam快2倍,成本减半
|
11月前
|
机器学习/深度学习 人工智能 达摩院
MindOpt——优化虚拟电厂智能调度问题(二)
智慧楼宇调度,是在保证社区负荷需求的情况下,通过储能设备的指令控制,以用电经济性、环保性和对电网稳定性为综合目标的一种调度场景。
MindOpt——优化虚拟电厂智能调度问题(二)

热门文章

最新文章