梯度下降算法的计算过程

1 小批量梯度下降(Mini-Batch Gradient Descent, MBGD)

  • 1.1划分数据集为多个小批量。
  • 1.2前向传播:对于每个小批量中的所有样本进行一次前向传播,得到预测输出。
  • 1.3计算损失:然后计算这些预测输出相对于真实标签的总损失。通常是累加每个样本的损失来完成。
  • 1.4反向传播:执行反向传播以计算当前小批量上损失函数关于模型参数的梯度,这是通过自动微分工具自动完成,它会为每一个参数计算出一个梯度值。
  • 1.5计算平均梯度
    • 前向传播:对于一个给定的小批量(mini-batch),假设包含m个样本。对于每个样本 x i {x}{i} xi,通过前向传播计算出预测值 y i ^ = f ( x i ; θ ) \hat{{y}{i}}=f({x}{i};\theta) yi^=f(xi;θ)。 y i ^ \hat{{y}{i}} yi^是关于样本值和模型参数的函数。
    • 计算损失:基于预定义的损失函数计算预测值和标签值的差异,即损失。损失函数形式为: J ( x i , y i ; θ ) = L ( y i ^ , y i ) J({x}{i},{y}{i};\theta)=L(\hat{{y}{i}}, {y}{i}) J(xi,yi;θ)=L(yi^,yi)。 J J J是关于 ( y i ^ , y i ) (\hat{{y}{i}}, {y}{i}) (yi^,yi)的函数。
    • 反向传播:基于链式法则,从输出层开始,逐层向后计算梯度。具体来说,对于每一层的参数 θ j \theta_{j} θj,计算该参数的梯度 ∇ θ j J ( x i , y i ; θ j ) \nabla_{\theta_{j}}J({x}{i},{y}{i};\theta_{j}) ∇θjJ(xi,yi;θj)
      ∂ L ∂ θ j = ∂ L ∂ y ^ ⋅ ∂ y ^ ∂ θ j \frac{\partial L}{\partial \theta_{j}}=\frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial \theta_{j}} ∂θj∂L=∂y^∂L⋅∂θj∂y^
      由于每个小批量有多个样本,反向传播会得到一组梯度值,最终结果取梯度的平均值。
      ∇ θ j J ˉ = 1 m ∑ i = 1 m ∇ θ j J ( x i , y i ; θ j ) \nabla_{\theta_{j}}\bar{J}=\frac{1}{m}\sum_{i=1}^{m}\nabla_{\theta_{j}}J({x}{i},{y}{i};\theta_{j}) ∇θjJˉ=m1∑i=1m∇θjJ(xi,yi;θj)
    • 参数更新:基于上述计算出的平均梯度更新模型参数。对于每个参数 θ j \theta_{j} θj,按照以下公式进行更新:
      θ j : = θ j − ϵ ∇ θ j J ˉ \theta_{j} :=\theta_{j} - \epsilon\nabla_{\theta_{j}}\bar{J} θj:=θj−ϵ∇θjJˉ,其中 ϵ \epsilon ϵ是模型学习率。

2 带动量的梯度下降

  • 2.1设置学习率 ϵ \epsilon ϵ和动量参数 α \alpha α。
  • 2.2 计算当前小批量的平均梯度
    g = 1 m ∑ i = 1 m ∇ θ j J ( x i , y i ; θ j ) g=\frac{1}{m}\sum_{i=1}^{m}\nabla_{\theta_{j}}J({x}{i},{y}{i};\theta_{j}) g=m1∑i=1m∇θjJ(xi,yi;θj)
  • 2.3 计算速度更新
    ν ← α ν − ϵ g \nu \gets \alpha\nu - \epsilon g ν←αν−ϵg
  • 2.4更新参数
    θ ← θ + ν \theta \gets \theta + \nu θ←θ+ν
相关推荐
YH55269841 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
HyperAI超神经2 小时前
【Triton 教程】triton_language.fdiv
人工智能·深度学习·triton
遥感知识服务3 小时前
从局部阈值、双极化到暗地表剔除:NASA OPERA DSWx-S1全球动态水体算法拆解
大数据·人工智能·深度学习·神经网络·算法·机器学习
晚风醉蝶3 小时前
1-13-TimSort
算法
ZJU_统一阿萨姆3 小时前
【算子开发】算子融合与Softmax_LayerNorm实现
人工智能·算法·语言模型·硬件架构
chunmiao30323 小时前
皮尤研究:ChatGPT 发布后,超三成新网页带 AI 创作痕迹
人工智能·机器学习·chatgpt
jeffsonfu3 小时前
循环神经网络(RNN)详解:处理序列数据的自然选择
人工智能·深度学习
叩码以求索5 小时前
浅谈:前序遍历反转法求解N叉树的后序遍历
算法
Web3&Basketball5 小时前
vLLM部署开源大模型实战:显存、命令与成本核算
人工智能·深度学习·大模型·ai技术·vllm
lancyu5 小时前
关于多轮对话机器人的上下文Token优化和解决方案
人工智能·python·深度学习·机器学习·chatgpt·机器人·prompt