pytorch深度学习笔记16

目录

摘要

1.AdaGrad

2.RMSProp

3.Adam


摘要

本篇文章继续学习尚硅谷深度学习教程,学习内容是AdaGrad,​​​​​​​RMSProp**,**Adam

1.AdaGrad

AdaGrad(Adaptive Gradient,自适应梯度)会为每个参数适当地调整学习率,并且随着学习的进行,学习率会逐渐减小。

  • h:历史梯度的平方和

这里就表示了梯度的平方和,即 ,这里的表示对应矩阵元素的乘法。

使用AdaGrad时,学习越深入,更新的幅度就越小。如果无止境地学习,更新量就会变为0,完全不再更新。

AdaGrad的代码实现如下:

python 复制代码
class AdaGrad:

    def __init__(self, lr=0.01):
        self.lr = lr
        self.h = None
        
    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)

2.​​​​​​​RMSProp

RMSProp(Root Mean Square Propagation,均方根传播)是在AdaGrad基础上的改进,它并非将过去所有梯度一视同仁的相加,而是逐渐遗忘过去的梯度,采用指数移动加权平均,呈指数地减小过去梯度的尺度。

  • h:历史梯度平方和的指数移动加权平均
  • :权重

3.Adam

Adam(Adaptive Moment Estimation,自适应矩估计)融合了Momentum和AdaGrad的方法。

  • :学习率
  • :一次动量系数和二次动量系数
  • :迭代次数,从1开始
相关推荐
疯狂打码的少年10 分钟前
【数据结构】串的模式匹配:KMP算法(重点)
数据结构·笔记·算法
一米阳光866111 分钟前
软考(中级)软件设计师核心笔记(8)数据结构——线性结构、数组、矩阵
数据结构·笔记·职场发展·软考·软件设计师·中级职称
疯狂打码的少年2 小时前
【数据结构】树的基本概念与二叉树定义
java·数据结构·笔记·算法
马上去吃汉堡王2 小时前
Windows11安装Geant4
笔记
气泡水。2 小时前
RHCSA笔记实记
linux·笔记
雨晨源码(同名B站)2 小时前
基于深度学习YoloV11农业病害虫害检测系统 智慧农业信息化综合管理平台 (附源码+lw文档+ppt)
数据库·人工智能·深度学习·yolo·信息可视化
liuyunshengsir2 小时前
从 TVM 到 TileLang:一文读懂深度学习编译器为什么走向 Tile 化
人工智能·深度学习·tvm·tilelang
DM今天肝到几点?3 小时前
英伟达发布 Nemotron 3.5 Lightning:31.6B 参数的“闪电”开源模型,本地智能体的新引擎
人工智能·深度学习·语言模型·开源·知识图谱
云和数据.ChenGuang3 小时前
fastapi项目拆分实战数据模型
java·服务器·数据库·人工智能·深度学习·fastapi·强化学习
祈禾3 小时前
Redis三大特殊数据类型
运维·服务器·数据库·redis·笔记·缓存