用于一次性学习的预训练 CNN

数据挖掘 美国有线电视新闻网 极简主义
2021-09-18 16:55:08

我目前正在尝试使用卷积神经网络学习一次性学习。根据这个视频,我使用的 CNN 应该已经在 MNIST 上进行了预训练。为什么必须对 CNN 进行预训练?

2个回答

因为 CNN 中的层必须已经能够从图像中提取特征。

通常这个过程需要数千次迭代才能完成,所以如果它们没有经过训练,我们就不可能有一次性学习的概念。

没有什么比对 MNIST 数据进行预训练更好的了

您可以采用任何高级 CNN 架构,然后在数据集上微调网络。为了执行一次性学习,必须进行微调或训练,因为这将调整您的模型以仅理解和强调模型已经训练过的图像。

为简化起见,经过面部训练的网络将能够仅识别图像中其他对象的面部特征,这是生成嵌入所必需的。

one-shot learning中,网络尝试通过图像数据通过网络的前向传播来生成嵌入。生成的嵌入必须只强调图像的所需部分,而不是图像数据中无用的数据。在这种情况下,选择能够选择图像中需要强调的特征的预训练模型。

让我们尝试通过示例人脸识别系统来理解它。在这种情况下,我们需要一个已经用人脸图像训练过的模型,这样每当我们尝试创建新的嵌入时,模型必须知道它必须将权重集中在人脸而不是图像中的噪声上. 因此,当生成嵌入时,脸部的一部分是集中的,因此嵌入之间的余弦距离可以最小化,以唯一地识别 2 个图像之间的接近度。

您可以在Andrew Ng的这段视频中更好地了解这样的网络。