预训练

2024.3.7 预训练

1.预训练 有什么用

机器学习:偏数学(《统计学习方法》-李航)

深度学习(人工智能)的项目:大数据支持(主流)

我们首先介绍下卷积神经网络(CNN),CNN 一般用于图片分类任务,并且CNN 由多个层级结构组成,不同层学到的图像特征也不同,越浅的层学到的特征越通用(横竖撇捺),越深的层学到的特征和具体任务的关联性越强(人脸-人脸轮廓、汽车-汽车轮廓)

猫狗分类问题:100张猫狗照片--》给你一张,分出猫狗

答:无法解决,数据集太少,精度太低,但是可以用已经训练好的模型来解决

  1. 假如 ImageNet有1400w张图片,并且做好了分类标注,通过 ImageNet 数据集我们训练出一个模型 A
  2. 由于上面提到 CNN 的浅层学到的特征通用性特别强,我们可以对模型 A 做出一部分改进得到模型 B(两种方法):
    1. 冻结(Frozen):浅层参数使用模型 A 的参数,高层参数随机初始化,浅层参数一直不变,然后利用领导给出的 30 张图片训练参数
    2. 微调(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的浅层参数,节省训练时间,节省成本)

posted @ 2024-03-09 13:38  adam12138  阅读(113)  评论(0)    收藏  举报