CONTRASTIVE REPRESENTATION DISTILLATION

Tian Y., Krishnan D., Isola P. CONTRASTIVE REPRESENTATION DISTILLATION. arXiv preprint arXiv 1910.10699, 2019.

感觉其和的相似度有50%, 不过这篇写得早一点, 所以后者是借鉴了这篇文章? 这篇文章总的来说就是将distillation 和 contrastive learning 结合起来.

主要内容

在这里插入图片描述

思想便是, 希望 f S ( x i ) f^S(x_i) fS(xi)靠近 f T ( x i ) f^T(x_i) fT(xi), 而 f S ( x j ) f^S(x_j) fS(xj)远离 f T ( x i ) f^T(x_i) fT(xi). 定义
S : = f S ( x ) , T : = f T ( x ) . S:=f^S(x), \quad T:= f^T(x). S:=fS(x),T:=fT(x).
假设源于同一样本的联合分布 P ( S , T ∣ C = 1 ) P(S,T|C=1) P(S,TC=1) P 1 ( S , T ) P_1(S,T) P1(S,T), 而源于不同样本的联合分布 P ( S , T ∣ C = 0 ) P(S,T|C=0) P(S,TC=0) P 0 ( S ) P 0 ( T ) P_0(S)P_0(T) P0(S)P0(T). 则我们很自然地希望最大化互信息:
I ( S , T ) = E P 1 ( S , T ) log ⁡ P 1 ( S , T ) P 0 ( S ) P 0 ( T ) . I(S,T)= \mathbb{E}_{P_1(S,T)} \log \frac{P_1(S,T)}{P_0(S)P_0(T)}. I(S,T)=EP1(S,T)logP0(S)P0(T)P1(S,T).

