重新编译会重置模型的权重吗?

问题描述

查看 Daniel Möller 对 this question 的回答,我明白重新编译经过训练的模型不应影响/更改已训练的权重。但是,每当我重新编译我的模型以使用不同的学习率或批次大小对其进行进一步训练时,val_mse 开始时的值比初始训练结束时更高/更差。

虽然最终降低到之前达到的 val_mse,但我不确定重新编译模型是否只是重置模型并重新训练。

有人可以确认重新编译是否真的从头开始重新开始学习过程吗?另外,在模型的初始训练之后使用不同的超参数进行第二阶段的训练是否是一种常见的做法(或者是否有好处)?

解决方法

在第一个训练时期结束时,权重当然会发生变化。您在较早的 epoch 中看到性能下降然后可能在以后改进的一个可能原因是一些优化方法具有随时间适应的内部状态,例如在收敛时减小步长,或增加动量衰减等。 在训练内部state 通常不允许离开模型所在的位置太远,因为它被认为接近最佳状态,所以只尝试微调。当您从头开始训练时,该方法通常会允许更早的步骤以加快早期收敛,因为假设模型远非最佳。在您的情况下,您开始接近最佳状态并允许算法迈出一大步,这可能会使它变得更糟...

如果您不希望这种情况发生,则需要深入研究优化方法的内部结构。这样做是否是个好主意?像往常一样,机器学习没有人能给出所有答案,这取决于许多因素,因此请针对您自己的具体情况尝试看看。