摘要: 本篇文章的重点在于改良信息瓶颈的优化机制,并且围绕着高纬空间中互信息难以估计,以及信息瓶颈优化机制中的衡量难题这两个点进行解说。
本文分享自华为云社区《【云驻共创】美文赏析:大佬对变分蒸馏的跨模态行人重辨认的工作》,作者:启明。
论文解说:《Farewell to Mutual Information: Variational Distillation for CrossModal Person Re-identification》
论文概述
本篇文章的重点在于改良信息瓶颈的优化机制,并且围绕着高纬空间中互信息难以估计,以及信息瓶颈优化机制中的衡量难题这两个点进行解说。
信息瓶颈钻研背景
此报告一共分为 3 个局部,为了便于了解,咱们先介绍一下信息瓶颈的钻研背景。
就“信息瓶颈”这个概念而言,在 2000 年左右的时候才正式被学者提出, 其现实状态下的指标,是取得一个最小充沛规范。 意思就是,把所有那些对工作有帮忙的判断性信息全提取进去,同时又过滤掉冗余性的信息。从实际的角度来说,信息瓶颈的部署就是间接优化下图红色框出局部即可:
迄今为止,信息瓶颈作为一种信息论领导下的表征学习办法,曾经被广泛应用于多个畛域,包含计算机视觉、自然语言解决、神经科学等等,当然还有一些学者曾经把信息瓶颈用于揭开神经网络黑箱的问题上。
然而,互信息有 3 个不足之处:
1. 其有效性重大依赖互信息估算精度
尽管信息瓶颈有着先进的构思和理念,然而它的有效性重大依赖于互信息的估算精度。依据当初大量的实践剖析,以及目前很多的工作在实践中的尝试,咱们能够晓得在高维空间中,算互信息其实是十分无力的。
从上图表达式上来看,
v 代表着察看量,大家能够把它间接了解成一个高维度的特色图;
z 代表是代表它的一个表征,能够把它了解成是一个通过信息瓶颈压缩失去的一个低纬度的表征。
当初咱们须要算它们两个之间的互信息。
实践上来说咱们须要晓得这三个散布才能够实现互信息的计算(如上图)。然而很惋惜的是,对于察看量其自身的潜在散布,咱们只能无限个数据点,而并不能通过这些无限个数据点去观测到其具体的潜在散布,更不用说空间变量 z 的相干信息了。
那么,如果咱们用一个代参的预计器在解空间去猜呢?也不是很可行。因为其可信度不是很高,而且去年 ICLR(国内表征学习大会)上有很多篇工作曾经证实了,互信息预计器很大可能只是一个噱头。
2. 预测性能与简洁性之间难以衡量
另外一个比较严重的问题是,信息平台优化实质上是一种衡量。这意味着,这种机制会把表征的判断性和简洁性放到天平的两侧(如上图)。
想打消冗余信息,那么也会附带的造成局部断定性信息的损失;但如果你想保留更多的判断性信息,那么也会有相当局部的冗余信息跟着被保留下来。这样一来,就会使得信息瓶颈最开始定的指标成为不可能实现的指标。
或是咱们从优化指标上来看。假如咱们给一个十分大的 β,这意味着模型此时更偏向于做删减。不言而喻,压缩力度是提上来了,然而此时模型就没怎么保留断定性。
同样的,如果说当初给一个十分小的 β(假如是 10^(-5)),那么相对来说模型就更偏向于实现第一项互信息给的指标。但此时模型就不论“去冗余”的事了。
所以咱们在选取 β 的过程中,其实就是衡量两个指标在不同工作下的重要性,也就印证了文章结尾讲的问题,信息瓶颈的优化的实质是一种衡量。
3. 对多视图问题乏力
除上述 2 个问题之外,咱们还能够发现,信息瓶颈尽管能够通过工作给定的标签,对工作所蕴含的信息进行二元化定义,也就是说咱们能够依据是否对工作有帮忙来定义判断性信息(红色局部)和冗余信息(蓝色局部)。
然而工作波及到多视图的数据的时候,信息瓶颈没有确切的根据从多视图的角度把信息再次写进去,结果就是使得它对视图变动比拟敏感,或者说,就是不足应答多视图问题的能力。
变分信息瓶颈工作介绍
说完传统的信息瓶颈,咱们再引入一篇里程碑式的工作:《变分信息瓶颈》。此工作发表在 2017 年的 ICLR 下面,其一个突出贡献,是引入了“变分推断”(如下图): 把互信息转化成了熵的模式。 尽管这篇工作没有很好的解决咱们后面提到的问题,但这个思路简直启发了后续的所有相干工作。
把互信息转化到熵,是一个十分大的提高。然而还是有几点不足之处:
1. 表征判断性能与简洁性之间的 trade-off 没失去解决
遗憾的是变分信息瓶颈,也没能解决优化机制中判断性与简洁性之间的衡量难题。被优化的天平仍然随着 λ 摆动。
2. 无奈保障变分上界的有效性
第二个问题就是变分信息瓶颈优化的时候,其实是优化其找的一个上界,但上界的有效性是值得商讨的。因为它须要空间变量 z 的一个娇艳散布 Q(z)去迫近一个潜在散布 P(z)。然而,这在理论中这其实是很难保障的。
3. 波及重参数、重采样等简单操作
第三点就是优化这一项变分推断的后果,会波及到很多简单的操作(重参数、重采样等这些不确定性很高的操作),会给训练过程减少肯定的稳定,使得训练可能不是很稳固,而且复杂度较高。
钻研办法
下面说的几个问题,是变分信息瓶颈针对办法的通病,肯定水平上妨碍了信息瓶颈的工夫利用。那么,接下来解说一下相应的解决思路,从实质上解决后面提到的所有问题。
充分性
首先须要引入“充分性”概念:z 蕴含所有对于 y 的判断性信息。
它要求信息瓶颈的编码过程不容许有判断性信息的损失,也就是说 v 通过信息瓶颈达到 z 之后,只容许打消冗余信息,当然这是一个比拟理想化的要求(如上图)。
有了“充分性”概念之后,咱们把察看量和其表征之间的互信息进行拆分,能够失去蓝色的冗余信息和红色的判断性信息,再依据信息处理不等式能够失去上面这行的后果。此后果意义比拟大,它阐明咱们想要取得最小充沛规范,也就是最优规范,须要经验三个子过程。
第一个子过程,其实是在进步表征 z 所蕴含的判断性信息总量的下限。为什么这样说?因为 z 所蕴含的所有内容都来源于它的察看量。所以进步察看量,它本人的判断性信息总量的下限,也就是拉高了 z 的它本人的下限。
而第二个子过程就是让表征 z 去迫近本人的判断性下限。这两项其实对应了充分性的要求。
第三个子过程的条件互信息,如后面所说,它代表指标所蕴含的冗余信息,因而最小化这一项就对应了最简性的指标。此处,简略阐明一下“条件互信息”,它代表的是 z 中所蕴含的仅和 v 相干且与 y 无关的信息,简略来说,就是和工作没有关系的冗余信息。其实从后面的变分信息瓶颈能够看到第一个子过程,其实优化一个条件熵,也就是用察看量 v 初始的特色图和标签算一个穿插熵,而后进行优化。所以这一项它实质上和给定的工作是统一的,因而暂且不须要非凡解决。
至于另外两项的优化指标,他们实质上是等价的。而且值得注意的一点是这种等价关系,意味着晋升表征的判断性的过程中,也在打消冗余。把原来已经对抗的两个指标拉到了天平同一侧,间接就解脱了信息瓶颈原有的一个衡量难题,使得信息瓶颈随着最小充沛规范实践上是可行的。
定理一和引理一
定理一: 最小化 I(v;y) − I(z;y) 等价于最小化 v,z 对于工作指标 y 条件熵的差值,即:
minI(v;y)−I(z;y) ⇔ min H(y|z) − H(y|v),
其中条件熵定义为 H(y|z):=−∫p(z)dz∫p(y|z)log p(y|z)dy .
引理一: 当表征 z 对工作指标 y 做出的预测与其察看量 v 的雷同时,表征 z 对于工作指标 y 具备充分性,即:
为了达到后面制订的指标,还须要防止高维空间中互信息的估算,因而文章中提出了十分具体的重点的定理和引理这两项内容。
为了不便了解,能够看下面的逻辑图。定理一通过对蓝色的互信息的优化,间接转化成条件熵之间的差。也就是说,如果想实现下面两个(蓝色的)指标,能够转变为最小化条件熵的差即可。
而引理一,在此基础上把下面的后果转化成了一项 KL 散度,而 KL 散度外面其实就是两个 logits。
也就是实际当中只须要优化这么一项简略的 KL 散度,就能同时达到表征的充分性和最简性。照比传统的信息瓶颈来说,还是简略很多的。
网络结构自身很简略:一个编码器一个信息瓶颈,再加一个 KL 散度。思考到它的模式,将这办法也命名为变分自蒸馏(Variational Self-Distillation),简称 VSD。
和互信息瓶颈原有的优化机制做一个比照,能够发现 VSD 有三个比较突出的长处:
- 无需进行互信息估算且更准确地拟合
- 解决优化时的衡量难题
- 不波及重参数、采样等繁琐操作
Consistency
仅保留判断性且满足视图间一致性的信息,以加强表征对于视图变动的鲁棒性。
定义:表征 z1, z2 满足视图间一致性,当且仅当 I(z1;y) = I(v1v2;y) = I(z2;y)。
在有了定理一和引理一之后,接下来的工作是要把变分自蒸馏扩大到多视图的学习背景下。
如上图,这是一个最根本的框架。两张图像 x1,x2,输出到一个编码器中,失去两个原始的高维特色图 v1 和 v2,而后把 v1 和 v2 送到信息瓶颈,失去两个压缩过的低维度表征 z1 和 z2。
如上图所示,此项互信息是同一视图下的察看量和其表征之间的互信息。但拆分的时候要留神和 VSD 中的解决的区别, 因为这里对信息的划分根据是它是否反映了视图间的共性,而不再是判断性和冗余性的要求, 所以它拆分进去的后果有 I(Z1;V2) = i(v2;v1|y) + I(z1;y)。
之后再依据视图是否满足判断性要求,对档次的视图间共性的信息进行二次划分,失去两项冗余信息和判断信息(如上图)。
如果要想晋升表征对于视图变动的鲁棒性,以及进而晋升工作的精度,只须要放弃 I(z1;y)(红色局部)就能够了,I(v1;z1|v2)(蓝色局部)和 I(v2;v1|y)(绿色局部)都要丢掉。优化的指标如下:
定理二: 给定两个满足充分性的察看量 v1, v2, 其对应的表征 z1 和 z2 满足视图间一致性,当且仅当满足此条件:I(v1;z1|v2) + I(v2;z2|v1)≤0 and I(v2;v1|y) + I(v1;v2|y) ≤ 0
定理二可用来论述视图间一致性的实质。视图间一致性在实质上就是要求打消视图特异性信息,也打消和工作没有关系的冗余信息来最大化的晋升表征。
两种办法
打消视图特异性信息
变分互学习(Variational Mutual Learning, VML,对应上图蓝色局部):最小化 z1, z2 预测散布之间的 JS 散度以打消其所蕴含的视图特异性信息,具体指标如下:
打消冗余信息
变分穿插蒸馏(Variational Cross-Distillation, VCD,对应上图红色局部):在留存的视图一致性信息中,通过穿插地优化察看量与不同视图表征之间的 KL 散度提纯判断性信息,同时剔除冗余信息,具体指标如下(v1 与 z1 同理):
上图是这两种办法的解决的结构图。本来是有特异性和一致性,依据 VML 来把信息进行二元划分,再用变分互学习把个性的信息全副打消掉了,而后剩下的橙色的一致性信息还有两块:冗余信息和裁决信息。这个时候就须要变分穿插蒸馏,把冗余信息(绿色局部)别离消掉,只保留判断性信息(红色的局部)。
试验后果
接下来咱们来剖析一下文章中的试验局部。为了验证办法的有效性,咱们把前文中提到的三种办法:变分自蒸馏、穿插蒸馏,还有互学习,利用到跨模态行人群辨认的问题。
跨模态行人群辨认问题,是计算机学的子问题,外围指标是为给定的人像匹配另一个模态下的照片。举例来说,以下图绿色框标记进去的红外图像来说,咱们心愿在一个图像库中找到对应同一个人的可见光图像,要么是用红外光去找可见光,或者用可见光去找红外光。
框架总览
模型构造总览:
模型总体一共包含三条独立的分支,且每条分支仅蕴含一个编码器和一个信息瓶颈。具体构造见下图。
这里值得注意的一点是,因为高低两个分支,橙色的局部只承受和解决红外光货色,蓝色的只承受和解决可见光的货色,所以他们不波及多视图,因此用 VSD 和它们绑定即可。
两头这条分支训练的时候,会同时承受并解决两个模态的数据。因而训练的时候,用 VCD,就是变分穿插蒸馏和变分互学习协同训练剖析。
损失函数总览:
损失函数由两局部形成,即论文中提出的变分蒸馏,以及 Re-ID 最罕用的训练束缚。留神 VSD 只束缚单模态分支,而 VCD 协同 VML 一起束缚跨模态分支。
试验规范:SYSU-MM01 & RegDB
SYSU-MM01:
数据集共包含 491 个指标的 287,628 张可见光图像以及 15,792 张红外光图像。每个指标的图像都来源于 6 个不重叠摄像头别离在室内和户外进行拍摄的拍摄后果。
评测规范蕴含全场景查问(all-search)和室内查问(indoorsearch)。论文中所有试验后果都采纳规范评测准则。
RegDB:
数据集共包含 412 个指标,且每个指标对应十张在同一时刻拍摄的可见光图像以及红外光图像。
评测规范包含可见光搜红外(visible-to-infrared)以及红外搜可见光(infrared-to-visible)。最终评测后果为十次试验的均匀精度,且每次试验都发展于随机划分的评估集。
后果剖析
咱们把跨模态行人群辨认的相干工作大体分为了 4 类:Network Design(网络框架设计)、Metric Design(度量设计)、Generative(生成类)、Representation(表征学习类)。
此办法作为第一份摸索表征学习的工作,在不波及生存过程以及简单的网络结构的条件下,性能还能这么大幅度的当先竞争对手。而且也正是个起因,此文章提出的变分蒸馏损失能够十分轻松的融入到不同类别的办法,开掘更大的后劲。
在另外一个数据集上,咱们能够看到一个相似的后果。
接下来咱们将选一些代表性的融化试验,剖析一下办法在实践中的有效性。
开始之前咱们须要明确,接下来所有的试验:察看量 v 的维度对立设置成 Re-ID 社区罕用的 2048;表征的维度就默认成 256;信息瓶颈对立采纳 GS 互信息预计器。
融化试验:繁多模态分支条件下,变分蒸馏 vs 信息瓶颈
在不思考多视图条件下,仅关注表征的充分性。
如上图,咱们能够察看到变分自蒸馏能够带来巨额的性能晋升。28.69 至 59.62,十分直观的数, 阐明了变分自蒸馏能够无效的晋升表征的判断性,大量去除冗余信息的同时,提炼出更多有价值的信息。
融化试验:多模态分支条件下,变分蒸馏 vs 信息瓶颈
咱们再来看多视图上面的后果。当咱们只用跨模态分支做测试的时候,发现两个景象:
一是,变分蒸馏的办法的性能是有所降落的。刚刚是 59,而当初只有 49。这里咱们揣测是被摈弃的一些模态特异性信息。两头分值保留同时满足两个特点信息,所以会先抛去那些模态特异性信息。但对被摈弃的模态特异性信息外面,也具备相当的判断性, 因而就满足模态一致性的代价,即,判断性损失带来的精度降落。
二是传统信息瓶颈的性能,在多模态的条件下,变动其实并不是很大。刚刚是 28,当初是 24。咱们认为是传统的信息瓶颈并不能很好的去分别一致性和特异性信息,因为其基本就不关注多视图问题,也基本就没有能力去解决这个问题。所以说多视图的条件并不会给其带来显著性的稳定。
融化试验:三分支条件下,变分蒸馏 vs 信息瓶颈
在双分支的根底上,再增加了两头这条分支之后,模型的总体性能根本没有变动。咱们能够得出以下论断:
高低两条分分支,只有满足了判断性信息,信息就能够得以保留下来。
而两头这条分支保留的信息要满足两个要求。其中一个是满足判断性要求,也就是说两头这条分支所保留的信息,其实是高低两个信息的一个子集。
反观信息瓶颈,三个分支能给它带来的晋升还是比拟显著的。因为它哪条分支都不能残缺的保留判断性信息,更不要说再去顾及“多视图”这个事件。
融化试验:不同压缩率的状况下,“充分性”比照
咱们再看表征的压缩率对性能的影响。依照 Re-ID 设计的统一标准,原始的特色图维度设计成 2048。
咱们通过调整表征 v 对模型总体的性能产生的变动。当维度小于 256 的时候,性能会随着维度的回升一直的升高,咱们揣测是因为当压缩率压缩太厉害的时候,模型再怎么强,都没有那么多通道用来保留足够的判断性信息,就容易导致非充沛的景象。
而当维度超过 256 的时候,发现性能反而开始降落。对于这一点咱们认为是多进去的那局部通道,反而使得一部分冗余信息也能够保留下来,这样就造成了整体判断性和泛化性的事件升高。此时这种景象被称之为“冗余”(Redundancy)。
为了更好的展现不同办法的差异,咱们用 TFNE 把不同的特色空间合并到了一个立体上(如下图)。
咱们先针对充分性开展剖析,就是 VSD 和传统信息瓶颈的比照。上标“V”“I”代表的是可见光和红外光下的数据,而下标的 Sp 代表的是 View specific,也就是说他们取自于单模态的剖析。
咱们能够看到传统信息瓶颈的特色空间能够说是凌乱不堪,阐明模型基本就没有方法清晰的分辨不同指标所属的类别。换句话来说,就是判断性信息损失重大;而 VSD 状况齐全相同是,尽管说不同模态之间的特色空间还是有不小的差异,因为所保留的裁决性信息就相当一部分属于模态特异性信息,然而能看到简直每一个谬误都是清晰明显,阐明模型在 VSD 的帮忙下能够更好的满足充分性。
咱们再来看上面这张图,下标的 sh 代表他们来自于 shared branch,他们来自于多模态的分支,上标“V”“I”仍然代表了可见光以及红外光的数据点。
同样的信息瓶颈的特色空间,在多视图的条件下仍然是凌乱不堪。而且如果不作阐明的话,其实根本无奈分辨高低这两张图到底哪个是单模态,哪个是多模态。这也就验证了后面的观点: 传统的信息瓶颈基本没有能力去应答多视图的问题。
通过变分穿插蒸馏解决的特色空间,尽管照比 VSD 有一些涣散(因为视图的要求不免造成一些判断性信息的损失),然而单看两个模态的特色空间的重合度是很高的,侧面阐明办法对一致性信息提出了有效性。
接下来,咱们把不同模态的数据投射到同一个特色空间,用橙色和蓝色别离代表红外光图像数据点和可见光图像数据点。
咱们能够看到在变分穿插蒸馏作用的帮忙下,不同模态的特色空间简直齐全吻合。比照信息瓶颈的后果,能够十分直观的阐明变分穿插蒸馏的有效性。
代码复现
性能比照:Pytorch vs Mindspore
无论是用 PyTorch 还是用 MindSpore,它们都是用来训练模型,而性能测试则是须要用失去的模型把特征提取进去,送到对应数据及官网反对的测试文件,因而这个后果的比照必定是偏心的。
咱们能看到无论是 baseline,还是从整个框架来看(因为右下角的试验当初只跑了一半,我只能先放一个两头),无论从精度上来说,还是从训练的时长来说,MindSpore 得进去的模型还是比 PyTorch 是要好不少。
如果对 MindSpore 感兴趣能够返回学习一下:https://www.huaweicloud.com/p…
本文整顿自【内容共创系列】IT 人加薪新思路,认证华为云签约作者,赢取 500 元稿酬和流量搀扶!→查看流动详情
点击关注,第一工夫理解华为云陈腐技术~