Answers:
训练网络的常用方法:
您想训练神经网络对数据集(例如图像集)执行任务(例如分类)。您可以通过随机初始化权重来开始训练。一旦开始训练,权重就会改变,以便以更少的错误(即优化)执行任务。对培训结果感到满意后,就可以将网络的权重保存在某处。
您现在有兴趣训练网络在不同的数据集上执行新任务(例如,对象检测)(例如,图像也与您以前使用的图像不同,但不相同)。您可以使用从前一个网络中保存的权重作为新实验的初始权重值,而无需重复对第一个网络所做的操作并从使用随机初始化的权重进行训练开始。以这种方式初始化权重被称为使用预训练网络。第一个网络是您的预训练网络。第二个是您正在微调的网络。
预训练背后的想法是,随机初始化是...很好...随机,权重的值与您要解决的任务无关。为什么一组值要比另一组好?但是您还会如何初始化权重?如果您知道如何针对任务正确初始化它们,则可以将它们设置为最佳值(略微夸大)。无需训练。您有解决问题的最佳方案。预培训使网络具有领先优势。好像以前看过数据一样。
预训练时要注意什么:
对网络进行预训练的第一个任务可以与微调阶段相同。用于预训练与微调的数据集也可以相同,但也可以不同。有趣的是,如何将对另一个任务和另一个数据集的预训练仍然可以转移到稍有不同的新数据集和新任务上。如果两个任务或两个数据集都有共同点,则使用预训练的网络通常是有意义的。差距越大,预训练的效果就越差。通过首先在财务数据上进行训练来预先训练图像分类网络几乎没有意义。在这种情况下,有太多的断开预训练和微调阶段之间。