趋近智
训练自编码器,或者说大多数机器学习模型时,学习并非一次性完成。相反,这是一个迭代过程,模型通过多次查看数据来逐步提升表现。您会遇到两个基本术语来描述这种迭代学习的结构:“迭代次数(epochs)”和“批次(batches)”。理解这些将帮助您更好地了解自编码器等模型是如何被有效训练的。
想象您有一本需要学习的大部头教科书,以便学习一个新主题。只读一遍整本书可能不足以完全掌握所有内容。您很可能需要多次阅读,每次可能侧重于不同的方面。
在机器学习中,一个**迭代次数(epoch)**是指对整个训练数据集进行一次完整遍历。如果您的自编码器进行了10个迭代次数,这意味着它已经查看了训练数据中的每个样本10次。每个迭代次数都给模型另一次机会来学习数据中的潜在模式,并调整其内部参数(权重和偏置),以更好地最小化我们之前讨论过的重建误差。通常,模型的训练需要多个迭代次数,因为复杂的模式需要重复的接触模型才能学习到它们。
现在,再次考虑那本大部头教科书。与其尝试一口气读完整本书(这可能让人难以承受且效率低下),您可能会将其分解成章节或部分。您会读一个章节,尝试理解它,然后再进入下一个。
这就是**批次(batches)**发挥作用的地方。一次性处理整个大型数据集在计算上可能要求很高,特别是当您有数百万个数据样本时。它甚至可能无法完全载入您计算机的内存。为了解决这个问题,训练数据集被分成更小、更易于管理的部分,称为批次。
**批次大小(batch size)**是一个批次中包含的训练样本数量。例如,如果您有一个包含1,000张图像的数据集,并将批次大小设置为100,那么您的数据集将被分成 1000/100=10 个批次。
模型一次处理一个批次。处理每个批次后,它会计算损失,然后使用反向传播更新其权重。这意味着模型在一个迭代次数内会进行多次更新。完成一个迭代次数所需的批次数量通常被称为迭代步数(iterations)或每迭代步数(steps per epoch)。在我们有1,000个样本和批次大小为100的例子中,每个迭代次数会有10个迭代步数。
使用批次有以下几个优点:
因此,训练过程通常如下所示:
以下图表说明了数据集在迭代次数和批次中的使用方式:
此图展示了从完整数据集到通过批次处理数据的一个迭代次数,进而通过多个迭代次数进行模型迭代优化的流程。
在训练模型时,选择合适的迭代次数和批次大小是重要的决定。这些常被称为超参数,是您在训练开始前需要配置的设置。
没有普适的最佳值;这些通常取决于特定的数据集和模型架构。通常需要通过实验来找到好的值。随着模型经过多个迭代次数的训练,您通常会观察到重建损失逐渐降低,这表明自编码器在其任务上表现越来越好。
该图表说明了随着模型训练的迭代次数增加,重建损失通常如何降低,显示了自编码器的进步。
通过理解迭代次数和批次,您现在对自编码器训练背后的机制有了更清晰的认识。这种迭代式的改进,即通过多次遍历以可管理的部分处理数据,是这些网络学习压缩和重建信息的基本方式。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造