文章目录
参考文章:
SimCLR框架解析
主题:基于对比学习模型SimCLR在开放集检测上进行应用
SimCLR损失函数:
- B : 给定的batch中的图片, B : = { x i } i = 1 B B :=\{x_i\}^B_{i=1} B:={xi}i=1B,论文实现中,Batchsize = 8192
- T:图片的变化形式
- B − i B_{-i} B−i: 表示除了第i个样本之外的其他样本构成的集合。
1. CSI损失函数
1.1 Contrasting shifted instances
对比学习会把图像的不同转换形式transform(旋转、偏移、放大、灰度等等)作为原始图像的正样本(positive samples),但是有的transform形式(如旋转)会让SimCLR的性能下降,可是如果把这种转换形式作为负样本(negative)应用在OOD领域,那么性能又会增加,因此作者在本文中主要讨论哪些transform形式可以提高OOD中的性能。
作者把要探索的可以提高OOD中的性能的transform形式称为为transform家族 S S S
S = { S 0 = I , S 1 , S 2 , … … , S n } , S = \{S_0=I,S_1,S_2,……,S_n\}, S={S0=I,S1,S2,……,Sn}, 其中 I I I代表的是恒等变换,即输入图像保持不变。
作者将增强技术集合S定义为包括恒等变换在内的K个不同变换。恒等变换I在这里起到了特殊的作用,即将原始样本视为内部分布 ( S 0 = I ) (S_0=I) (S0=I),与其他非恒等变换的样本(即分布偏移样本 S ∈ { S 1 , S 2 , … … , S n } S∈\{S_1,S_2,……,S_n\} S∈{S1,S2,……,Sn})进行区分。
contrasting shifted instances (con-SI) loss
1.2 Classifying shifted instances
目的:预测出最有利于生成OOD的transform形式,通过选择合适的转换方式来生成接近但不完全相似的离群数据(OOD)样本——最像“离群数据(OOD)”但又具有语义意义的样本。
引入了一个辅助任务。该辅助任务的目标是预测对于给定的输入x,应用了哪个偏移转换操作 y S ∈ S y^S ∈ S yS∈S,以帮助模型 f θ f_θ fθ区分每个偏移实例。
为了实现这一目标,作者在模型fθ中添加了一个线性层,用于建模辅助任务的softmax分类器 p c l s − S I ( y S ∣ x ) p_{cls-SI}(y^S | x) pcls−SI(yS∣x)。
为了训练这个辅助任务,作者定义了一个称为"classifying shifted instances"(cls-SI)的损失函数。该损失函数计算了辅助分类器在通过SimCLR对原始样本集 B S B_S BS进行增强后得到的批量样本集合 B S ′ B_S' BS′上的损失。
1.3 CSI损失函数
两个部分的损失函数相加,λ > 0 is a balancing hyper-parameter. We simply set λ = 1 for all our experiments.
L C S I = L c o n − S I + λ ⋅ L c l s − S I L_{CSI} = L_{con-SI} + λ · L_{cls-SI} LCSI=Lcon−SI+λ⋅Lcls−SI