步骤与 num_epochs 之间的区别
Difference between steps and num_epochs
我不明白在任何类型的 ML 代码中使用 steps
和 num_epochs
的必要性。
有些程序同时包含这两个变量。
谁能帮帮我?
据我所知,
在机器学习 (ML) 模型的训练阶段,您的目标通常是最小化成本函数。在监督学习中,您将数据输入模型并将输出与标签进行比较。然后,您将 'step' 朝向成本函数的最小值。也就是说,您计算某种形式的梯度并相应地调整模型的权重。
现在,这个过程可以用不同的方式完成。比如梯度下降,可以做Batch Gradient Descent,Stochastic Gradient Descent,或者Mini-Batch Gradient Descent。在进行批量梯度下降时,您将提供所有示例,计算梯度,然后采取一步,重复此过程 step
次。然而,在随机梯度下降中,您将只提供一个样本,计算梯度,采取一步,重复该过程 step
次,然后再次开始 'n_epochs' 次(在每个 epoch 之前打乱数据)。
因此 step
指的是您采取的步数,n_epoch
指的是您检查数据的次数。有些算法会多次遍历数据(或部分数据),这就是为什么您需要两个变量:step
和 n_epochs
.
假设您有一个大小为 1000 的数据,num_epoch 为 10,步长为 200。在每个纪元,程序将处理每个步长。
因此 epoch 1 -> 200..400..600..800..1000,epoch 2 -> 200..400..600..800..1000 等等每个 epoch.
我不明白在任何类型的 ML 代码中使用 steps
和 num_epochs
的必要性。
有些程序同时包含这两个变量。
谁能帮帮我?
据我所知,
在机器学习 (ML) 模型的训练阶段,您的目标通常是最小化成本函数。在监督学习中,您将数据输入模型并将输出与标签进行比较。然后,您将 'step' 朝向成本函数的最小值。也就是说,您计算某种形式的梯度并相应地调整模型的权重。
现在,这个过程可以用不同的方式完成。比如梯度下降,可以做Batch Gradient Descent,Stochastic Gradient Descent,或者Mini-Batch Gradient Descent。在进行批量梯度下降时,您将提供所有示例,计算梯度,然后采取一步,重复此过程 step
次。然而,在随机梯度下降中,您将只提供一个样本,计算梯度,采取一步,重复该过程 step
次,然后再次开始 'n_epochs' 次(在每个 epoch 之前打乱数据)。
因此 step
指的是您采取的步数,n_epoch
指的是您检查数据的次数。有些算法会多次遍历数据(或部分数据),这就是为什么您需要两个变量:step
和 n_epochs
.
假设您有一个大小为 1000 的数据,num_epoch 为 10,步长为 200。在每个纪元,程序将处理每个步长。 因此 epoch 1 -> 200..400..600..800..1000,epoch 2 -> 200..400..600..800..1000 等等每个 epoch.