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开始
相关推荐
大江东去浪淘尽千古风流人物2 小时前
【SLAM新范式】几何主导=》几何+学习+语义+高效表示的融合
深度学习·算法·slam
山岚的运维笔记2 小时前
SQL Server笔记 -- 第20章:TRY/CATCH
java·数据库·笔记·sql·microsoft·sqlserver
Gain_chance2 小时前
33-学习笔记尚硅谷数仓搭建-DWS层交易域用户粒度订单表分析及设计代码
数据库·数据仓库·hive·笔记·学习·datagrip
Eloudy2 小时前
用 Python 直写 CUDA Kernel的技术,CuTile、TileLang、Triton 与 PyTorch 的深度融合实践
人工智能·pytorch
yuanyuan2o22 小时前
【深度学习】全连接、卷积神经网络
人工智能·深度学习·cnn
承渊政道2 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
lpfasd1232 小时前
两个美国:精英的知识崇拜与底层的反智驯化
笔记
清水迎朝阳2 小时前
解锁读书新体验--有声小说书屋 本地网站的 标注笔记功能
笔记·电子书·读书·标注·有声小说
汗流浃背了吧,老弟!2 小时前
BPE 词表构建与编解码(英雄联盟-托儿索语料)
人工智能·深度学习
小瑞瑞acd3 小时前
【小瑞瑞精讲】卷积神经网络(CNN):从入门到精通,计算机如何“看”懂世界?
人工智能·python·深度学习·神经网络·机器学习