DINO&PAWS

Self-supervised learning 之DINO和PAWS

一、DINO(self-distillation with no labels)

讲解链接:https://sh-tsang.medium.com/review-dino-emerging-properties-in-self-supervised-vision-transformers-cfddbb4d3549
DINO&PAWS_第1张图片
1.1 整体框架:

  • DINO is inspired from BYOL.
  • In DINO, the model passes two kind of random transformations of an input image to the student network g θ s g_{\theta_{s}} gθs and the teacher network g θ t g_{\theta_{t}} gθt.
  • Both student and teacher networks have the same architecture but different parameters.
  • The output of the teacher network is centered with a mean computed over the batch. Each networks outputs a K dimensional feature denoted by P s P_s Ps and P t P_t Pt, i.e. output probability distributions, which are normalized with a temperature softmax τ s \tau_{s} τs over the feature dimension:
    DINO&PAWS_第2张图片
  • With a fixed teacher, their similarity is then measured with a cross-entropy loss.
    DINO&PAWS_第3张图片
    1.2 损失函数设计
      More precisely, from a given image, a set V of different views is generated. This set contains two global views, xg1 and xg2 and several local views of smaller resolution.
      All crops are passed through the student while only the global views are passed through the teacher, therefore encouraging “local-to-global” correspondences.
  • The loss is minimized:
    DINO&PAWS_第4张图片
  • In practice, the standard setting for multi-crop by using 2 global views at resolution 224² covering a large (for example greater than 50%) area of the original image, and several local views of resolution 96² covering only small areas (for example less than 50%) of the original image.

二、PAWS(semi-supervised learning using limited labeled data)

DINO&PAWS_第5张图片
1.1 整体结构

  • 使用一个large unlabeled数据集和一个small labeled数据集。同时使用两个数据集进行预训练,使用small labeled数据集进行fine-tune.
  • anchor view是large unlabeled dataset中的数据,经过data augmentation生成positive view正样本无标签数据。support samples是对small labeled dataset通过先随机筛选class类别、后在这些类别中分别随机筛选部分样本得到的带标签小样本。
  • 经过相同的映射头 f θ : R 3 × m × n → R d f_\theta:R^{3\times{m}\times{n}}\rightarrow R^{d} fθ:R3×m×nRd ,support samples的映射 z s ( R m × d ) z_s(R^{m\times d}) zs(Rm×d)分别和映射 z 和 z + ( R n × d ) z 和z^{+}(R^{n \times d}) zz+(Rn×d)进行相似度计算,并和support samples中对应的标签 y s ( R m × k ) y_s(R^{m\times k}) ys(Rm×k)相乘得到对k类预测的概率分布 R n × k R^{n\times k} Rn×k
    DINO&PAWS_第6张图片
    其中 d ( a , b ) = e x p ( a T b / ∣ ∣ a ∣ ∣ ∣ ∣ b ∣ ∣ τ ) d(a,b)=exp(a^Tb/||a||||b||\tau) d(a,b)=exp(aTb/∣∣a∣∣∣∣b∣∣τ)

1.2 损失函数设计

  • 增强数据表示的差异

DINO&PAWS_第7张图片

  • 使用交叉熵损失函数 H H H使 p r e d i c t i o n   p 和 t a r g e t   p + prediction\space p和target \space p^{+} prediction ptarget p+之间差异最小化,更新映射参数 f θ 中的 θ f_\theta中的\theta fθ中的θ H ( p ‾ ) H(\overline{p}) H(p)是正则化项
    DINO&PAWS_第8张图片

附录:

一、k-NN
k近邻算法是一种基本分类和回归方法。本篇文章只讨论分类问题的k近邻法。
  K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。(这就类似于现实生活中少数服从多数的思想)根据这个说法,咱们来看下引自维基百科上的一幅图:

DINO&PAWS_第9张图片

  如上图所示,有两类不同的样本数据,分别用蓝色的小正方形和红色的小三角形表示,而图正中间的那个绿色的圆所标示的数据则是待分类的数据。这也就是我们的目的,来了一个新的数据点,我要得到它的类别是什么?好的,下面我们根据k近邻的思想来给绿色圆点进行分类。
  如果K=3,绿色圆点的最邻近的3个点是2个红色小三角形和1个蓝色小正方形,少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。
如果K=5,绿色圆点的最邻近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。

二、听课笔记
  理解深度:总结一个模型的设计历史,怎样一步一步创造出来的。不同时间段读同一篇文章收获不一样。
  这里我引用两个人说的话,一个是杨振宁先生,他说他曾经看到过几千个研究者,有的10年后非常成功,有的却失败了,这并不是因为成功者更聪明,而是因为成功者找到了正确的方向,知道该做什么;还有就是上周看到了祥雨朋友圈分享了一个观点,我觉得还蛮有意思的:真正做一些伟大的东西,往往都需要很好的直觉——不是数学,不是理论推导,而是你根据历史脉络和广度得到的一些思考。带着这样的思考和信念去做科研其实是更简单的:(做科研)其实是一个Easy模式,而不是Hard模式。

你可能感兴趣的:(论文阅读笔记,人工智能,python,深度学习)