finetune模型微调是什么

网络知识 2023-08-01 12:48www.1681989.comseo网站推广
        一.什么是模型调整?
        给出预训练模型(Pre_traed model),基于模型进行调整(Fe Tune)。与重新开始训练相比(Trag a model from scatch),调整可以节省大量的计算资源和计算时间,提高计算效率,甚至提高准确性。
        什么是预训练模型?(Pre-traed Model)?
        (1)预训练模型是用数据训练的模型。
        (2)如今,我们常用的预训练模型是其他人使用的常用模型,如VGG16/19、Res等模型,以及Image等大型数据作为训练集, 训练良好的模型参数,如COCO。
        (3)一般情况下,我们常用的VGG16/19等网络都是别人调整的优秀网络,我们不需要修改其网络架构。
        二、为什么要调整?
        卷积神经网络的核心是
        (1)浅层卷积层获取边缘、轮廊等基本特征。
        (2)深层卷积层获得抽象特征,如整个面部形状。
        (3)根据特征组合对整个连接层进行评分分类。
        一般预训练模型的特点是 以大数据为训练,具备获取浅层基本特征和深层抽象特征的能力。
        结果不做调整 (1)重新开始训练,需要大量的数据来计算时间和资源。 (2)存在模型不收敛、参数不足、准确性低、模型泛化能力低、易过拟合等风险。
        应用调整 (1)有效避免上述可能出现的问题。
        三、在什么情况下调整?
        (1)你想使用的数据类似于预训练模型的数据集。如果不是很相似,比如你使用的预训练参数值是自然景物的照片,你要做面部识别,效果可能不太好。因为面部特征和自然景物特征提取不同,训练后相应的参数值也不同。
        (2)建造或使用自己的CNN模型的准确性太低。
        (3)数据相似,但数据数量太少。
        (4)计算资源过少。
        应用程序调整在不同数据下
        数据1 - 信息量少,但数据相似性高 - 在这种情况下,我们所做的就是修改最终的多层或最终的softmax涂层输出类型。
        数据2 - 信息量少,数据相似性低 - 在这种情况下,我们可以冻结预训练模型的初始层(如k层),重新训练剩余的(n-k)层。由于新数据的相似性较低,根据新数据对较高层进行重新训练具有重要意义。
        数据3 - 数据量大,数据相似性低 - 在这种情况下,我们的神经网络训练可能非常有效,因为我们有一个大数据。,由于我们的数据与训练我们的预训练模型的数据非常不同。应用预训练模型的预测不会有效。,最好根据您的数据重新开始训练神经网络(Trag from scatch)
        数据4 - 数据量大,数据相似性高 - 这是一个理想的情况。在这种情况下,预训练模型应该是最好的。应用模型的最佳方法是保存模型系统架构和模型的原始重量。然后,我们可以使用预训练模型中的重量来训练模型。
        四、调整指导事项
        1.一般做法是切断事先训练好的网络的一层(softmax层),用与我们自身问题相关的新softmax层代替。例如,在Image上预训练的网络中,有1000种softmax涂层。如果我们的任务是对10种类型进行分类,那么网络的新softmax层将由10种类型组成,而不是1000种类型。随后,每个人都在网络上操作事先训练的权重。确保交叉验证的实施,便于网络的良好推广。
        2.应用较小的学习率来培训网络。因为我们预计事先训练的权重比随机初始化的权重要得多,所以我们不想太快地扭曲他们太多。一般的方法是使原始学习率比重新开始训练(Trag from scratch)原始学习率低10倍。
        3. 如果数据数量较少,我们只进来训练一层。如果数据数量中等,冻结预训练网络的前多层权重也是一种常见做法。这是因为前几层涂层捕获了与我们的新问题相关的一般特征,如曲线和边缘。我们希望保持这些权重不变。相反,我们将使网络致力于学习数据在后续深度的特征。

Copyright © 2016-2025 www.1681989.com 推火网 版权所有 Power by