Machine learning 预训练卷积神经网络的微调
当我阅读和搜索有关预训练网络的微调的内容时,它是通过以下两个步骤完成的(简而言之):Machine learning 预训练卷积神经网络的微调,machine-learning,neural-network,deep-learning,conv-neural-network,Machine Learning,Neural Network,Deep Learning,Conv Neural Network,当我阅读和搜索有关预训练网络的微调的内容时,它是通过以下两个步骤完成的(简而言之): 冻结隐藏层并解冻完全连接的层并进行训练 解冻两层,然后再次训练 我的问题是: 仅执行第一步是否足够 如果我只执行第一步,它是否与作为特征提取器的网络方法相同 (网络作为特征抽取器的方法是,使用预先训练好的网络提取特征,并使用传统的机器学习分类算法对其进行分类) 如果您需要更多信息来澄清问题,请让我知道。您的问题有一些问题 首先,您清楚地暗示了只有两层的网络,这与当今实际使用微调的方式相差甚远 第二,你在第一个问
如果您需要更多信息来澄清问题,请让我知道。您的问题有一些问题 首先,您清楚地暗示了只有两层的网络,这与当今实际使用微调的方式相差甚远 第二,你在第一个问题中所说的“足够”到底是什么意思
事实上,预先训练的模型、特征抽取器和微调的概念之间有足够的重叠,不同的人甚至可能以不完全相同的方式使用相关术语。斯坦福课程采用的一种方法是把所有这些看作是更一般的叫做“强>转移学习<强”的特殊情况。以下是上述课程各部分中的一个有用的例子,可以说是针对您问题的精神(如果不是文字): 三种主要的迁移学习场景如下所示:
- ConvNet作为固定功能提取器。取一个在ImageNet上预训练的ConvNet,移除最后一个完全连接的层(该层的输出是不同任务(如ImageNet)的1000个等级分数),然后将ConvNet的其余部分视为新数据集的固定特征提取器。在AlexNet中,这将为每个图像计算一个4096-D向量,该图像包含分类器之前隐藏层的激活。我们称这些功能为CNN代码。如果在ImageNet上训练ConvNet期间(通常情况下)也对这些代码进行了阈值化,则这些代码的重新设置(即阈值为零)对性能非常重要。为所有图像提取4096-D代码后,为新数据集训练线性分类器(例如线性SVM或Softmax分类器)
- 微调ConvNet。第二种策略是不仅在新数据集上替换和重新训练ConvNet上的分类器,而且通过继续反向传播来微调预训练网络的权重。可以微调ConvNet的所有层,也可以保持某些早期层固定(由于过度拟合的问题),只微调网络的某些更高级别部分。这是因为观察到ConvNet的早期功能包含更多通用功能(如边缘检测器或颜色斑点检测器),这些功能对许多任务都很有用,但ConvNet的后续层会逐渐变得更具体到原始数据集中包含的类的细节。例如,在包含许多犬种的ImageNet的情况下,ConvNet的很大一部分表现力可能用于区分犬种的特定特征
- 预训练模型。由于现代ConvNet需要2-3周的时间在ImageNet上跨多个GPU进行训练,因此人们通常会为了其他可以使用网络进行微调的人的利益而发布他们的最终ConvNet检查点。例如,Caffe图书馆有一个模型动物园,人们在那里分享网络权重
你的问题有一些问题 首先,你清楚地暗示了