深度学习8:神经网络学习5:随机梯度下降法(基本概念,基本原理)

目录标题

一、基本概念

  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:神经网络类实现和使用

相关推荐
严肃小白兔2 小时前
第 04/24 期:深度学习中的损失函数及其数学解释
人工智能·深度学习
BYSJMG2 小时前
计算机毕业设计选题推荐:【基于深度学习的车辆损坏严重程度评估方法研究】ResNet50 图像分类
人工智能·深度学习·目标检测·机器学习·计算机视觉·分类·课程设计
在所不辞兄3 小时前
为什么在电池供电场景下,不能采用固定电压频率策略,而需要动态调整以最大化 Race-to-Sleep 收益?
人工智能·深度学习·神经网络·机器学习
BYSJMG4 小时前
计算机毕业设计选题推荐|【基于深度学习的电梯电动车违规进入检测研究】YOLO26m+可视化大屏
人工智能·深度学习·神经网络·目标检测·机器学习·计算机视觉·课程设计
盼小辉丶4 小时前
PyTorch强化学习实战(35)——多智能体强化学习
人工智能·pytorch·深度学习·强化学习
li星野1 天前
相位补偿学习记录:把被颅骨“打乱“的声波重新对齐
学习
SJZR1 天前
图解循环神经网络(RNN)
人工智能·rnn·神经网络
Z21-X1 天前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
red_redemption1 天前
自由学习记录(230)
学习
武子康1 天前
H3-World 的动作能按时发生,为何还不能据此判断实时互动?
人工智能·深度学习·agent