好吧,这个问题说明了一切。
“预训练神经网络”是什么意思?有人可以用纯简单的英语解释吗?
我似乎找不到任何与之相关的资源。如果有人能指点我,那就太好了。
好吧,这个问题说明了一切。
“预训练神经网络”是什么意思?有人可以用纯简单的英语解释吗?
我似乎找不到任何与之相关的资源。如果有人能指点我,那就太好了。
训练网络的常用方法:
您想训练神经网络在数据集(例如一组图像)上执行任务(例如分类)。您通过随机初始化权重开始训练。一旦你开始训练,权重就会改变,以便以更少的错误执行任务(即优化)。一旦您对训练结果感到满意,您就可以将网络的权重保存在某处。
您现在有兴趣训练网络以在不同的数据集(例如图像但与您之前使用的不同)上执行新任务(例如对象检测)。您可以使用从前一个网络保存的权重作为新实验的初始权重值,而不是重复您对第一个网络所做的操作并从随机初始化的权重开始训练。以这种方式初始化权重称为使用预训练网络。第一个网络是您的预训练网络。第二个是您正在微调的网络。
预训练背后的想法是随机初始化是......嗯......随机的,权重的值与您尝试解决的任务无关。为什么一组值应该比另一组更好?但是你会如何初始化权重呢?如果您知道如何为任务正确初始化它们,那么您不妨将它们设置为最佳值(有点夸张)。不需要训练任何东西。你有你的问题的最佳解决方案。预训练为网络提供了一个良好的开端。好像它以前见过数据一样。
预训练时要注意什么:
用于预训练网络的第一个任务可以与微调阶段相同。用于预训练和微调的数据集也可以相同,但也可以不同。看到不同任务和不同数据集的预训练如何仍然可以转移到略有不同的新数据集和新任务,这真的很有趣。如果两个任务或两个数据集有共同点,则使用预训练网络通常是有意义的。差距越大,预训练的效果就越差。通过首先对金融数据进行训练来对图像分类网络进行预训练是没有意义的。在这种情况下,预训练和微调阶段之间存在太多脱节。
预训练/微调工作如下:
这是迁移学习的一种形式。所以你可以转移一些从数据集中获得的知识到数据集. 请参阅我的机器学习词汇表,了解更多术语,用几句话解释。
上面的两个答案很好地解释了。只想补充一点关于深度信念网络 (DBN) 的预训练的微妙之处。DBN 的预训练是无监督学习(即没有标记数据),之后的训练是监督学习(即没有标记数据)。