深度学习中的finetuning是什么?如何理解?
微调是指对模型进行更精细的调整,这是深度学习中常见的训练技巧。微调通常与迁移学习相结合。因为对于普通人来说,我们可以得不到大量的数据,也没有足够好的计算资源供我们使用。。所以我们只能在Imagenet这样的大数据集上使用别人训练过的模型,然后把它们适配到我们需要的特定领域,比如识别动物,衣服等等。这里,需要移植其他人的方法美国模式变成自己的问题是微调。
它是基于这样的思想,通过训练大量的数据,神经网络可以提取数据的浅层特征,比如图片的边缘和纹理。根据神经网络的分层学习过程,通过前几层网络提取这些浅层特征,以便为后面的高级特征提取服务。最后根据任务的需要确定最后几层的输出结果。因此,这为模型迁移的微调带来了契机。我们只需要利用预训练模型前几层提取的浅层特征,根据自己任务的要求,适当调整网络最后几层的结点。结构,可以得到相对较好的训练效果。(下图是任务A的前期训练迁移到任务B,任务B是微调。)
所以微调的好处是显而易见的。首先,你不t不需要自己设计模型结构,可以使用预先训练好的模型,稍作调整。其次,不需要重新训练模型,这将大大缩短训练周期,因为在重新训练模型时,模型的精度往往是从一个很低的值慢慢上升,通过迁移的思想进行微调,只需要较少的训练迭代,就可以得到较好的结果,从而加快训练效率。
Finetuning的意思和他的字面意思一样:微调。深度学习训练模型一般有两种。一种是用各种初始化方法初始化网络参数,然后从零开始训练,称为从零开始训练。一个是在某种对数据集训练的模型进行初始化,用较小的学习率在自己的数据集上进行训练,称为微调。现在,视觉任务一般使用在imagenet或coco上训练的模型作为预训练的身体网络。然后,该模型对自己的数据集进行微调。