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

模型优化学习笔记—Adam算法

首先复习一下:
  • 动量梯度下降:

1、算出dw、db

2、计算指数加权(移动)平均

vdw = k *vdw + (1-k)*dw

vdb = k *vdb + (1-k)*db

3、梯度下降

w = w - r*vdw
b = b - r*vdb

  • RMSprop:

1、算出dw和db

2、算指数平均值(dw的平方是元素平方)

Sdw = k*Sdw + (1-k)dw^2

Sdb = k * Sdb + (1-k)dw^2

3、梯度下降(其中sqrt表示开平方,u取10^(-8) )

w = w -r * ( dw / sqrt(Sdw+u) )

b = b - r * ( db / sqrt(Sdb+u) )

Adam算法:

假设动量梯度下降,可以在30个epoch能找到最小值,那么RMSprop能在20个epoch中找到,而Adam更厉害,因为它是动量梯度下降和RMSprop的结合体。运算步骤:

1、算出dw、db

2、Vdw = k1 * Vdw + (1-k1) * dw , Vdb = K1 * Vdb + (1-k1) * db,算出指数加权移动平均,即动量梯度下降

3、Sdw = k2 * Sdw + (1-K2) *dw^2, Sdb = k2 * Sdb + (1-k2)*db^2,算出RMSprop

4、Vdw修 = Vdw / (1-k1^t)Vdb修 = Vdb / (1-k1^t),修正动量梯度下降的值

5、Sdw修 = Sdw/ (1-k2^t)Sdb修 = Sdb / (1-k2^t),修正RMSprop

6、w = w -r * (Vdw修) / sqrt(Sdw修 + u) b = b - r * (Vdb修) / sqrt(Sdb修+u)

超参数:r、k1、k2,一般k1和k2取0.9和0.999且很少改变。 调参主要调整学习率。t表示梯度下降的次数,u用来防止除0

这里Adam的理解可以为自适应改变学习率: 虽然表面r没变,但是w=w-rdw,当dw变大,w变小,相当于r变大的效果。起到了与调整r的同样的作用:改变了梯度下降在某个方向的学习速度。


def initialize_adam(parameters):L = len(parameters) // 2v = {}s = {}for l in range(1, L + 1):v[f"dW{l}"] = np.zeros_like(parameters[f"W{l}"])v[f"db{l}"] = np.zeros_like(parameters[f"b{l}"])s[f"dW{l}"] = np.zeros_like(parameters[f"W{l}"])s[f"db{l}"] = np.zeros_like(parameters[f"b{l}"])return v, sdef update_parameters_with_adam(parameters, grads, v, s, t, learning_rate=0.01, beta1=0.9, beta2=0.999, epsilon=1e-8):L = len(parameters) // 2v_corrected = {}s_corrected = {}  # 修正后值for l in range(1, L + 1):# 算出v值,等式左边的为本次计算的新Vdw,等式右边为上次调用update_parameters_with_adam留下的Vdw值,注意不是for循环的上个值哦!for循环里的是多个dW1、dW2...等,别搞混了v[f"dW{l}"] = beta1 * v[f"dW{l}"] + (1 - beta1) * grads[f"dW{l}"]v[f"db{l}"] = beta1 * v[f"db{l}"] + (1 - beta1) * grads[f"db{l}"]v_corrected[f"dW{l}"] = v[f"dW{l}"] / (1 - np.power(beta1, t))v_corrected[f"db{l}"] = v[f"db{l}"] / (1 - np.power(beta1, t))# 算出s值s[f"dW{l}"] = beta2 * s[f"dW{l}"] + (1 - beta2) * np.power(grads[f"dW{l}"], 2)s[f"db{l}"] = beta2 * s[f"db{l}"] + (1 - beta2) * np.power(grads[f"db{l}"], 2)s_corrected[f"dW{l}"] = s[f"dW{l}"] / (1 - np.power(beta2, t))s_corrected[f"db{l}"] = s[f"db{l}"] / (1 - np.power(beta2, t)) # t为梯度下降次数,也就是调用该update_parameters_with_adam()方法的累计次数。parameters[f"W{l}"] = parameters[f"W{l}"] - learning_rate * v_corrected[f"dW{l}"] / np.sqrt(s_corrected[f"dW{l}"] + epsilon)parameters[f"b{l}"] = parameters[f"b{l}"] - learning_rate * v_corrected[f"db{l}"] / np.sqrt(s_corrected[f"db{l}"] + epsilon)return parameters, v, s

相关文章:

模型优化学习笔记—Adam算法

首先复习一下: 动量梯度下降: 1、算出dw、db 2、计算指数加权(移动)平均 vdw k *vdw (1-k)*dw vdb k *vdb (1-k)*db 3、梯度下降 w w - r*vdw b b - r*vdb RMSprop: 1、算出dw和db 2、算指数平均值&am…...

车辆出险报告(h5)-车辆出险记录接口-车辆相关接口

接口简介:通过vin及行驶证查询车辆出险、理赔、事故记录接口。查询成功率99%,返回URL地址的查询报告。 不能对返回的报告进行任何的修改,否则由用户自行承担相应的责任 报告结果只保留30天,如需永久保存,请您查询后自行保存 接口地…...

