【无标题】

深度学习核心概念:学习率与梯度深度解析

导读

学习率(Learning Rate)​梯度(Gradient)​是深度学习模型训练的核心概念,直接影响模型的收敛速度和效果。本文将通过数学公式、可视化比喻和代码实战,带你彻底理解二者的作用与调优技巧。


一、梯度:模型优化的“指南针”

1.1 数学定义

梯度是损失函数对模型参数的偏导数向量:
∇ θ J ( θ ) = [ ∂ J ∂ θ 1 , ∂ J ∂ θ 2 , …   ] \nabla_{\theta} J(\theta) = \left[ \frac{\partial J}{\partial \theta_1}, \frac{\partial J}{\partial \theta_2}, \dots \right] θJ(θ)=[θ1J,θ2J,]

  • $ J(\theta) $:损失函数(如交叉熵、均方误差)
  • $ \theta $:模型参数(权重矩阵、偏置项等)

1.2 直观理解

梯度方向梯度大小
指向损失函数上升最快的方向反映参数对损失的影响程度
示例:简单二次函数

假设损失函数为 $ J(\theta) = \theta^2 $,则梯度计算为:
∇ J = 2 θ \nabla J = 2\theta J=2θ

  • 当 $ \theta = 3 $ 时,梯度为 $ 6 $,参数应向负方向调整(减小 $ \theta $)。

二、学习率:参数更新的“油门”

2.1 参数更新公式

θ new = θ old − η ⋅ ∇ θ J ( θ ) \theta_{\text{new}} = \theta_{\text{old}} - \eta \cdot \nabla_{\theta} J(\theta) θnew=θoldηθJ(θ)

  • $ \eta $:学习率,控制参数调整的步长

2.2 学习率的影响

学习率设置影响可视化比喻
太大参数震荡,无法收敛下山时跨过山谷
合适快速稳定收敛稳步走向最低点
太小收敛慢,卡在局部最优小碎步挪动,耗时极长

三、梯度与学习率的联合作用

3.1 动态关系表

场景梯度大梯度小
学习率太大剧烈震荡,发散风险参数缓慢漂移
学习率合适快速逼近最优解稳定收敛
学习率太小收敛极慢几乎停滞

3.2 代码实战:PyTorch 中的参数更新

import torch

# 定义模型与优化器
model = torch.nn.Linear(10, 1)  # 10维输入,1维输出
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)  # 学习率=0.01

# 模拟输入数据
inputs = torch.randn(5, 10)     # 批量大小=5
labels = torch.randn(5, 1)

# 训练循环
for epoch in range(100):
    optimizer.zero_grad()        # 清空梯度
    outputs = model(inputs)      # 前向传播
    loss = torch.nn.MSELoss()(outputs, labels)
    loss.backward()              # 反向传播计算梯度
    optimizer.step()             # 按学习率更新参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值