Feature Distillation With Guided Adversarial Contrastive Learning

Bai T., Chen J., Zhao J., Wen B., Jiang X., Kot A. Feature Distillation With Guided Adversarial Contrastive Learning. arXiv preprint arXiv 2009.09922, 2020.

本文是通过固定教师网络(具有鲁棒性), 让学生网络去学习教师网络的鲁棒特征. 相较于一般的distillation 方法, 本文新加了reweight机制, 另外其损失函数非一般的交叉熵, 而是最近流行的对比损失.

主要内容

在这里插入图片描述

本文的思想是利用robust的教师网络ft来辅助训练学生网络fs, 假设有输入(x,y), 通过网络得到特征

t+:=ft(x),s+:=fs(x),

(t+,s+)构成正样本对, 自然我们需要学生网络提取的特征s+能够逼近t+, 进一步, 构建负样本对, 采样样本{x1,x2,,xk}, 同时得到负样本对(t+,si), 其中si=fs(xi). 总的样本对就是

Spair:={(t+,s+),(t+,s1),,(t+,sk)}.

根据负样本采样的损失, 最大化

J(θ):=E(t,s)p(t,s)logP(1|t,s;θ)+E(t,s)q(t,s)logP(0|t,s;θ).

当然对于本文的问题需要特殊化, 既然先验P(C=1)=1k+1,P(C=0)=kk+1, 故

J(θ):=E(t,s)p(t,s)logP(1|t,s;θ)+kE(t,s)q(t,s)logP(0|t,s;θ).

q(t,s)是一个区别于p(t,s)的分布, 本文采用了p(t)q(s).

作者进一步对前一项加了解释

P(1|t,s;θ)=P(t,s)P(C=1)P(t,s)P(C=1)+P(t)P(s)P(C=0)P(t,s)kP(t)P(s),

E(t,s)p(t,s)logP(1|t,s;θ)+logkI(t,s).

J(θ)的第二项是负的, 故

J(θ)I(t,s),

所以最大化J(θ)能够一定程度上最大化t,s的互信息.

reweight

教师网络一般要求精度(干净数据集上的准确率)比较高, 但是通过对抗训练所生成的教师网络往往并不具有这一特点, 所以作者采取的做法是, 对特征t根据其置信度来加权w, 最后损失为

L(θ):=E(t,s)p(t,s)wtlogP(1|t,s;θ)+kE(t,s)p(t)p(s)wtlogP(0|t,s;θ),

其中

wtpypred=y(ft,t+)[0,1].

wt为教师网络判断t+类别为y(真实类别)的概率.

拟合概率P(1|t,s;θ)

在负采样中, 这类概率是直接用逻辑斯蒂回归做的, 本文采用

P(1|t,s;θ)=h(t,s)=etTs/τetTs/τ+kM,

其中M为数据集的样本个数.
会不会

etTs/τetTs/τ+γkM2,

γ也作为一个参数训练符合NCE呢?

实验的细节

文中有如此一段话

we sample negatives from different classes rather than different instances, when picking up a positive sample from the same class.

也就是说在实际实验中, t+,s+对应的类别是同一类的, t+,s对应的类别不是同一类的.

In our view, adversarial examples are like hard examples supporting the decision boundaries. Without hard examples, the distilled models would certainly make mistakes. Thus, we adopt a self-supervised way to generate adversarial examples using Projected Gradient Descent (PGD).

也就是说, t,s都是对抗样本?

超参数: k=16384, τ=0.1.

疑问

算法中的采样都是针对单个样本的, 但是我想实际训练的时候应该还是batch的, 不然太慢了, 但是如果是batch的话, 怎么采样呢?

posted @   馒头and花卷  阅读(963)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示