欢迎大家和我一起交流,最后有我的一些看法与见解,可以在下方留言你的看法。
目录
一、对比学习的介绍:
1.对比学习的流行起来原因:
Openai 开创的GPT系列,CLIP等大模型说明,对比学习模型已经成为主流。
2.对比学习的思想:
以SimClR Framrwork论文为例为例(论文思想简单、提取特征效果较好),对输入的一批数据,通过数据加强,再通过encoder+MLP 生成向量,用余弦相似度进行进行二分类(交叉熵)(余弦相似度越小,距离越小,两个是同一样本的概率较大),要么是正样本要么是负样本,通过这样可以训练预训练模型。
3.对比学习的特点:
适用于大模型,大提取,学习能力不受限制,不需要标签,无监督,提取效果近乎近乎有监督的方式,提取能力强。
4.负样本与正样本:
在一个batch中,一张图片(比如说是经过数据加强得到的)与另一张图片(也是经过这张图片通过数据增强得到的)才会是正样本,初次之外,其他都是负样本,尽管是同类型的图片(比如说同类型的猫),而且必须负样本比正样本多,这样的话学习到的特征就比较多,效果就好,一般一个batch(8192),其中有一个正样本,其余都是负样本,但是对计算机硬件要求高。如果全是正样本就会导致模型倒塌。
5.编码器encoder:
可以用resent18 resent 50 然后可以形成向量表示图像(transformer比较通用,可以处理文字、语言、图像)
6.激活函数:
ReLU激活函数
7.batch较大,负样本较多:
这样使用可学习的网路的优势在于避免计算 similarity 的 loss function在训练时丢掉一些重要的feature
于在特征域拉近相似正样本对之间的距离,拉远负样本对的距离。
8.做下游任务:
用编码器处理过的图像,得到的向量特征,来做下游任务;而不用MLP处理过的向量,因为此时向量特征泛化能力较弱。
二、对比学习真的会代替自监督学习吗(学习笔记,欢迎讨论)
他这个训练的正负样本,主要是通过负样本发倔每一个物体的特征,拿猫举例子 如果两张图片中的猫是同一只猫,那么在一个分类任务(猫的种类分类)中 会分类到一起 如果两种猫(因为颜色,大小不同)是一类猫,在分类任务中会分类在一起。总之就是利用负样本充分挖掘正样本的信息(正负样本是相对的),最后可以挖掘batch中每个图片的信息,这样就可以训练出预训练模型。在下游任务中在通过提取到任务的特征与预训练模型的特征进行比较,根据任务不同来做。那这怎样根据不同的任务,来用预训练模型呢?对比学习比自监督学习提取特征能力强吗?对比学习主要区别自监督学习就是里面有正负样本,而监督有掩码自动编码可以减少,冗余性,而对比学习一个batch(8129个图像,以我学习的论文为例子),这样的batch比较大,效果好,但是对硬件资源高,同为不需要人工标签,对比学习提取特征能力强。如果可以解决硬件,就可以解决预训练模型的训练问题。那么是不是对比学习可以替代自监督学习吗?