SimCLR 的损失函数
时间: 2023-09-14 10:09:31 浏览: 85
损失函数为Cross entropy的手写数字识别神经网络代码与实现
SimCLR的损失函数包含两部分:正样本对比损失和负样本对比损失。
正样本对比损失是通过对同一张图片进行不同的数据增强得到的两个样本的特征向量来计算的。具体地,设$x$为一张图片,$t$为一种数据增强方式(如随机裁剪、颜色扭曲等),$f(\cdot)$为特征提取函数,则正样本对比损失的计算方式如下:
$$
l_{i,j}=-\log\frac{\exp(\operatorname{sim}(f(x_i^t),f(x_j^t))/\tau)}{\sum_{k=1}^{2N}\mathbb{1}_{[k\neq i]}\exp(\operatorname{sim}(f(x_i^t),f(x_k))/\tau)}
$$
其中,$i$和$j$是同一张图片$x$通过不同的数据增强方式$t$得到的两个样本,$N$是样本数量,$\tau$是温度参数,$\operatorname{sim}(\cdot,\cdot)$是相似度度量函数,通常使用余弦相似度。
负样本对比损失是通过将一张图片的特征向量与其他不同图片的特征向量进行对比来计算的。具体地,设$x$为一张图片,$f(\cdot)$为特征提取函数,则负样本对比损失的计算方式如下:
$$
l_{i,j}=-\log\frac{\exp(\operatorname{sim}(f(x_i),f(x_j))/\tau)}{\sum_{k=1}^{2N}\mathbb{1}_{[k\neq i]}\exp(\operatorname{sim}(f(x_i),f(x_k))/\tau)}
$$
其中,$i$和$j$是不同的图片,$N$是样本数量,$\tau$是温度参数,$\operatorname{sim}(\cdot,\cdot)$是相似度度量函数,通常使用余弦相似度。
通过最小化正样本对比损失和负样本对比损失,SimCLR模型可以学习出一个高质量的特征表示。
阅读全文