对比学习和稳定学习

 

对比学习

 

第一阶段:百花齐放 (18年~19年中)

InstDisc

Instance Discrimination是巨人的肩膀。

 

InvaSpread

Invariant and Spreading可以理解是SimCLR的前身。

问:为什么同样是端到端学习,它没有取得SimCLR那么好的效果呢?

答: MoCo论文反复强调的,负样本最好是足够多。而本文作者是没有TPU的,它的batchsize只有256,意味着它的负样本只有(256-1)x2个。 再加上缺少SimCLR那么强大的数据增广,以及最后提出的mlp projector。

 

CPC

Contrastive Predictive Coding(对比预测编码)用在了生成式的代理任务,是一个很通用的结构。

CMC

Contrastive Multiview Coding

 

第二阶段:CV双雄 (19年中~20年中)

MoCov1

Momentum Contrast动量对比学习

SimCLRv1

Simple Contrastive Learning

MoCov2

只有两页的一个技术报告。

SimCLRv2

SimCLRv2只是论文一个很小的部分,大部分内容在讲如何做半监督。

对比学习只占第三页半页的篇幅。

 

SwAV

Swapping Assignments between Views

 

第三阶段:不用负样本

BYOL

Bootstrap Your Own Latent

(Feature、Hidden、Embedding、Latent都是特征的意思,就是各种花里胡哨的用法而已。)

使用动量编码器,sg表示stop-gradient即detach掉,MLP projector里使用BN层,使用MSE loss,和别的工作一样训练完成后只需留下fθ,其他可以舍弃。

针对BYOL的博客和他们的回应
SimSiam

Simple Siamese (Kaiming团队再次出手)总结性的论文

将所有使用孪生网络(即结构一样、共享参数)

image-20220502214843576

主要是想说明trick全拿掉,照样能训练。论文里还有另外一个表格显示,MoCo v2和SimSiam在下游任务的迁移中效果是最好的。

 

第四阶段:基于Transformer

MoCov3

= MoCo v2 + SimSiam

DINO

 

总结

Youtube

术语

  1. 代理任务(pretext task):一般指大家不太感兴趣的任务,没有实际应用场景,它们的提出主要是为了学习一个好的特征/数据表征。
  2. 自监督学习(self-supervised):实际是无监督学习的一种,但大家一般混着叫,不做区分。

 

底层视觉中的对比学习

contrastive loss 首先通过特征提取器提取 anchor, positive, negative 的特征,然后计算这三部分特征在 latent space 中的距离损失。

一般在超分辨率任务中,anchor,positive,negative 分别指网络重建图像,高分辨率图像,以及低分辨率图像通过 bicubic 上采样的结果。

CL=i=1nλid(ϕi(Yanchor),ϕi(Ypos))d(ϕi(Yanchor),ϕi(Yneg))

where ϕj denotes the intermediate features from the j-th layer. d(x,y) is the L1-distance between x and y, and λj is the balancing weight for each layer.

方式一:用预训练的VGG的第1,3,5,9和13层。但NTIRE的文章发现这样PSNR不升反降。

方式二:文章可视化分析发现 :

深层的特征可以提高真实感知质量方面的性能,因为它提供了更多的语义指导。 来自浅层的特征保留了更准确的细节和纹理,这对于面向 PSNR 的模型至关重要。

由于NTIRE比赛是以PSNR为评价指标,该方法便只利用了VGG浅层。

然后ReLU函数是无界的(导致监督较弱),激活的特征图是稀疏的(导致信息丢失)。以往的做法是选择ReLU前的特征做损失。

该文则使用Tanh替换ReLU。但由于VGG是以ReLU训练的,直接替换效果难以保证。一些工作表明,具有良好架构的随机初始化网络足以捕获感知细节。所以该文构建了一个随机初始化的两层特征提取器:Conv k3s1-Tanh-Conv k3s1。

 

因果推理和稳定学习

背景

现状分析

AI开始涉足越来越多风险敏感的领域(Performance Driven → Risk Sensitive),比如医疗、金融、交通、法律、军事等。

而现在的AI严重缺失可解释性、稳定性(I.I.D假设→OOD)。

一个合理的原因是,AI倚赖“相互关系”(Correlation),而相互关系是很难解释的、不稳定的。

相互关系

以T和Y为例:

因果(Causation)T→Y

混淆(Confounding)X→T and X→Y, Ignoring X

偏差(Sample Selection Bias)T→S and Y→S, Conditional on S

image-20220505175620650

只有因果关系是稳定、可解释的,而混淆与偏差是站不住脚的。

因果关系 定义:保持其他一切不变时,当且仅当改变 T 导致 Y 改变时,T 导致 Y。

T causes Y if and only if changing T leads to a change in Y, while keeping everything else constant.

因果效应 定义:单位T的变化能导致Y变化的量。

将因果关系引入学习的好处:更具可解释性,且更稳定。

因果模型和基于学习的模型
  1. 如何评价因果? 这是个哲学问题。
  2. 真实环境:高维、高噪声、少先验
  3. 不同目标:理解 vs. 预测

如何连接因果模型和基于学习的模型

 

因果推断

第一种范式

结构化图模型,优点是很强的表达能力,缺点是复杂度很高。更偏生成能力。

第二种范式

潜在结果模型,优点是设置简单,缺点是假设太强,假设所有的混淆关系都已知。更偏判别能力。

就是现在药企做的控制变量法,一组吃药,一组吃安慰剂:

因果效应计算:ATE(Average Causal Effect) = E[Y(T=1) - Y(T=0)]

这类实验的黄金法则是:随机实验,比如实验对象分组时采样要随机。即尽量控制混淆效应是一样的。

例子:

image-20220506151410873

如果直接认为这里抽烟起到了作用,那是不对的,因为往往年龄越大的人烦恼越多越倾向于抽烟。

题外话:做实验不能让未成年抽烟。所以该方法①昂贵 ②可能不符合伦理道德 ③可能不现实。

启发:Balancing Confounders' Distribution

范式下的几种方法

X=草坪

T是否有肉鼻子 = 1或0

Y是否是狗狗

  1. Matching(匹配)

    也是平衡混淆关系的分布(Balancing Confounders' Distribution),比如对于肉鼻子的在草坪的动物,都能找到对照组的一个没有肉鼻子的在草坪的动物(对应物)。如果找不到对应物,就丢弃该样本。

    公式化定义:Distance(Xi, Xj) < ε

    也就是保证Confounders近似恒定。

    缺点:① ε设置很小时,可用的数据集会瘦身很小 ② 适合低维设置,但对于高维设置,很难做匹配。

  2. Propensity Score(倾向得分)

    比如一个在草坪的动物有肉鼻子的概率就叫做倾向得分e(X) = P(T=1|X)

    上面我们知道对高维设置很难做匹配,所以这里我们就只对两个倾向得分做匹配。

    不过倾向得分是没法观测到的,我们需要估计。

    我们可以用有监督学习:已知每个样本是否有肉鼻子。所以在草坪的动物有肉鼻子的概率是知道的。

    最终就可以用倾向得分来匹配距离:

    Distance(Xi, Xj) = |e(Xi) - e(Xj)|

    对于一个有肉鼻子的草坪上的动物,可以找对照组的一个没有肉鼻子的在人类怀抱的动物(假设在草坪和在人类怀抱的动物有肉鼻子的概率相同)

  3. Directly Confounder Balancing