什么是神经网络预训练?


22

这个问题说明了一切。

“预训练神经网络”是什么意思?有人可以用简单的英语解释吗?
我似乎找不到与之相关的任何资源。如果有人可以将我指向他们,那就太好了。


www.deeplearningbook.org对该主题进行了很好的介绍。
mnagaraj

Answers:


22

训练网络的常用方法:

您想训练神经网络对数据集(例如图像集)执行任务(例如分类)。您可以通过随机初始化权重来开始训练。一旦开始训练,权重就会改变,以便以更少的错误(即优化)执行任务。对培训结果感到满意后,就可以将网络的权重保存在某处。

您现在有兴趣训练网络在不同的数据集上执行新任务(例如,对象检测)(例如,图像也与您以前使用的图像不同,但不相同)。您可以使用从前一个网络中保存的权重作为新实验的初始权重值,而无需重复对第一个网络所做的操作并从使用随机初始化的权重进行训练开始。以这种方式初始化权重被称为使用预训练网络。第一个网络是您的预训练网络。第二个是您正在微调的网络。

预训练背后的想法是,随机初始化是...很好...随机,权重的值与您要解决的任务无关。为什么一组值要比另一组好?但是您还会如何初始化权重?如果您知道如何针对任务正确初始化它们,则可以将它们设置为最佳值(略微夸大)。无需训练。您有解决问题的最佳方案。预培训使网络具有领先优势。好像以前看过数据一样。

预训练时要注意什么:

对网络进行预训练的第一个任务可以与微调阶段相同。用于预训练与微调的数据集也可以相同,但也可以不同。有趣的是,如何将对另一个任务和另一个数据集的预训练仍然可以转移稍有不同的新数据集和新任务上。如果两个任务或两个数据集都有共同点,则使用预训练的网络通常是有意义的。差距越大,预训练的效果就越差。通过首先在财务数据上进行训练来预先训练图像分类网络几乎没有意义。在这种情况下,有太多的断开预训练和微调阶段之间。


10

预训练/微调的工作方式如下:

  1. 您有机器学习模型。m
  2. 预训练:您有一个数据集,您可以在上面训练。Am
  3. 你有一个数据集。在开始训练模型之前,请使用在上训练的模型初始化某些参数。BmA
  4. 微调:您在上训练。mB

这是转移学习的一种形式。所以,你可以将一些从数据集中获取知识的以数据集。有关更多信息,请参见我的机器学习词汇表,并用很少的单词进行解释。AB


旁注:只有当您(不要)冻结砝码时,人们才可以使用术语微调。我不知道是否有一致的使用这一术语
马丁索玛

4

上面的两个答案很好地解释了。只是想添加关于“深层信任网(DBN)”的预训练的一件微妙的事情。DBN的预训练是无监督学习(即,不带标签的数据),之后的训练是有监督学习(即,不带标签的数据)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.