首页 > 试题广场 >

问题:在深度学习中,通常会finetuning已有的成熟模型

[问答题]

问题:在深度学习中,通常会finetuning已有的成熟模型,再基于新数据,修改最后几层神经网络权值,为什么?

Deep Learning或者说CNN在图像识别这一领域取得了巨大的进步,那么自然我们就想将CNN应用到我们自己的数据集上,但这时通常就会面临一个问题:通常我们的dataset都不会特别大,一般不会超过1万张,甚至更少,每一类图片只有几十或者十几张。这时候,直接应用这些数据训练一个网络的想法就不可行了,因为深度学习成功的一个关键性因素就是大量带标签数据组成的训练集。如果只利用手头上这点数据,即使我们利用非常好的网络结构,也达不到很高的performance。这时候,fine-tuning的思想就可以很好解决我们的问题:我们通过对ImageNet上训练出来的模型(如CaffeNet,VGGNet,ResNet)进行微调,然后应用到我们自己的数据集上。

由于ImageNet数以百万计带标签的训练集数据,使得如CaffeNet之类的预训练的模型具有非常强大的泛化能力,这些预训练的模型的中间层包含非常多一般性的视觉元素,我们只需要对他的后几层进行微调,在应用到我们的数据上,通常就可以得到非常好的结果。最重要的是,在目标任务上达到很高performance所需要的数据的量相对很少

发表于 2019-05-06 17:23:33 回复(0)