本地化网站建设,南昌网站建设方案维护,兰州网站建设公司,做统计的网站1. 迁移学习 Transfer Learning
1.1 Motivation
能在一个任务上学习一个模型#xff0c;然后用其来解决相关的别的任务#xff0c;这样我们在一个地方花的时间#xff0c;学习的一些知识#xff0c;研究的一些看法可以在可以在另外一个地方被使用到#xff1b;在深度学习…1. 迁移学习 Transfer Learning
1.1 Motivation
能在一个任务上学习一个模型然后用其来解决相关的别的任务这样我们在一个地方花的时间学习的一些知识研究的一些看法可以在可以在另外一个地方被使用到在深度学习中我们会训练很多深层的神经网络 训练这些神经网络需要大量带标签数据同时训练的代价非常高。就是说我们很难对每一个任务都去制作一个巨大的数据集去训练。 如果我们在一个任务上训练好的模型能在其他地方使用效果最好。 1.2 Approaches
训练好一个模型然后把它做成一个特征提取的模块例如ResNetVGG16在一个相关的任务上训练好一个模型然后在另一个任务上直接用它训练好一个模型然后对其进行微调使得模型在新的任务上能够适应。
1.3 Related to
半监督学习利用未标记数据帮助带标记数据推进工作zero-shot / few-shot learning极端条件下任务中我们没有样本或者样本很少。对于前者我们必须学习到关于这个新样本特征的映射。对于后者我们可以在 big data sets 上面先学习到一个一般化的映射然后再到少量样本上进行映射的更新或升级多任务学习每一个任务都有自己的数据数据量不够这是前提。但每个任务之间是相关的那么可以将所有的数据放在一起然后同时训练多个任务任务之间互相收益。
2. Applications in CV
2.1 转移知识 Transferring Knowledge datasetImageNetCar-datasetMnistexamples1.2M50K60Kclasses100010010
存在许多大规模的已经标注好的CV数据集通常自己任务的数据集会比大的数据集例如ImageNet小很多。正常情况下在不知道模型效果如何的情况下我们是慢慢投入数据。如果效果好就继续投入这是一个迭代的过程。
2.2 预训练 Pre-trained 对于一般的神经网络我们可以把它分成两部分一部分叫编码器做特征提取将原始图片的原始像素转化在一个语义空间中可以线性可分的一些特征另一部分叫解码器简单的线性分类器将编码器的表示映射成想要的标号或者是做一些决策。
预训练模型 在一个比较大的数据集上训练好一个模型具有一定的泛化能力放在新的任务上或者新的数据集上原模型多多少少有点效果。举个例子一个解决分类的神经网络模型即使最后它完成的是分类问题但在网络的前面几层它还是学会了如何去处理图片像素的信息。 2.3 微调 Fine-Tuning 微调是怎么做的
在新的任务上构建一个新的模型但新模型的架构要跟与训练的模型架构一致;在找到合适的预训练模型之后要初始化我们的模型将预训练模型中除了最后一层之外的权重都复制给自己的模型最后一层还是用随机的权重。在初始化后就可以开始学习了这步跟我们平常的学习没有什么区别。有一点另外的就是要限制fine-tuned的学习率。这是因为初始的结果已经是比较好了即预训练已经取得不错的效果已经在想要“解”的附近了限制学习率的做法可以使得我们不会走太远另外就是说不要训练太长的时间。限制搜索空间。
2.4 固定最底层 Freeze Bottom Layers
关于神经网络我们通常认为它是一个层次化的学习过程。最底层一般是学习了底层的一些特征表示随着层数越来越高它多多少少会学习到更全局上、语义上的东西。所以一般来说底层与它上面的层没有太大的关系。 固定多少层还是要根据具体应用来看假设应用与预训练模型差别比较大的话可以多训练一些层。 2.5 如何寻找预训练模型 首先要去有没有我们想要的其次是看它是基于哪种训练集上训练出来的。ModelHub、ModelZoom。
2.6 fine-tuning 的一些应用 3. 总结 预训练模型是基于大数据集上训练的任务通常是图片分类除最后底层的权重要随机初始化外前面层数的权重都直接采用预训练模型上已经训练好的权重。微调的话需要采用小的学习率进行调整因为这样会加速收敛。有的时候会提升精度有时也不会但通常情况下不会变差。在CV中是经常被推荐的做法。 by: 沐神