模型优化学习笔记—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 在这里为了方便实用我直接封装成组件…...
避免溃坝的关键:渗压计在防洪管理中的作用
防洪管理对于保障人民生命财产安全具有重要意义,而溃坝作为防洪管理中的重大风险之一,其防范工作尤为关键。在防洪管理体系中,渗压计作为一种重要的监测工具,发挥着不可替代的作用。本文将深入探讨渗压计在防洪管理中的作用。 实时…...
品牌建设如何助力中小企业突破生存瓶颈?
品牌,不仅仅是一个标志或商标,更是企业的形象、声誉和信誉的体现。品牌的存在是为了使企业区别于其他竞争对手,树立独特的形象,赢得消费者的认可和信任。 品牌的本质是品牌拥有者的产品、服务或其它优于竞争对手的优势能为目标受…...
AI赋能5G核心网故障诊断:从PCAP解析到智能根因分析的工程实践
1. 项目概述:当AI遇见5G核心网故障诊断在5G核心网的运维与测试一线干了这么多年,最头疼的莫过于面对海量的PCAP抓包文件。一个复杂的信令流程下来,动辄几千甚至上万个数据包,工程师需要像侦探一样,逐帧审视协议交互&am…...
三十岁想从零转行现实吗?带你分辨真正有前景的好工作
我是29岁那年,完成从转行裸辞副业的职业转型。 如果你把职业生涯看成是从现在开始30岁,到你退休那年,中间这么漫长的30年,那么30岁转行完全来得及…...
QMCDecode终极指南:3步解锁QQ音乐加密格式,实现跨平台音乐自由
QMCDecode终极指南:3步解锁QQ音乐加密格式,实现跨平台音乐自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目…...
光效崩坏?噪点泛滥?色温漂移?——Midjourney专业级光效渲染全流程校准协议,含ACEScg色彩空间适配模板
更多请点击: https://kaifayun.com 第一章:光效崩坏、噪点泛滥与色温漂移的系统性归因诊断 图像采集链路中出现的光效崩坏、噪点泛滥与色温漂移并非孤立现象,而是光学设计、传感器响应、ISP管线调度及环境耦合失配共同作用的结果。三者常呈现…...
千亿镁合金产业集群正在成形:成都、抚州、池州的新版图
一个新赛道的地理坐标 如果要在中国地图上标注一条正在成形的新兴产业集群走廊,高强镁合金这条线,值得被认真画出来。 成都龙泉驿——江西抚州临川——安徽池州高新区,三个坐标,三条生产线,一家公司,两年内…...
Postgresql基础实践教程(八)
⭐️⭐️⭐️⭐️⭐️ 完整数据详见 练习数据免费 ⭐️⭐️⭐️⭐️⭐️ 六十九、查找会员ID 27的向上推荐链 问题 查找会员ID 27的向上推荐链:即推荐该会员的人,以及推荐那个人的人,依此类推。返回会员ID、名字和姓氏。按会员ID降序排列。…...
用Azure Kinect DK和Body Tracking SDK,5分钟实现一个实时人体骨骼点检测Demo(C++版)
5分钟实战:用Azure Kinect DK实现实时人体骨骼点追踪(C版) 当你第一次拿到Azure Kinect DK时,最令人兴奋的莫过于它强大的人体追踪能力。这款深度相机不仅能捕捉高清彩色图像,更能通过AI算法实时重建人体骨骼关节点。本…...
保姆级教程:手把手教你搞定ESXi 6.7安装前的BIOS设置(VT-x/VT-d/AES全开)
从零开始:ESXi 6.7安装前的BIOS设置终极指南当你第一次接触企业级虚拟化平台时,那种既兴奋又忐忑的心情我完全理解。作为过来人,我记得自己第一次在Dell PowerEdge服务器上安装ESXi时,光是搞清楚BIOS里那些晦涩的选项就花了整整一…...
从《吃豆人》到开放世界:聊聊Unity Navigation里Agent Radius和Cost的那些‘潜规则’
从《吃豆人》到开放世界:Unity Navigation中Agent Radius与Cost的隐藏逻辑1980年诞生的《吃豆人》用简单的迷宫路径定义了早期游戏AI的移动规则——幽灵们沿着固定路线巡逻,遇到转角时随机选择方向。这种设计在当时堪称革命性,但以今天的标准…...
Python Android打包终极指南:5个实战技巧解决移动开发痛点
Python Android打包终极指南:5个实战技巧解决移动开发痛点 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android Python-for-Android(简称p4…...
