《Channel-wise Knowledge Distillation for Dense Prediction》论文详解

原文地址:《Channel-wise Knowledge Distillation for Dense Prediction》

代码地址: https://git.io/Distille(由原文提供,好像打不开了)

该文发表在ICCV2021上。文章针对密集性预测任务(dense prediction)提出一种简单而有效的蒸馏方式,之前的知识蒸馏方式之前对于密集预测任务的蒸馏方法都是通过在空间维度上对齐老师和学生网络的activation maps,文章认为直接在空间维度上蒸馏可能会将老师网络中的多余信息带入学生网络,所以文章采用通道维度上进行蒸馏。

这里在说明一下dense prediction任务,dense prediction是一种将输入图片映射为复杂输出的一类任务,例如语义分割、深度估计、物体检测等。(参考文献《Structured Knowledge Distillation for Dense Prediction》)

一、KL散度

在解释文章思想之前,想先介绍一下KL散度。

根据维基百科中的解释,KL散度是用来度量使用基于Q的分布来编码服从P的分布的样本所需的额外的平均比特数。通俗来说KL散度就是用来给出P分布和Q分布之间的差异值。

对于离散随机变量,P和Q两个分布的KL散度可以用下列公式表示:
D_{KL}(P||Q)=-\sum_iP(i)ln\frac{Q(i)}{P(i)}
还要注意一点的是KL散度是不对称的,所以存在公式
D_{KL}(P||Q) \neq D_{KL}(Q||P)

二、方法介绍

2.1 空间维度的蒸馏(spatial distillatioin)

在介绍本文的蒸馏方法前,先介绍一下空间维度的蒸馏方式。

空间维度的蒸馏方式可以用下式表示:
l(y, y^S)+\alpha\cdot\varphi(\phi(y^T), \phi(y^S))
上式中l(y, y^S)表示预测值与gt之间的loss,那语义分割来说通常使用交叉熵loss。y^Ty^S表示logits输出或者网络中的激活层,T和S上角标分别表示老师模型和学生模型。\alpha 为平衡loss的超参数。\varphi表示loss计算函数,\phi表示对输入的预测y^T或者y^S进行变换,不同算法这两个符号计算方式不一样,具体如下表所示。

截屏2022-10-01 上午9.57.03.png

从上述公式和表中可以看出,该类方法是针对输出所有通道作为空间上的一点来计算的。

2.2 通道维度的蒸馏

如下图c所示,网络输出特征不同的通道关注的重点是不一样的。(a,b表示空间维度和通道维度的蒸馏方式)


截屏2022-10-01 上午9.58.33.png

为了更好的对网络输出的每个通道进行知识提取,在计算学生和老师网络之间差异之前,先在通道维度上,将输出的激活值转换成一个概率分布图,然后再去计算老师和学生之间的差异。

先进行一些符号的定义,老师网络用T表示,学生网络用S表示,y^T表示老师输出的特征,y^S表示学生输出的特征。

通道维度的蒸馏loss也可以用通用的公式形式表示
\varphi(\phi(y^T), \phi(y^S)=\varphi(\phi(y_c^T), \phi(y_c^S)
在文中提出的方法,\phi(\cdot)表示将激活通道转换为概率分布:
\phi(y_c)=\frac{exp(\frac{y_{c,i}}{\tau})}{\sum^{W\cdot H}_{i=1}exp(\frac{y_{c,i}}{\tau})}
其中c=1, 2, ..., C表示通道的索引,i表示每个通道上的空间位置索引。\tau表示超参,该值越大,表示概率越分散(softer),也即关注的空间位置越大。

当存在老师的输出通道数与学生输出通道数不一致的情况,这里使用1\times 1的卷积对学生的输出进行处理,使其与老师的输出通道数一致。

上面\varphi是用来判断老师的输出通道分布与学生的输出通道分布的差异,这里采用KL散度来计算
\varphi(y^T, y^S)=\frac{\tau^2}{C}\sum^{C}_{c=1}\sum^{W\cdot H}_{i=1}\phi(y^T_{c,i})\cdot log\big[\frac{\phi(y^T_{c,i})}{\phi(y^S_{c,i})}\big]
文字基本原理就是这些,具体实验可以查看原文,但有一点说明的是,文章中在做feature的蒸馏,好像并没有说明用的是哪些层输出的feature

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容