pytorch深度学习笔记15

目录

摘要

1.Momentum

2.学习率衰减

​​​​​​​等间隔衰减

​​​​​​​指定间隔衰减

​​​​​​​指数衰减


摘要

本篇文章继续学习尚硅谷深度学习教程,学习内容是动量法和学习率衰减

1.Momentum

原始的梯度下降法直接使用当前梯度来更新参数:

而Momentum(动量法)会保存历史梯度并给予一定的权重,使其也参与到参数更新中:

  • :历史(负)梯度的加权和
  • :历史梯度的权重
  • :当前梯度,即
  • :学习率

动量法有时能够减缓优化过程中的震荡,加快优化的速度。因为其会累计历史梯度,也可以有效避免鞍点问题。

Momentum的代码实现如下:

python 复制代码
class Momentum:

    def __init__(self, lr=0.01, momentum=0.9):
        self.lr = lr
        self.momentum = momentum
        self.v = None
        
    def update(self, params, grads):
        if self.v is None:
            self.v = {}
            for key, val in params.items():                                
                self.v[key] = np.zeros_like(val)
                
        for key in params.keys():
            self.v[key] = self.momentum*self.v[key] - self.lr*grads[key] 
            params[key] += self.v[key]

2.​​​​​​​学习率衰减

深度学习模型训练中调整最频繁的当属学习率,好的学习率可以使模型逐渐收敛并获得更好的精度。较大的学习率可以加快收敛速度,但可能在最优解附近震荡或不收敛;较小的学习率可以提高收敛的精度,但训练速度慢。学习率衰减是一种平衡策略,初期使用较大学习率快速接近最优解,后期逐渐减小学习率,使参数更稳定地收敛到最优解。

​​​​​​​等间隔衰减

每隔固定的训练周期(epoch),学习率按一定的比例下降,也称为"步长衰减"。例如,使学习率每隔20 epoch衰减为之前的0.7:

​​​​​​​指定间隔衰减

在指定的epoch,让学习率按照一定的系数衰减。例如,使学习率在epoch达到10,50,200时衰减为之前的0.7:

​​​​​​​指数衰减

学习率按照指数函数进行衰减。例如,使学习率以0.99为底数,epoch为指数衰减:

相关推荐
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
LaughingZhu3 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
风合星语3 天前
2026 具身智能技术实战(一):VLA 到底怎么控制机器人?——用 LeRobot 跑通 SmolVLA 推理
pytorch·机器人·具身智能·vla·lerobot·smolvla
猎头南楼3 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
高洁013 天前
未来三年,AI 落地的五个确定性判断一
人工智能·深度学习·机器学习·transformer·知识图谱
深圳老胡3 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
Tancenter3 天前
sequeeze()和unsequeeze()
pytorch·tensorr
Because_of_Her13 天前
并查集-听课笔记
笔记·算法·并查集
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
陈卫军老师3 天前
陈卫军:把口味写在一张纸上,店才稳得住
经验分享·笔记·流量运营