什么是预训练

181 阅读1分钟

来源:b站up主 去钓鱼的程序猿

什么是预训练

通过了一个已经训练好的模型A,去完成一个小数据量的任务B且使用了模型A的浅层参数。前提是任务A和B极其相似

对于猫狗分类任务:

早期:如果有100张猫和狗的图片,给一张图片,分出是猫还是狗?在早期可能无法解决

当今:如果有人做过在10w张鸭和鹅的图片已经做过分类,用鸭和鹅的分类模型浅层去分类猫狗

为什么?

有人发现,对于CNN实例分析,浅层是通用的(对于人脸、汽车、大象、椅子) 都是一样的 1669640317604.png

例如

 我通过10w个鸭和鹅的图片训练了一个模型A,模型是100层CNN,任务B是:用有100张猫和狗的图片进行分类也用100层CNN(很难实现或精度低),如果我使用A模型的前50层(浅层),使用100层去完成任务B

1669641007175.png

假设模型是已经训练好,利用浅层的参数,深层使用自己的模型

方法:

1. 冻结:对于训练好的模型A的浅层参数且不改变参数

2. 微调:浅层参数会跟着任务B训练而变化