对比学习学习记录
SimCLR Framework
- 关键在于定义正负样本
- 判断异同
- 相同的就是正例
- 不同的就是负例
- 让模型学到其中的规律
- 通过encoder对图像提取特征得到一个向量
- 这里的encoder可以是resnet
- 还需要定义相似度的函数
- 计算正负样本之间的距离
- 对于上面的图片
- 首先对图片进行两种随机的数据增强,比如切片或者加上噪声
- 对图片进行数据增强之后得到的是两个正样本xi,xj
- 最后将xi,xj输入Encoder进行特征提取得到hi和Hj
- 针对hi和hj进行MLP得到特征输出zi和zj
- 最后针对zi和zj进行计算余弦相似度 最小化
- 对比学习的batch越大 模型的效果越好
- 数据差异越大 模型学习的效果越好