神经网络的权重是否在时期之间重置?

数据挖掘 神经网络 训练 毫升 时代
2022-02-13 07:43:19

如果一个epoch被定义为在看到整个训练数据一次之后的神经网络训练过程。为什么在开始下一个 epoch 时,损失几乎总是小于第一个?这是否意味着在一个 epoch 之后神经网络的权重不会重置?每个时代都不是一个独立的训练过程?

3个回答

一个时期不是一个独立的训练过程,所以不,在一个时期完成后权重不会重置。时期仅用于跟踪用于训练网络的数据量。这是一种表示已经完成了多少“工作”的方式。

时期用于比较无论硬件如何训练某个网络需要多长时间。事实上,如果一个网络需要 3 个 epoch 才能收敛,那么无论硬件如何,它都需要 3 个 epoch 才能收敛。如果你使用了时间,那么它的意义就不那么大了,因为一台机器可能在 10 分钟内完成 1 个 epoch,而另一台机器可能只在 45 分钟内完成 1 个 epoch。

神经网络(可悲的是)通常无法通过查看数据一次来学习足够的知识,这就是为什么经常需要多个 epoch 的原因。想一想,就好像你正在学习一门课程的教学大纲。一旦你完成了教学大纲(第一个时期),你再次复习它以更好地理解它(第 2 时期、第 3 时期等)

为什么在开始下一个 epoch 时,损失几乎总是小于第一个?这是否意味着在一个 epoch 之后神经网络的权重不会重置?

是的。网络权重在训练开始前初始化一次。每次迭代后,权重都会通过反向传播使用您从该次迭代中馈送到网络的一批数据中获得的误差梯度进行更新。一旦一个 epoch 完成,权重现在可以更好地针对您的训练数据进行优化,这意味着您可以获得更低的训练损失。下一个 epoch 建立在您在第一个 epoch 之后获得的权重之上,以进一步提高性能。这就是为什么随着网络经过更多时期的训练(假设超参数设置正确),损失将不断减少。

每个时代都不是一个独立的训练过程?

是的。一个时期是训练过程的一部分。您可以通过对网络进行尽可能多的训练来提高网络的性能,以达到所需的性能。

是的,他们不会重置它。他们连续训练同一组重量。

一个 epoch 意味着模型在整个数据集上完成了一次训练。

损失更小,因为模型改进了。