C基础项目(学生成绩管理系统)

目录 一、项目要求 二、完整代码实例 三、分文件编写代码实例 一、项目要求 1.系统运行,打开如下界面。列出系统帮助菜单(即命令菜单),提示输入命令 2.开始时还没有录入成绩,所以输入命令 L 也无法列出成绩。应提…...

C# 设计模式之原型模式

总目录 前言 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中…...

美林数据Tempo Talents | 两大资源中心,打造开放、成长型数智人才能力平台

在数字化时代的大潮中,高校作为知识与人才培养的重要阵地,独立分散的课程资源管理方式已无法满足现代教育的需求,而数据资源的分散和碎片化也阻碍了科研和教学工作的深入进行。那么,高校如何打造一个集中、高效的课程与数据资源中…...

IDC权威认可!工业领域最佳实践案例!

近日,IDC发布了《工业领域中数据管理分析服务最佳实践案例》报告,总结行业用户在应用过程中面临的主要挑战和实践路径,并评选最佳实践案例,为行业用户提供了相关的指导建议,供市场参考。星环科技中航电梯数据中台项目入…...

未授权访问漏洞系列详解①!

Redis未授权访问漏洞 Redis 默认情况下,会绑定在 0.0.0.0:6379 ,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的…...

第1天:Python基础语法(五)

