☰
深度学习8:神经网络学习5:随机梯度下降法(基本概念,基本原理)
2026/10/24 3:58:34 网站建设 项目流程

目录标题

      • 一、基本概念
      • 二、SGD
      • 三、代码

一、基本概念

  1. Epoch
    1 个 Epoch 表示模型完整遍历一次整个训练数据集的过程。例如,训练 10 个 Epoch 表示模型将整个数据集反复学习 10 次。
    模型需要多次遍历数据集(多个 Epoch)才能逐步学习数据中的模式,单次遍历数据集(1 个 Epoch)通常不足以让模型收敛,多次遍历可以逐步优化模型参数。

  2. Batch Size
    Batch Size 是每次训练时输入的样本数量。例如,Batch Size=32 表示每次用 32 个样本计算一次梯度并更新模型参数。
    小批量数据计算梯度比单样本(Batch Size=1)更稳定,比全批量(Batch Size=全体数据)更高效。并且较小的 Batch Size 可能带来更多噪声,有助于模型泛化。

  3. Iteration
    一次 Iteration 表示完成一个 Batch 数据的正向传播(预测)和反向传播(更新参数)的过程
    例如,数据集现有 2000 个样本,对其训练 10 个 Epoch,选择 Batch Size=64:
    Batch 个数为 2000//64+1=31+1=32 个(最后一个 Batch 仅有 16 个样本)。
    每个 Epoch 中迭代次数 Iteration=32 次。
    总迭代次数为 10×32=320 次。
    总训练样本数为 10×2000=20000。

二、SGD

实际的操作时,一般会从训练数据中随机选择一个小批量数据(mini-batch)分是不是有放回抽取,然后用梯度下降法迭代多个轮次(iteration);这种“对随机选择的数据进行的梯度下降法”,被称作随机梯度下降法(stochastic gradient descent, SGD)。

具体过程如下:

1)随机选择批数据(mini-batch)

从训练数据中随机选出一部分数据,学习的目标就是要减少这个 mini-batch 数据的损失函数值。

2)计算梯度

对当前的各权重参数,计算出梯度的值,负梯度就表示了损失函数减小最多的方向。

3)更新参数

按照之前梯度下降法的公式,对权重参数沿负梯度方向进行微小更新。

4)重复迭代

重复上面的步骤 1)2)3),直到完成预定的总迭代次数。

三、代码

参考下一个blog实现 深度学习9:神经网络学习6:神经网络类实现和使用

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询