虽然现在应该是已经熟练掌握这些基础概念的时候,但是我是鱼的记忆,上一秒的事情,下一秒就忘了,除非是重要的人的重要的事情,呜呜呜呜,我这个破脑子.
还是写一下吧,直接GPT出来的(人类之光,欢呼~).
以前写过一次,贴一下链接:深度学习模型训练的过程理解(训练集、验证集、测试集、batch、iteration、epoch、单步预测、多步预测、kernels、学习率)
批次(Batch)
- 概念:在训练深度学习模型时,我们通常不会一次性使用所有的数据进行训练,而是将数据集分成小的批次。每个批次包含一定数量的数据样本,这些样本会被同时送入网络进行处理。
- 作用:使用批次可以有效管理内存资源,同时利用并行计算提高效率。此外,批次训练还有助于模型的泛化性能。
迭代(Iteration)
- 概念:迭代是指完成一个批次数据的单次训练过程,包括前向传播和反向传播。
- 作用:每次迭代,模型都会根据批次数据计算损失,然后更新一次参数,以期望减少损失。
周期(Epoch)
- 概念:一个周期指的是整个训练数据集被遍历一次的过程。这意味着所有的数据样本都已经用于训练模型,分成若干批次逐个处理。
- 作用:多个周期的训练可以确保模型有足够的机会学习数据集中的特征,通常需要多个周期的训练来达到较好的学习效果。
前向传播(Forward Propagation)
- 概念:前向传播是指数据从输入层通过隐藏层最终到达输出层的过程,在这一过程中,每一层的节点(神经元)会根据输入数据和当前层的参数(权重和偏置)计算出输出。
- 作用:前向传播的目的是为了得到预测结果,即根据当前的模型参数对输入数据进行预测。
反向传播(Backward Propagation)
- 概念:反向传播是一种用于训练深度学习模型的算法,它通过计算损失函数相对于模型参数的梯度来更新模型的参数。这一过程从输出层开始,逆向通过每一层传播,直至输入层。
- 作用:反向传播的目的是最小化损失函数,即调整模型参数使得模型预测值尽可能接近真实值。
通过这些概念的学习和理解,可以对深度学习的训练过程有一个较为清晰的认识,为深入学习深度学习算法和模型奠定基础。
示例:
通过一个简化的例子来说明这些概念是如何在深度学习训练中一起工作的。
假设我们有一个深度学习任务:使用一个简单的神经网络来识别手写数字(比如,MNIST数据集)。这个数据集包含成千上万的手写数字图片,每张图片都标记有相应的数字(0到9)。我们的目标是训练一个模型,使其能够准确识别出新图片中的数字。
步骤 1: 准备数据并分批
首先,我们将整个数据集分成小的批次。假设我们有60000张图片用于训练,我们可以将这些图片分成大小为100的批次,这样就有600个批次。每个批次包含100张图片及其标签。
步骤 2: 开始训练
我们现在开始进行模型的训练,通常训练会持续多个周期(Epochs)。
第一个周期(Epoch 1)
- 迭代(Iteration):
- 选取第一个批次的100张图片及其标签。
- 前向传播(Forward Propagation):
- 图片数据被送入神经网络。
- 网络通过其当前参数(权重和偏置)计算预测结果。
- 计算损失:
- 使用损失函数(比如,交叉熵损失)来评估预测结果与真实标签之间的差异。
- 反向传播(Backward Propagation):
- 根据损失函数计算相对于每个参数的梯度。
- 使用这些梯度来更新网络的参数,以减少损失。
- 重复以上步骤:
- 对剩余的所有批次重复进行前向传播、计算损失、反向传播和参数更新。
完成所有600个批次后,我们就完成了一个训练周期(Epoch)。在这个过程中,每个批次的数据都用于更新模型,以期望模型对数据集有更好的泛化能力。
接下来的周期(Epoch 2, 3, ...)
- 重复上述过程,每个周期遍历一次整个数据集(所有600个批次)。
- 每个周期结束后,模型的性能通常会有所提高,因为它反复通过数据集学习并调整其参数。
总结
通过多个周期的训练,模型逐步学习识别手写数字的能力。每个周期都包括多次迭代,每次迭代都涉及一个批次的数据,进行前向传播以计算预测结果,计算损失,然后进行反向传播以更新模型参数。这个循环过程使得模型不断接近于目标,最终能够准确识别未见过的手写数字图片。
结束,撒花✿✿ヽ(°▽°)ノ✿.
标签:训练,批次,模型,iteration,传播,propagation,前向,数据 From: https://www.cnblogs.com/ZERO-/p/18097541