我目前正在尝试使用卷积神经网络学习一次性学习。根据这个视频,我使用的 CNN 应该已经在 MNIST 上进行了预训练。为什么必须对 CNN 进行预训练?
用于一次性学习的预训练 CNN
数据挖掘
美国有线电视新闻网
极简主义
2021-09-18 16:55:08
2个回答
因为 CNN 中的层必须已经能够从图像中提取特征。
通常这个过程需要数千次迭代才能完成,所以如果它们没有经过训练,我们就不可能有一次性学习的概念。
没有什么比对 MNIST 数据进行预训练更好的了。
您可以采用任何高级 CNN 架构,然后在数据集上微调网络。为了执行一次性学习,必须进行微调或训练,因为这将调整您的模型以仅理解和强调模型已经训练过的图像。
为简化起见,经过面部训练的网络将能够仅识别图像中其他对象的面部特征,这是生成嵌入所必需的。
在one-shot learning中,网络尝试通过图像数据通过网络的前向传播来生成嵌入。生成的嵌入必须只强调图像的所需部分,而不是图像数据中无用的数据。在这种情况下,选择能够选择图像中需要强调的特征的预训练模型。
让我们尝试通过示例人脸识别系统来理解它。在这种情况下,我们需要一个已经用人脸图像训练过的模型,这样每当我们尝试创建新的嵌入时,模型必须知道它必须将权重集中在人脸而不是图像中的噪声上. 因此,当生成嵌入时,脸部的一部分是集中的,因此嵌入之间的余弦距离可以最小化,以唯一地识别 2 个图像之间的接近度。
您可以在Andrew Ng的这段视频中更好地了解这样的网络。
其它你可能感兴趣的问题