Fine-turning是啥意思

【Fine-turning是啥意思】 要了解什么是Fine-tuning(微调),就要先提到迁移学习概念。
迁移学习迁移学习(Transfer learning) 顾名思义就是把已训练好的模型(预训练模型)参数迁移到新的模型来帮助新模型训练。考虑到大部分数据或任务都是存在相关性的,所以通过迁移学习我们可以将已经学到的模型参数(也可理解为模型学到的知识)通过某种方式来分享给新模型从而加快并优化模型的学习效率不用像大多数网络那样从零学习。
其中,实现迁移学习有以下三种手段:
Transfer Learning:冻结预训练模型的全部卷积层,只训练自己定制的全连接层。 Extract Feature Vector:先计算出预训练模型的卷积层对所有训练和测试数据的特征向量,然后抛开预训练模型,只训练自己定制的简配版全连接网络。 Fine-tuning:冻结预训练模型的部分卷积层(通常是靠近输入的多数卷积层,因为这些层保留了大量底层信息)甚至不冻结任何网络层,训练剩下的卷积层(通常是靠近输出的部分卷积层)和全连接层。Fine-tuning原理Fine-tuning的原理就是利用已知的网络结构和已知的网络参数,修改output层为我们自己的层,微调最后一层前的若干层的参数,这样就有效利用了深度神经网络强大的泛化能力,又免去了设计复杂的模型以及耗时良久的训练,所以fine tuning是当数据量不足时的一个比较合适的选择。
Fine-tuning意义站在巨人的肩膀上:前人花很大精力训练出来的模型在大概率上会比你自己从零开始搭的模型要强悍,没有必要重复造轮子。 训练成本可以很低:如果采用导出特征向量的方法进行迁移学习,后期的训练成本非常低,用CPU都完全无压力,没有深度学习机器也可以做。 适用于小数据集:对于数据集本身很小(几千张图片)的情况,从头开始训练具有几千万参数的大型神经网络是不现实的,因为越大的模型对数据量的要求越大,过拟合无法避免。这时候如果还想用上大型神经网络的超强特征提取能力,只能靠迁移学习。

参考:https://blog.csdn.net/u013841196/article/details/80919857
■网友
除了逐层无监督预训练后面需要fine-tune,还可以有监督预训练,也可以不逐层,先训个10层,再训练到个15层,最后再搞到20层都可以(详见VGG,具体层数我不记得了Orz)。不过以上方法都已经是历史了。还有一类fine-tune是被应用在transfer learning里,比如分类的模型用在检测里、跟踪里,或者是其他数据集的分类任务中。同时还可以根据具体任务设计不同的损失函数。总而言之,只要分阶段训练,模型稍有不同,都可以叫fine-tune。答得太不规范,为防友人嘲笑,匿了。
■网友
换一个和目标更相近的数据集 + 只更新一部分参数 的 应该都算。
■网友
我不知道,我是来看答案的.......


    推荐阅读