2024.3.7 预训练
1.预训练 有什么用
机器学习:偏数学(《统计学习方法》-李航)
深度学习(人工智能)的项目:大数据支持(主流)
我们首先介绍下卷积神经网络(CNN),CNN 一般用于图片分类任务,并且CNN 由多个层级结构组成,不同层学到的图像特征也不同,越浅的层学到的特征越通用(横竖撇捺),越深的层学到的特征和具体任务的关联性越强(人脸-人脸轮廓、汽车-汽车轮廓)
猫狗分类问题:100张猫狗照片--》给你一张,分出猫狗
答:无法解决,数据集太少,精度太低,但是可以用已经训练好的模型来解决
- 假如 ImageNet有1400w张图片,并且做好了分类标注,通过 ImageNet 数据集我们训练出一个模型 A
- 由于上面提到 CNN 的浅层学到的特征通用性特别强,我们可以对模型 A 做出一部分改进得到模型 B(两种方法):
- 冻结(Frozen):浅层参数使用模型 A 的参数,高层参数随机初始化,浅层参数一直不变,然后利用领导给出的 30 张图片训练参数
- 微调(Fine-Tuning):浅层参数使用模型 A 的参数,高层参数随机初始化,然后利用领导给出的 30 张图片训练参数,但是在这里浅层参数会随着任务的训练不断发生变化
2.预训练是什么
通过一个已经训练好的模型A,去完成一个小数据量的任务B(B使用了A 的浅层参数)
任务A和任务B 相似
3.预训练怎么用
fairseq、transformers库
预训练总结
预先训练
有两个相似的任务A和B,任务A已经完成了得到了一个模型A
-—》任务B(数据量小)
用到了一个特性:CNN浅层参数通用
任务B就可以使用模型A的浅层参数,后面的参数通过任务B训练 可使用的方法:1.冻结(浅层参数不变) 2.微调(浅层参数不变)
或者
任务B(大数据)可以训练出模型B(可以使用模型A的浅层参数,节省训练时间,节省成本)
标签:训练,模型,浅层,任务,参数,CNN From: https://www.cnblogs.com/adam-yyds/p/18062603