接下来就是负采样和对比学习的东西了, 假设数据集是如此构造的: 一个特征 T T T, 以及N+1个特征 { S , S 1 , … , S N } \{S,S_1,\ldots, S_N\} {S,S1,,SN}, 其中 S , T S,T S,T构成正样本对(即来源于同一个样本, 其余 S i , T S_i,T Si,T构成负样本对. 则我们有先验
P ( C = 1 ) = 1 N + 1 , P ( C = 0 ) = N N + 1 . P(C=1)=\frac{1}{N+1}, P(C=0)=\frac{N}{N+1}. P(C=1)=N+11,P(C=0)=N+1N.
于是便有
P ( C = 1 ∣ T , S ) = P 1 ( T , S ) P 1 ( T , S ) + N P 0 ( T ) P 0 ( S ) , P(C=1|T,S)=\frac{P_1(T,S)}{P_1(T,S)+NP_0(T)P_0(S)}, P(C=1T,S)=P1(T,S)+NP0(T)P0(S)P1(T,S),

log ⁡ P ( C = 1 ∣ T , S ) = − log ⁡ ( 1 + N P 0 ( T ) P 0 ( S ) P 1 ( T , S ) ) ≤ − log ⁡ N + log ⁡ P 1 ( T , S ) P 0 ( T ) P 0 ( S ) . \begin{array}{ll} \log P(C=1|T,S) &= -\log (1+N\frac{P_0(T)P_0(S)}{P_1(T,S)}) \\ & \le -\log N + \log \frac{P_1(T,S)}{P_0(T)P_0(S)}. \end{array} logP(C=1T,S)=log(1+NP1(T,S)P0(T)P0(S))logN+logP0(T)P0(S)P1(T,S).
两边关于 P 1 ( T , S ) P_1(T,S) P1(T,S)求期望可知
I ( T , S ) ≥ log ⁡ N + E P 1 ( T , S ) log ⁡ P ( C = 1 ∣ T , S ) . I(T,S) \ge \log N + \mathbb{E}_{P_1(T, S)} \log P(C=1|T,S). I(T,S)logN+EP1(T,S)logP(C=1T,S).

但是 P ( C = 1 ∣ T , S ) P(C=1|T,S) P(C=1T,S)未知, 故作者采用 h ( T , S ) h(T,S) h(T,S)去拟合, 通过极大似然估计
L c r i t i c ( h ) = E P 1 ( T , S ) log ⁡ h ( T , S ) + N E P 0 ( T , S ) log ⁡ ( 1 − h ( T , S ) ) . \mathcal{L}_{critic}(h)= \mathbb{E}_{P_1(T,S)} \log h(T,S) + N \mathbb{E}_{P_0(T,S)}\log (1-h(T,S)). Lcritic(h)=EP1(T,S)logh(T,S)+NEP0(T,S)log(1h(T,S)).
只要 h h h的拟合能力够强, 最后便能很好的逼近 P ( C = 1 ∣ T , S ) P(C=1|T,S) P(C=1T,S). 设其最优解为 h ∗ h^* h. 但是需要注意的一点是, h ∗ h^* h T , S T, S T,S有关系, 则其隐式地和 f S f^S fS有关系, 而 f S f^S fS又需要
max ⁡ f S E P 1 log ⁡ h ∗ ( T , S ) , \max_{f^S} \mathbb{E}_{P_1} \log h^*(T,S), fSmaxEP1logh(T,S),
所以这就成了一个交替迭代的过程. 作者就另辟蹊径, 既然
I ( T , S ) ≥ log ⁡ N + E P 1 ( T , S ) log ⁡ h ∗ ( T , S ) + N E P 0 ( T , S ) log ⁡ ( 1 − h ∗ ( T , S ) ) ≥ log ⁡ N + E P 1 ( T , S ) log ⁡ h ( T , S ) + N E P 0 ( T , S ) log ⁡ ( 1 − h ( T , S ) ) . \begin{array}{ll} I(T,S) &\ge \log N + \mathbb{E}_{P_1(T,S)} \log h^*(T,S) + N \mathbb{E}_{P_0(T,S)}\log (1-h^*(T,S)) \\ & \ge \log N + \mathbb{E}_{P_1(T,S)} \log h(T,S) + N \mathbb{E}_{P_0(T,S)}\log (1-h(T,S)). \end{array} I(T,S)logN+EP1(T,S)logh(T,S)+NEP0(T,S)log(1h(T,S))logN+EP1(T,S)logh(T,S)+NEP0(T,S)log(1h(T,S)).

便不妨共同优化 f S , h f^S, h fS,h.

注: 第二个不等式成立, 因为 h ( T , S ) ∈ [ 0 , 1 ] h(T,S) \in [0, 1] h(T,S)[0,1], 故第二项非正.

文中取的 h h h
h ( T , S ) = e g T ( T ) ′ g S ( S ) / τ e g T ( T ) ′ g S ( S ) / τ + N M , h(T,S)=\frac{e^{g^T(T)'g^S(S)/\tau}}{e^{g^T(T)'g^S(S)/\tau} + \frac{N}{M}}, h(T,S)=egT(T)gS(S)/τ+MNegT(T)gS(S)/τ,
其中, g g g为一线性变换, τ \tau τ为temperature, M M M为整个数据集的大小.

超参数的选择

CIFAR100:
N: 16384
τ \tau τ: 0.1

代码

原文代码

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 对比表示蒸馏(Contrastive Representation Distillation)是一种用于模型压缩的技术,它通过将教师模型的表示与学生模型的表示进行对比来训练学生模型。这种方法可以帮助学生模型学习到更加紧凑和有效的表示,从而提高模型的性能和效率。对比表示蒸馏已经在自然语言处理、计算机视觉和语音识别等领域得到了广泛的应用。 ### 回答2: 对比表示蒸馏是一种用于将复杂的神经网络模型(例如BERT)的表示蒸馏成更简单的模型(例如RoBERTa)的技术。这种技术的主要目的是去除复杂模型中的冗余信息,使得模型的体积更小、速度更快,并且在一定程度上提高模型的可解释性。同时,采用对比表示蒸馏还可以优化模型的泛化性能,使得模型更容易应用在新的任务上。 对比表示蒸馏采用的方法是将原始模型的表示和简单模型的表示进行比较,通过比较可以确定哪些信息是冗余的,可以将其从模型中去除。对比表示蒸馏有很多种方法,例如基于知识蒸馏的方法和基于自适应加权的方法等。其中,基于知识蒸馏的方法是将原始模型的表示作为“知识”传递给简单模型,再通过损失函数来训练简单模型。而基于自适应加权的方法则是将两个模型的表示进行融合,并且通过加权的方式来控制不同模型的影响。 总的来说,对比表示蒸馏是一种有效的神经网络模型压缩技术,可以使得模型更加轻巧、高效,并且具有更好的泛化性能。在实际应用中,对比表示蒸馏可以用于各种不同的场景,例如语义匹配、文本分类、命名实体识别等。 ### 回答3: 对比度表示蒸馏(Contrastive Representation Distillation)是一个基于知识蒸馏的方法,用于提高深层神经网络的泛化能力和可解释性。该方法的基本思想是将教师模型的表示信息迁移到学生模型中,以提升学生模型的表示能力。与传统知识蒸馏方法不同的是,对比度表示蒸馏引入了对比度目标函数。即利用对比度来衡量两个样本间的相似性与差异性,从而更好地描述样本的特征。 对比度表示蒸馏的具体实现包括两个部分:教师模型的表示学习和学生模型的对比度蒸馏。首先,通过对教师模型进行训练,获得其在目标数据集上的表示能力。然后,将目标数据集分成训练集和测试集,学生模型在训练集上进行训练,在测试集上进行对比度蒸馏。 对比度蒸馏包括两个阶段:正样本的对比度和负样本的对比度。正样本指目标训练集中的样本,负样本是由教师模型与目标训练集中的样本组成的。通过计算正样本对比度,学生模型能够更好地学习捕捉目标数据集中的相似性和差异性。通过计算负样本对比度,学生模型能够避免与教师模型过于相似的情况,从而提高其泛化能力。 对比度表示蒸馏已经被证明可以在图像分类、目标检测和图像生成等任务中,提高深层神经网络的性能和可解释性。在未来的研究中,对比度表示蒸馏可能会被应用在更广泛的领域中,例如自然语言处理和个性化推荐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值