模型优化学习笔记—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系统
源码: #include <iostream> #include <cstdlib> // 为了使用system #include<limits> void clearScreen() {system("cls"); }void displayMenu() {clearScreen();std::cout << "1.我的文件" << std::endl;std::…...

常见锁策略
目录 1.乐观锁/悲观锁 2.重量级锁/轻量级锁(轻量重量是站在加锁开销的角度) 3.挂起等待锁/自旋锁 4.公平锁/非公平锁 5.可重入锁与不可重入锁 6.读写锁 synchronized 面试题:是什么偏向锁? 锁的升级: 锁消除&…...

【机器学习】人工神经网络优化方法及正则化技术
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 人工神经网络优化方法及正则化技术1. 引言2. 神经网络优化的基础2.1 损失函数2.…...

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

大奖放送 | AI编程达人秀视频文章征集大赛来啦!
AI Coding,可以有多少种打开玩法?腾讯云AI代码助手是一款辅助编码工具,基于混元大模型,提供技术对话、代码补全、代码诊断和优化等能力,为你生成优质代码,帮你解决技术难题,提升编码效率。 我…...

最新小猫咪PHP加密系统源码V1.4_本地API接口_带后台
小猫咪PHP加密系统历时半年,它再一次迎来更新,更新加密算法(这应该是最后一次更新加密算法了,以后主要更新都在框架功能上面了),适配php56-php74,取消批量加密(一些不可控因素&#…...
a bag of bones
以下是根据你提供的内容制作的5道选择题,包括答案和解析: 1. 短语 "a bag of bones" 通常用来描述什么? - A. 一个恐怖片中的角色 - B. 一个非常瘦弱的人 - C. 一个懒惰的人 - D. 一个穿着比基尼的人 答案:B 解析&#…...

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

微软AI业务最新营收数据情况(2024年7月)
Azure AI 年度经常性收入 (ARR):达到50亿美元客户数量:60,000家平均客户价值 (ACV) 中位数:83,000美元同比增长率:达到了惊人的900% GitHub Copilot 年度经常性收入 (ARR):达到3亿美元客户数量:77,000家…...

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

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

品牌建设如何助力中小企业突破生存瓶颈?
品牌,不仅仅是一个标志或商标,更是企业的形象、声誉和信誉的体现。品牌的存在是为了使企业区别于其他竞争对手,树立独特的形象,赢得消费者的认可和信任。 品牌的本质是品牌拥有者的产品、服务或其它优于竞争对手的优势能为目标受…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...