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

相关推荐
Canmag 兴隆磁性10 小时前
中大型钕铁硼产品的磁通测量与自动分选:一条产线自动化的工程实现思路
运维·学习·自动化·永磁材料
小黄人软件12 小时前
桌面需要整理吗?有工具自动分类
学习
老衲不用@飘柔13 小时前
SFP与SFP+学习知识整理
学习
X54先生(人文科技)13 小时前
社会嵌入式终身学习机器与修复时代-ELR架构和技术演化探讨
人工智能·深度学习·学习·架构·开源协议
电子云与长程纠缠14 小时前
UE5魂系游戏开发教程05
开发语言·学习·游戏·ui·ue5
syagain_zsx14 小时前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
其实防守也摸鱼14 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
我命由我1234514 小时前
Python 开发 - Python 的 pathlib
java·开发语言·后端·python·学习·java-ee·学习方法