【论文阅读】Adaptive Cross-Modal Prototypes for Cross-Domain Visual-Language Retrieval
文章目录
- 阅读目标
- 问题回答
- 摘要
- 引入
- 方法
- 网络输入
- 视觉编码器EvE_vEv和文本编码器ElE_lEl
- 文本龙骨KlK_lKl
- 视觉龙骨KvK_vKv
- 源原型网络PsP^sPs
- 目标原型网络PtP^tPt
- 子网络及输入输出
- 最大化互信息
阅读目标
- 了解在跨模态检索中如何构建原型
- 了解本文是如何应对non-iid问题的
问题回答
- 原型在本文中是一个线性映射层的参数,此映射层的输出代表原型表示给每个样本分配的概率,原型对照的基准是作者通过聚类自主构建的龙骨(聚类中心),而样本对照的基准则是龙骨对每个样本分配的概率
- 最大化源域跨模态表示和目标域跨模态表示之间的互信息
摘要
动机:在源域中有标记数据而目标域中没有标记数据的设定下的视觉-文本检索任务(包括图像-文本和视频-文本任务)
提出方法:通过最小化单模态和跨模态的源域和目标域之间的分布变化,来学习跨模态视觉-文本表示
核心idea:1)学习到的跨模态表示应该由单个模态中的概念组成,我们对这个归纳偏置(关于机器学习中的必要假设,可以理解为必要的“先验”,比如cnn中的locality invariance 和 spatial invariance,前者代表cnn中相邻的grid有依赖而较远的没有,后者代表空间不变性,及kernel可以在整个空间共享权重)进行编码,实现方式是,在每个域上聚合预训练的单模态特征,然后设计一个正则化项来保存生成的结构(生成的结构具体指什么?以及为什么这里可以实现对归纳偏置的编码) 2)在训练中,通过将源域和目标域之间的跨模态表示间的互信息最大化,提供了一种机制,在保留域之间的共性同时,忽略那些无法从另一个域推断出的这个域的信号
注:1)本文的目标在于域的迁移,原型学习只是达到这个目的的方式 2)需要承认,领域迁移仍然是跨模态检索问题中,能证明模型泛化能力和真正的理解能力的表现,而这种理解能力与原型学习的概念良好适应
引入
在UDA(Unsupervised Domain Adaptation,无监督域迁移,也就是源域有标记的视觉数据,目标域无标记)的设定下,视觉-文本检索任务需要解决的三个挑战(感觉分析得很透彻):1)语义合成性:模型需要合成由多个视觉实体及其关系组成的复杂语义特征 2)报告偏差:是指人们倾向于低估可用信息,这里是说视觉-文本任务中,对于数据集的利用是不全面的(不是特别理解) 3)视觉和文本的领域迁移:字面意思不赘述
为了解决这三个挑战,提出了适应性跨模态原型框架,其核心创新为:1)为了解决对语义合成性的需求并获得报告偏差的鲁棒性(挑战1)2)),提出学习一个精心设计的正则化的跨模态表示(也就是原型),但由于视觉-文本任务中没有类别的概念,因此首先对目标域中的预训练视觉特征和源域中的预训练文本特征进行聚类,然后将原型网络连接到跨模态表示,并用跨模态表示预测同一个模态下,每个样本的单模态嵌入到其聚类中心的分配概率,这是为了确保聚类发现的类别不会在跨模态表示中丢失(加粗对应两个问题,目标域没有文本特征所以不聚类,但为什么源域只聚类文本特征?原型网络如何用于跨模态表示的,跟原本的网络有关联吗?) 2)为了最小化域间的视觉和文本变换的影响(挑战3)),将互信息最大化,应用于源域和目标域之间的原型网络的预测
方法
读这一部分时感觉有些理不清。所以这里就不按照作者的叙述逻辑来叙述了:
符号 | 含义 |
---|---|
vvv | 视觉特征 |
lll | 文本特征 |
sss | 源域 |
ttt | 目标域 |
网络输入
vs,ls,vtv^s,l^s,v^tvs,ls,vt
代表源域的视觉和文本特征,以及目标域的视觉特征(因为在UDA的设定下,目标域的数据均为标注,所以没有文本特征)
视觉编码器EvE_vEv和文本编码器ElE_lEl
输入:vs,lsv^s,l^svs,ls(只对源域的特征进行处理)
处理:源域中的视觉特征放入视觉编码器EvE_vEv,文本特征放入文本编码器ElE_lEl,将他们映射到共同的跨模态嵌入空间中
目标:使语义上相近的视觉和文本输入,在公共空间中距离相近
损失:LR=1B∑i=1,j≠iB[m+ξi,js−ξi,is]++[m+ξj,is−ξi,is]+L_R = \frac{1}{B} \sum_{i=1, j\neq i}^{B}[m+\xi_{i,j}^s-\xi_{i,i}^s]_+ +[m+\xi_{j,i}^s-\xi_{i,i}^s]_+LR=B1∑i=1,j=iB[m+ξi,js−ξi,is]++[m+ξj,is−ξi,is]+
其中,ξi,js=cos(Ev(vis),El(ljs))\xi_{i,j}^s = cos(E_v(v_i^s), E_l(l_j^s))ξi,js=cos(Ev(vis),El(ljs)),表示映射到同一空间后的向量的余弦相似度;[⋅]+=max(⋅,0)[·]_+ = max(·,0)[⋅]+=max(⋅,0)
整体损失称为双向排序损失,表示令配对的视觉和文本正样本的余弦相似度更大,不配对的视觉文本负样本余弦相似度更小(同时构造i,ji,ji,j间的相似度和j,ij,ij,i间的相似度,双向的含义)
输出:Ev(vs),El(ls)E_v(v^s), E_l(l^s)Ev(vs),El(ls)
文本龙骨KlK_lKl
咱也不知道为什么取这个名字,其实龙骨指的是形心(聚类中心),据作者说这个名字反映了这些形心是用来稳定适应过程的意图
输入:lsl^sls(是的你没看错,跟文本编码器的输入一样,所以这个文本龙骨和下面视觉龙骨的构建,与文本编码器是平行的关系)
处理:先将lsl^sls放入在大规模自由格式句子上预训练过的句子级别的语言模型(Sentence-Transformer模型),这一步是为了获取结构化的特征表示;然后使用Lloyd’s algorithm将句子表示聚类为NNN簇,得到NNN个聚类中心(称为文本龙骨){Λn}n=1N\{\Lambda_n\}_{n=1}^N{Λn}n=1N(作者其实使用花体的LLL表示这个向量的,但是我不会打,所以换成Λ\LambdaΛ,这个文本龙骨就会作为之后原型学习过程的参考标准;然后计算文本龙骨到每个文本样本的概率分配,由于对每个样本来说,所有龙骨都会对其产生一个分配概率,因此每个样本的分配概率共由NNN部分组成,其中第nnn个部分的分配概率由以下公式计算得出:
Pkeel(ls)(n)=exp(cos(ls,Λn))∑n′exp(cos(ls,Λn′))P_{keel}(l^s)(n) = \frac{exp(cos(l^s,\Lambda_n))}{\sum_{n^{'}}exp(cos(l^s,\Lambda_{n^{'}}))}Pkeel(ls)(n)=∑n′exp(cos(ls,Λn′))exp(cos(ls,Λn))
每个样本的分配概率将参与后面原型学习损失的计算;而每个样本的整体分类概率为:ys=Pkeel(ls)∈RNy^s = P_{keel}(l^s) \in R^Nys=Pkeel(ls)∈RN
目标:这一部分并没有设计损失函数,因为严格来说这部分其实不属于网络的一部分,而是用来给源域原型网络PsP^sPs生成龙骨(原型学习的标准)以及对应的每个样本的ground truth的,也就是分配概率(但是后面就会发现,这个ground truth其实是不同模态的,也就是损失中的prediction其实是跨模态的表示,而这个ground truth其实是单模态的表示)
输出:ysy^sys
视觉龙骨KvK_vKv
输入:vtv^tvt目标域中的视觉表示
处理:同样也需要先利用vtv^tvt生成结构化的表示,由于视觉信息本身不像句子有一样有结构,所以作者选择的方法是,分别放入三种预训练的网络:目标分类(a ResNext-101 pretrained on ImageNet)、动作识别(仅当视觉信息是视频时存在,an R(2+1)D model [64] trained on IG-65m)和场景识别((a Dense Net-161 pretrained on Places365),他们分别提取了视觉信息中的[what, how, where]三个维度,最后将三个维度的表示整合在一起(貌似是concat),就获得了结构化的表示;之后就跟文本一样,提取视觉龙骨{Vk}k=1K\{V_k\}_{k=1}^K{Vk}k=1K,然后计算他们对每个样本的分配概率,最后得到avt=Pkeel(vt)∈RKa_v^t = P_{keel}(v^t) \in R^Kavt=Pkeel(vt)∈RK
目标:给目标原型网络PtP^tPt生成原型学习的标准和参与损失计算的ground truth
输出:avta_v^tavt
源原型网络PsP^sPs
组成:一个单线性映射层,权重矩阵是K∈RN∗MK \in R^{N*M}K∈RN∗M,矩阵的第nnn行表示第nnn个源原型(NNN对应聚类个数)
输入:Ev(vs),El(ls)E_v(v^s), E_l(l^s)Ev(vs),El(ls)经过视觉编码器和文本编码器处理的视觉和文本特征
处理:通过PsP^sPs网络对每个样本的视觉和文本特征计算NNN维的分配概率,表示的是第nnn个原型对样本的概率,公式为:
Pproto(vs)(n)=exp(cos(Ev(vs),Kn))∑n′=1Nexp(cos(Ev(vs),Kn′))P_{proto}(v^s)(n) = \frac{exp(cos(E_v(v^s), K_n))}{\sum_{n_{'}=1}^Nexp(cos(E_v(v^s), K_{n_{'}}))}Pproto(vs)(n)=∑n′=1Nexp(cos(Ev(vs),Kn′))exp(cos(Ev(vs),Kn))
Pproto(ls)(n)=exp(cos(El(ls),Kn))∑n′=1Nexp(cos(El(ls),Kn′))P_{proto}(l^s)(n) = \frac{exp(cos(E_l(l^s), K_n))}{\sum_{n_{'}=1}^Nexp(cos(E_l(l^s), K_{n_{'}}))}Pproto(ls)(n)=∑n′=1Nexp(cos(El(ls),Kn′))exp(cos(El(ls),Kn))
(所以说PsP^sPs中的线性映射,其实指的是这个余弦相似度+取指数+归一化?有点迷)在对nnn个分配概率组合,得到yvs^=Pproto(vs)\hat{y_v^s} = P_{proto}(v^s)yvs^=Pproto(vs)和yls^=Pproto(ls)\hat{y_l^s} = P_{proto}(l^s)yls^=Pproto(ls)
目标:令原型去逼近聚类得到的龙骨(聚类中心),落实到样本上,就令每个样本的原型概率分配去逼近龙骨概率分配:
Ls=KL(yls,yls^)+KL(yls,yvs^)L_s = KL(y_l^s, \hat{y_l^s})+KL(y_l^s, \hat{y_v^s})Ls=KL(yls,yls^)+KL(yls,yvs^)
(因为只构建了源域的文本龙骨,所以yvs^\hat{y_v^s}yvs^的逼近也是ylsy_l^syls
输出:yvs^,yls^\hat{y_v^s}, \hat{y_l^s}yvs^,yls^
目标原型网络PtP^tPt
组成:线性映射,参数为W∈RK∗MW \in R^{K*M}W∈RK∗M
输入:Ev(vt)E_v(v^t)Ev(vt)
处理:也是计算原型网络对样本的分配概率:
Pproto(vt)(k)=exp(cos(Ev(vt),Wk))∑k′=1Kexp(cos(Ev(vs),Wk′))P_{proto}(v^t)(k) = \frac{exp(cos(E_v(v^t), W_k))}{\sum_{k_{'}=1}^Kexp(cos(E_v(v^s), W_{k_{'}}))}Pproto(vt)(k)=∑k′=1Kexp(cos(Ev(vs),Wk′))exp(cos(Ev(vt),Wk))
继而得到每个样本的总分配概率:avt^\hat{a_v^t}avt^
目标:是的目标域中的样本分配概率分布去逼近视觉龙骨对样本的分配概率:
Lt=KL(Pkeel(vt)∣∣Pproto(vt))=KL(avt,avt^)L_t = KL(P_{keel}(v^t)||P_{proto}(v^t)) = KL(a_v^t, \hat{a_v^t})Lt=KL(Pkeel(vt)∣∣Pproto(vt))=KL(avt,avt^)
输出:avt^\hat{a_v^t}avt^
子网络及输入输出
这里用表格总结一下每个子网络的输入输出,否则一会互信息部分完全看不懂
输入 | 网络 | 输出 |
---|---|---|
vsv^svs | EvE_vEv | Ev(vs)E_v(v^s)Ev(vs) |
lsl^sls | ElE_lEl | El(ls)E_l(l^s)El(ls) |
lsl^sls | KlK_lKl | ysy^sys |
vtv^tvt | KvK_vKv | avta_v^tavt |
Ev(vs),El(ls)E_v(v^s), E_l(l^s)Ev(vs),El(ls) | PsP^sPs | yvs^,yls^\hat{y_v^s}, \hat{y_l^s}yvs^,yls^ |
Ev(vt)E_v(v^t)Ev(vt) | PtP^tPt | avt^\hat{a_v^t}avt^ |
最大化互信息
不了解互信息的可以看我之前的博客:【知识建设】信息熵、条件熵、互信息、交叉熵及相对熵(KL散度),很系统的介绍
我的理解下,这一部分的目标是令源域的跨模态表示yvs^\hat{y_v^s}yvs^和目标域的跨模态表示avt^\hat{a_v^t}avt^之间建立联系,而这种跨模态表示是通过原型网络对每个样本的概率分配来表示的,至于为何此处不适用KL散度,而是使用互信息,是因为源域和目标域的原型,很可能表示的类别和语义含义不同,因此不能被看作是相同的随机变量,所以使用互信息;
然而在这部分的叙述中,竟然出现了四个变量:yvs^,yvt^,avs^,avt^\hat{y_v^s},\hat{y_v^t},\hat{a_v^s},\hat{a_v^t}yvs^,yvt^,avs^,avt^,这里至今不理解,今后再议
【论文阅读】Adaptive Cross-Modal Prototypes for Cross-Domain Visual-Language Retrieval相关推荐
- 【论文阅读】RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving
文章:RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving 作者:Tong Q ...
- 论文阅读 Adaptive Consistency Regularization for Semi-Supervised Transfer Learning
Adaptive Consistency Regularization for Semi-Supervised Transfer Learning 论文题目:自适应一致性正则化方法用于半监督迁移学习 ...
- 论文阅读:Adaptive Graph Convolution for Point Cloud analysis
自适应图卷积用于点云分析 论文地址: https://arxiv.org/pdf/2108.08035. 代码地址: https://github.com/hrzhou2/AdaptConv-mast ...
- [论文阅读] Adaptive Context Selection for Polyp Segmentation
论文地址:https://doi.org/10.1007/978-3-030-59725-2_25 代码:https://github.com/ReaFly/ACSNet 发表于:MICCAI'20 ...
- 论文阅读—Adaptive Graph Encoder for Attributed Graph Embedding
Adaptive Graph Encoder for Attributed Graph Embedding(属性图嵌入的自适应图编码器) 文章目录 Adaptive Graph Encoder for ...
- 论文阅读 “Adaptive Tool Path Planning Strategy for Freeform Surface Machining using Point Cloud Article”
基于点云的自由曲面自适应刀具轨迹规划策略 作者 摘要 关键字 面对的问题 国内外现状 基于网格的自适应刀具轨迹规划系统 数据预处理 均匀网格生成 CL网格点计算 刀具轨迹生成 Forward and ...
- 【论文阅读】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
文章目录 论文内容 摘要(Abstract) 1. 介绍(Introduction) 2. 相关工作(略) 3. BERT 3.1 预训练BERT(Pre-training BERT) 4. 个人总结 ...
- 【论文阅读】Deep Cocktail Network: Multi-source Unsupervised Domain Adaptation with Category Shift
Deep Cocktail Network: Multi-source Unsupervised Domain Adaptation with Category Shift SUMMARY@ 2020 ...
- [论文阅读]Road Mapping and Localization using Sparse Semantic Visual Features
IEEE ROBOTICS AND AUTOMATION LETTERS 2021 文章链接 速读 1.1 论文试图解决什么问题?这是否是一个新的问题? 将道路中的语义信息用于解决自动驾驶定位这一问题 ...
- 【论文阅读笔记】BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translati
BART:去噪序列到序列的预训练自然语言生成.翻译和理解 动力 自监督方法在广泛的NLP任务中取得了显著的成功.最成功的方法是masked language model的变体去噪的自编码器.训练去噪的 ...
最新文章
- python免安装环境 linux_python如何打包脚本(库也一起打包),直接在linux环境运行,不需要安装库?...
- android京东秒杀倒计时,js实现京东秒杀倒计时功能
- 欧盟最新《AI网络安全政策发展框架》
- c语言指数pow,C语言中的指数函数pow()问题
- CNCF 宣布 TUF 毕业 | 云原生生态周报 Vol. 33
- windows10下配置环境变量
- 前端学习(2832):小程序事件绑定2
- html:(33):文字排版粗体和斜体
- 恭喜!清华大学,再添院士!
- 编程题常见输入格式处理方法
- (二)UDPSocket 客户端编写(超详细)
- matplotlib显示任意中文字体(不限SimHei)
- CSS 属性 aspect-ratio
- C语言:从低位开始取出长整型变量s奇数位上的数,依次构成一个新数放在t中。
- SALT安装--CentOS7
- 研究型论文框架及阅读文献方法
- 《人月神话》(The Mythical Man-Month)2人和月可以互换吗?人月神话存在吗?
- linux开机卡在usb,UUI v1.9.7.3 轻松制作 Linux 版 USB 开机随身碟、记忆卡(Universal USB Installer)...
- 加州大学圣地亚哥分校计算机科学排名,加州大学圣地亚哥分校UCSD计算机科学Computer Science专业排名第37位(2021年THE世界大学商科排名)...
- 宽带的服务器未响应,宽带拨号服务器未响应