sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

本文主要是介绍sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1\sgd

q=q-a*gt

a是学习率  gt是函数的梯度

也就是沿着梯度的反方向得到下降最快的,最快能找到函数的最值

2 Momentum

然后q=q-mt

 

3 RMSprop

 

4 Adam

Adam[6] 可以认为是 RMSprop 和 Momentum 的结合。和 RMSprop 对二阶动量使用指数移动平均类似,Adam 中对一阶动量也是用指数移动平均计算。

然后求解的过程为 

将mt=mt/(1-b1)

vt=vt/(1-b2)

q=q-mt*a/(sqrt(vt+0.000000001))

5  Adam解耦权重衰减

def train_adam_jieou():
    cur_x = 40
    cur_y = 20
    lr = 0.003
    r_x, r_y = 0, 0 #伪代码中的r
    v_x, v_y = 0, 0 #伪代码中的r
    alpha = 0.9
    alpha1 = 0.99
    shuaijian=0.9999
    eps = 1e-16
    track_x = [cur_x]
    track_y = [cur_y]
    for i in range(10):
        grad_x, grad_y = grad(cur_x, cur_y)
        
        r_x = alpha * r_x + (1 - alpha) * (shuaijian*grad_x)
        v_x = alpha1 * v_x + (1 - alpha1) * (shuaijian*grad_x * grad_x)
        r_x =r_x /( 1-alpha )
        v_x =v_x /( 1-alpha1 )
        cur_x =cur_x -(r_x / (np.sqrt(v_x) + eps)) * lr-lr*shuaijian*cur_x
        
        r_y = alpha * r_y + (1 - alpha) * (shuaijian*grad_y)
        v_y = alpha1 * v_y + (1 - alpha1) * (shuaijian*grad_y * grad_y)
        r_y =r_y /( 1-alpha )
        v_y =v_y /( 1-alpha1 )
        cur_y =cur_y- (r_y / (np.sqrt(v_y) + eps)) * lr-lr*shuaijian*cur_y
        
        #r_y = alpha * r_y + (1 - alpha) * (grad_y * grad_y)
        #cur_y -= (grad_y / (np.sqrt(r_y) + eps)) * lr
        track_x.append(cur_x)
        track_y.append(cur_y)
    #print(track_x)
    #print(track_y)
    return track_x, track_y
 

6  adam修正指数移动均值

 

 

 

 

 

 

 

 

这篇关于sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828816

相关文章

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返