正文: 在之前的文章中,我们已经学习了Python的基本语法集合和集合的一些常用操作。 在本篇文章中,我们将继续学习其他类型 字符串格式化 使用操作符%s来实现 ➢ 几个%s就几个变量 ➢ 超过一个变量时,需要用元组%(…...

【c++】用C++制作一个简易windows系统

源码&#xff1a; #include <iostream> #include <cstdlib> // 为了使用system #include<limits> void clearScreen() {system("cls"); }void displayMenu() {clearScreen();std::cout << "1.我的文件" << std::endl;std::…...

常见锁策略

目录 1.乐观锁/悲观锁 2.重量级锁/轻量级锁&#xff08;轻量重量是站在加锁开销的角度&#xff09; 3.挂起等待锁/自旋锁 4.公平锁/非公平锁 5.可重入锁与不可重入锁 6.读写锁 synchronized 面试题&#xff1a;是什么偏向锁&#xff1f; 锁的升级&#xff1a; 锁消除&…...

【机器学习】人工神经网络优化方法及正则化技术

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 人工神经网络优化方法及正则化技术1. 引言2. 神经网络优化的基础2.1 损失函数2.…...

Django异步请求和后台管理实战

项目概述 项目实现Ajax异步请求局部刷新使用XAdmin后台模板提供图片上传接口在明细页应用了富文本编辑器在加载图书信息的时候使用LazyLoad&#xff08;图片懒加载&#xff09; # 环境 asgiref3.7.2 crispy-bootstrap32024.1 defusedxml0.7.1 diff-match-patch20230430 Djang…...

大奖放送 | AI编程达人秀视频文章征集大赛来啦!

AI Coding&#xff0c;可以有多少种打开玩法&#xff1f;腾讯云AI代码助手是一款辅助编码工具&#xff0c;基于混元大模型&#xff0c;提供技术对话、代码补全、代码诊断和优化等能力&#xff0c;为你生成优质代码&#xff0c;帮你解决技术难题&#xff0c;提升编码效率。 我…...

最新小猫咪PHP加密系统源码V1.4_本地API接口_带后台

小猫咪PHP加密系统历时半年&#xff0c;它再一次迎来更新&#xff0c;更新加密算法&#xff08;这应该是最后一次更新加密算法了&#xff0c;以后主要更新都在框架功能上面了&#xff09;&#xff0c;适配php56-php74&#xff0c;取消批量加密&#xff08;一些不可控因素&#…...

a bag of bones

以下是根据你提供的内容制作的5道选择题&#xff0c;包括答案和解析&#xff1a; 1. 短语 "a bag of bones" 通常用来描述什么&#xff1f; - A. 一个恐怖片中的角色 - B. 一个非常瘦弱的人 - C. 一个懒惰的人 - D. 一个穿着比基尼的人 答案&#xff1a;B 解析&#…...

XLT高速线缆自动化测试系统

高速线缆自动化测试系统 随着高速通信的快速发展&#xff0c;对于高速数据通信线缆性能要求日益增高&#xff0c;在其硏发、生产阶段&#xff0c;需要多次测试射频性能。传统人工手动测试存在测试环境搭建复杂、测试效率低、耗时长&#xff0c;特别是多次测试中因为人工测试带…...

微软AI业务最新营收数据情况(2024年7月)

Azure AI 年度经常性收入 (ARR)&#xff1a;达到50亿美元客户数量&#xff1a;60,000家平均客户价值 (ACV) 中位数&#xff1a;83,000美元同比增长率&#xff1a;达到了惊人的900% GitHub Copilot 年度经常性收入 (ARR)&#xff1a;达到3亿美元客户数量&#xff1a;77,000家…...

canvas绘制表格

canvas绘制表格 最近在为公司产品做技术预研&#xff0c;经理让用canvas做一个表格&#xff0c;于是就有了这篇博客。 我们的数据是后端通过MQTT推送过来的 我在代码中也直接使用了 具体MQTT的实现代码&#xff0c;可见博客 在vue使用MQTT 在这里为了方便实用我直接封装成组件…...

避免溃坝的关键:渗压计在防洪管理中的作用

防洪管理对于保障人民生命财产安全具有重要意义&#xff0c;而溃坝作为防洪管理中的重大风险之一&#xff0c;其防范工作尤为关键。在防洪管理体系中&#xff0c;渗压计作为一种重要的监测工具&#xff0c;发挥着不可替代的作用。本文将深入探讨渗压计在防洪管理中的作用。 实时…...

品牌建设如何助力中小企业突破生存瓶颈?

品牌&#xff0c;不仅仅是一个标志或商标&#xff0c;更是企业的形象、声誉和信誉的体现。品牌的存在是为了使企业区别于其他竞争对手&#xff0c;树立独特的形象&#xff0c;赢得消费者的认可和信任。 品牌的本质是品牌拥有者的产品、服务或其它优于竞争对手的优势能为目标受…...

从电影字幕到新闻分析:手把手教你构建专属领域语料库

从电影字幕到新闻分析&#xff1a;手把手教你构建专属领域语料库 当我们需要分析某个特定领域的文本时&#xff0c;通用语料库往往难以满足需求。比如你想研究电影对白中的情感表达模式&#xff0c;或者分析地方新闻中的事件关联性&#xff0c;这时候就需要构建自己的专属语料库…...

用Multisim复刻经典24秒篮球计时器:从555时钟到数码管显示的保姆级仿真教程

用Multisim复刻经典24秒篮球计时器&#xff1a;从555时钟到数码管显示的保姆级仿真教程 篮球比赛中那令人窒息的最后24秒倒计时&#xff0c;不仅是球员的决胜时刻&#xff0c;也是电子爱好者眼中完美的数字电路实践案例。本文将带你用Multisim从零搭建一个完整的24秒计时系统&a…...

Flutter 3.24.x项目升级AGP 8.6适配Android 15,我踩过的坑和完整配置清单

Flutter 3.24.x项目升级AGP 8.6适配Android 15实战指南 上周在给公司核心项目做技术栈升级时&#xff0c;我花了整整三天时间才把Flutter 3.24.x项目成功迁移到AGP 8.6并适配Android 15&#xff08;API 35&#xff09;。这过程中踩过的坑比预想中多得多——从Gradle版本冲突到n…...

Legacy iOS Kit终极指南:解锁旧iOS设备的完整控制权

Legacy iOS Kit终极指南&#xff1a;解锁旧iOS设备的完整控制权 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit 在…...

探索光伏 - 电池充电模型:稳定直流输出电压的技术之旅

光伏-电池充电模型&#xff0c;可以很好的稳定直流输出电压 采用最大功率跟踪MPPT算法&#xff0c;通过boost电路输出电压&#xff0c;电池侧采用电压电流PI双闭环控制&#xff0c;通过双向电路给电池充放电 直流侧参考电压为48v在光伏能源领域&#xff0c;确保稳定的直流输出电…...

5大突破让暗黑2单机体验翻倍:PlugY插件全方位应用指南

5大突破让暗黑2单机体验翻倍&#xff1a;PlugY插件全方位应用指南 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 当你第10次因储物箱满被迫丢弃装备时&#xff0c;当…...

终极Windows驱动管理指南:如何用DriverStore Explorer快速释放30GB磁盘空间

终极Windows驱动管理指南&#xff1a;如何用DriverStore Explorer快速释放30GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer DriverStore Explorer&#xff08;简称RAPR&…...

4个维度解析YetAnotherKeyDisplayer:开源实时按键可视化工具全指南

4个维度解析YetAnotherKeyDisplayer&#xff1a;开源实时按键可视化工具全指南 【免费下载链接】YetAnotherKeyDisplayer The application for displaying pressed keys of the keyboard 项目地址: https://gitcode.com/gh_mirrors/ye/YetAnotherKeyDisplayer YetAnothe…...

亚马逊/Shopee关键词排名高就一定好?你可能陷入了“数据幻觉”

关键词排名高只说明“看得见”&#xff0c;不代表“卖得动”&#xff0c;更不等于“值得投”。理论锚点信息经济学信号噪音理论&#xff1a;排名只是表层信号&#xff0c;可能混杂品牌词截流等无关信息。SEO 搜索意图分类&#xff1a;信息型搜索不等于交易型搜索。一、误区揭露…...

实战指南:如何快速解决WebApi在IIS部署中的HTTP 500.19配置错误

1. 遇到HTTP 500.19错误时先别慌 第一次把WebApi部署到IIS服务器就遇到HTTP 500.19错误&#xff0c;相信很多开发者都会心头一紧。这个错误通常伴随着"配置数据无效"的提示&#xff0c;看起来挺吓人&#xff0c;但实际上解决起来并不复杂。我刚开始接触IIS部署时也踩…...