【论文极速看】CLIP-Lite:一种不依赖于负样本数量的高效多模态学习方法

news/2025/3/15 1:11:33/
【论文极速看】CLIP-Lite:一种不依赖于负样本数量的高效多模态学习方法
FesianXu 20220201 at Baidu Search Team

∇ \nabla 联系方式:

e-mail: FesianXu@gmail.com

github: https://github.com/FesianXu

知乎专栏: 计算机视觉/计算机图形理论与应用

微信公众号:

qrcode


传统的CLIP [1]对比学习模型依赖于海量的图文对训练数据,以及每个正样本对应的负样本的数量,为了弥补CLIP模型对于负样本数量的极度依赖,而单纯通过当前batch size提供足够的负样本又强烈依赖于显卡资源的现况,有些方案提出采用虚拟batch size(即是memory bank)进行弥补 [2]。MoCo [3]模型提出采用动量编码器和负样本队列的方式,可以利用训练历史上的负样本,从而扩大了参与训练的负样本数量。

在文章[4]中,作者提出了CLIP-Lite,该模型通过Jensen-Shannon散度对互信息进行下界估计,而不是像CLIP采用infoNCE对互信息进行估计。互信息(Mutual Information, MI)描述了『在知道某个随机变量 Y Y Y​​后,对于另一个随机变量 X X X​​​的不确定性的减少程度』,对于离散随机变量 X , Y X,Y X,Y​​而言,其联合概率分布为 P X , Y ( x , y ) P_{X,Y}(x,y) PX,Y(x,y)​​,其互信息可表示为 I ( X ; Y ) I(X;Y) I(X;Y)​​,那么:
I ( X ; Y ) = ∑ x , y P X Y ( x , y ) log ⁡ ( P X Y ( x , y ) P X ( x ) P Y ( y ) ) = E P X Y [ log ⁡ ( P X Y P X P Y ) ] (1-1) \begin{aligned} I(X;Y) &= \sum_{x,y}P_{XY}(x,y)\log(\dfrac{P_{XY}(x,y)}{P_{X}(x)P_{Y}(y)}) \\ &= \mathbb{E}_{P_{XY}}[\log(\dfrac{P_{XY}}{P_{X}P_{Y}})] \end{aligned} \tag{1-1} I(X;Y)=x,yPXY(x,y)log(PX(x)PY(y)PXY(x,y))=EPXY[log(PXPYPXY)](1-1)
定义随机变量的熵(entropy)和条件熵(conditional entropy)为:
H ( X ) = − ∑ x P X ( x ) log ⁡ ( P X ( x ) ) = − E P X [ log ⁡ ( P X ) ] H ( X ∣ Y ) = ∑ y P Y ( y ) [ − ∑ x P X ∣ Y ( x ∣ y ) log ⁡ ( P X ∣ Y ( x ∣ y ) ) ] = E P Y [ − E P X ∣ Y [ log ⁡ P X ∣ Y ] ] (1-2) \begin{aligned} H(X) &= -\sum_{x} P_{X}(x) \log(P_{X}(x)) = -\mathbb{E}_{P_X}[\log(P_X)] \\ H(X|Y) &= \sum_{y} P_{Y}(y) [-\sum_{x}P_{X|Y}(x|y)\log(P_{X|Y}(x|y))] = \mathbb{E}_{P_Y}[-\mathbb{E}_{P_{X|Y}}[\log{P_{X|Y}}]] \end{aligned} \tag{1-2} H(X)H(XY)=xPX(x)log(PX(x))=EPX[log(PX)]=yPY(y)[xPXY(xy)log(PXY(xy))]=EPY[EPXY[logPXY]](1-2)
其中有:
P X ∣ Y ( x ∣ y ) = P X Y ( x , y ) P Y ( y ) (1-3) P_{X|Y}(x|y) = \dfrac{P_{XY}(x,y)}{P_{Y}(y)} \tag{1-3} PXY(xy)=PY(y)PXY(x,y)(1-3)
联合(1-2)和(1-3),我们有:
I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) = − ∑ x P X ( x ) log ⁡ ( P X ( x ) ) − ∑ y P Y ( y ) [ − ∑ x P X ∣ Y ( x ∣ y ) log ⁡ ( P X ∣ Y ( x ∣ y ) ) ] = − ∑ x P X ( x ) log ⁡ ( P X ( x ) ) + ∑ y ∑ x P X Y ( x , y ) log ⁡ ( P X ∣ Y ( x ∣ y ) ) = − ∑ y ∑ x P X Y ( x , y ) log ⁡ ( P X ( x ) ) + ∑ y ∑ x P X Y ( x , y ) log ⁡ ( P X ∣ Y ( x ∣ y ) ) = ∑ y ∑ x P X Y ( x , y ) [ log ⁡ ( P X ∣ Y ( x ∣ y ) ) − log ⁡ ( P X ( x ) ) ] = ∑ y ∑ x P X Y ( x , y ) log ⁡ ( P X Y ( x , y ) P X ( x ) P Y ( y ) ) (1-4) \begin{aligned} I(X;Y) &= H(X) - H(X|Y) \\ &= -\sum_{x} P_{X}(x) \log(P_{X}(x)) - \sum_{y} P_{Y}(y) [-\sum_{x}P_{X|Y}(x|y)\log(P_{X|Y}(x|y))] \\ &= -\sum_{x} P_{X}(x) \log(P_{X}(x)) + \sum_{y}\sum_{x}P_{XY}(x,y)\log(P_{X|Y}(x|y)) \\ &= -\sum_{y}\sum_{x}P_{XY}(x,y) \log(P_{X}(x)) + \sum_{y}\sum_{x}P_{XY}(x,y)\log(P_{X|Y}(x|y)) \\ &= \sum_{y}\sum_{x}P_{XY}(x,y) [\log(P_{X|Y}(x|y))-\log(P_{X}(x))] \\ &= \sum_{y}\sum_{x}P_{XY}(x,y) \log(\dfrac{P_{XY}(x, y)}{P_X(x)P_Y(y)}) \end{aligned} \tag{1-4} I(X;Y)=H(X)H(XY)=xPX(x)log(PX(x))yPY(y)[xPXY(xy)log(PXY(xy))]=xPX(x)log(PX(x))+yxPXY(x,y)log(PXY(xy))=yxPXY(x,y)log(PX(x))+yxPXY(x,y)log(PXY(xy))=yxPXY(x,y)[log(PXY(xy))log(PX(x))]=yxPXY(x,y)log(PX(x)PY(y)PXY(x,y))(1-4)
因此互信息可以理解为在知道了额外信息(随机变量 Y Y Y​)后,对于随机变量 X X X​的不确定性的减少程度。显然,当且仅当 P X Y ( x , y ) = P X ( x ) P Y ( y ) P_{XY}(x,y)=P_{X}(x)P_{Y}(y) PXY(x,y)=PX(x)PY(y)的时候,有 I ( X ; Y ) = 0 I(X;Y)=0 I(X;Y)=0​,此时可以理解为随机变量 X , Y X,Y X,Y​​​是完全独立的。

对互信息进行优化在表征学习中有着广泛地应用,通过最大化互信息可以学习到更好的表征。不难看出,互信息可以用Kullback-Leibler(KL) 散度表示,为:
I ( X ; Y ) = D K L ( P X Y ( x , y ) ∣ ∣ P Y ( y ) P X ( x ) ) (1-5) I(X;Y) = D_{KL}(P_{XY}(x,y)||P_{Y}(y)P_{X}(x)) \tag{1-5} I(X;Y)=DKL(PXY(x,y)PY(y)PX(x))(1-5)
然而,对高维的连续随机变量进行互信息估计是一件很困难的事情,特别是当联合概率分布和边缘概率分布都是未知分布的情况下。因此存在有一些方法尝试对互信息进行下界估计,通过对下界进行求最优化从而间接达到对互信息进行优化的目的。目前最常用的有几种下界估计,Donsker-Varadhan(DV)下界,infoNCE下界和Jensen-Shannon(JS)散度下界。DV下界 [5,6] 如(1-6)所示,其中的 T ω ( x , y ) T_{\omega}(x,y) Tω(x,y)​​是一个参数为 ω \omega ω​的神经网络判别器, T ω : X × Y → R T_{\omega}:\mathcal{X} \times \mathcal{Y} \rightarrow \mathbb{R} Tω:X×YR​​​,其对 x x x​和 y y y​​​的相关程度进行判断。
I ( X ; Y ) : = D K L ( P X Y ( x , y ) ∣ ∣ P Y ( y ) P X ( x ) ) ≥ I ^ ω ( D V ) ( X ; Y ) = E P X Y [ T ω ( x , y ) ] − log ⁡ ( E P X P Y [ exp ⁡ ( T ω ( x , y ) ) ] ) (1-6) \begin{aligned} I(X;Y) &:= D_{KL}(P_{XY}(x,y)||P_{Y}(y)P_{X}(x)) \geq \hat{I}^{(DV)}_{\omega}(X;Y) \\ &= \mathbb{E}_{P_{XY}}[T_{\omega}(x,y)]-\log(\mathbb{E}_{P_XP_Y}[\exp(T_{\omega}(x,y))]) \end{aligned} \tag{1-6} I(X;Y):=DKL(PXY(x,y)PY(y)PX(x))I^ω(DV)(X;Y)=EPXY[Tω(x,y)]log(EPXPY[exp(Tω(x,y))])(1-6)
假设 Y = E ψ ( X ) Y=E_{\psi}(X) Y=Eψ(X)是对输入 X X X进行求表征的函数, ψ \psi ψ是表征神经网络的参数。那么对 I ^ ω ( D V ) ( X ; E ψ ( X ) ) \hat{I}^{(DV)}_{\omega}(X;E_{\psi}(X)) I^ω(DV)(X;Eψ(X))进行最优化,需要同时优化 ω , ψ \omega,\psi ω,ψ。表示为:
( ω ^ , ψ ^ ) = arg ⁡ max ⁡ ω , ψ I ^ ω ( X ; E ψ ( X ) ) (1-7) (\hat{\omega}, \hat{\psi}) = \arg \max_{\omega, \psi} \hat{I}_{\omega}(X;E_{\psi}(X)) \tag{1-7} (ω^,ψ^)=argω,ψmaxI^ω(X;Eψ(X))(1-7)
infoNCE下界如式子(1-8)所示:
I ^ ω , ψ i n f o N C E ( X ; E ψ ( X ) ) = E P [ T ω , ψ ( x , E ψ ( x ) ) − E P ~ [ log ⁡ ∑ x ′ exp ⁡ ( T ω , ψ ( x ′ , E ψ ( x ) ) ) ] ] (1-8) \hat{I}_{\omega, \psi}^{infoNCE} (X;E_{\psi}(X)) = \mathbb{E}_{\mathbb{P}}[T_{\omega, \psi}(x, E_{\psi}(x))-\mathbb{E}_{\tilde{\mathbb{P}}}[\log{\sum_{x^{\prime}}\exp{(T_{\omega,\psi}(x^{\prime}, E_{\psi}(x)))}}]] \tag{1-8} I^ω,ψinfoNCE(X;Eψ(X))=EP[Tω,ψ(x,Eψ(x))EP~[logxexp(Tω,ψ(x,Eψ(x)))]](1-8)
从式子(1-6)和(1-8)中,我们发现DV下界和infoNCE下界都依赖于负样本数量,越多负样本才能有越好的效果(笔者暂时还不太理解DV下界为啥依赖于负样本数量)。而在CLIP-Lite中作者提出用JS下界去替代CLIP中的infoNCE下界,而JS下界不依赖于负样本数量,因此每个正样本至多只需要一个负样本就可以进行下界优化,如Fig 1.1所示。JS下界见式子(1-9):
I ( X ; E ψ ( X ) ) ≥ I ^ ω J S ( X ; E ψ ( X ) ) = E P ( X , E ψ ( X ) ) [ − log ⁡ ( 1 + exp ⁡ ( − T ω ) ) ] − E P ( X ) P ( E ψ ( X ) ) [ log ⁡ ( 1 + exp ⁡ ( T ω ) ) ] (1-9) I(X;E_{\psi}(X)) \geq \hat{I}_{\omega}^{JS}(X; E_{\psi}(X)) \\ = \mathbb{E}_{P(X,E_{\psi}(X))}[-\log{(1+\exp(-T_{\omega}))}] - \mathbb{E}_{P(X)P(E_{\psi}(X))}[\log{(1+\exp(T_{\omega}))}] \tag{1-9} I(X;Eψ(X))I^ωJS(X;Eψ(X))=EP(X,Eψ(X))[log(1+exp(Tω))]EP(X)P(Eψ(X))[log(1+exp(Tω))](1-9)
clip_and_clip_lite

Fig 1.1 CLIP-Lite对比CLIP,每个正样本只需要一个负样本即可完成有效的表征对比学习。

其中的 T ω : X × E ψ ( X ) → R T_{\omega}: \mathcal{X} \times E_{\psi}(X) \rightarrow \mathbb{R} Tω:X×Eψ(X)R同样是个以 ω \omega ω​为参数的神经网络判别器,用于判断当前输入的图文对是正样本还是负样本,最后的优化目标同样是同时对 ω \omega ω ψ \psi ψ进行优化:
( ω ^ , θ ^ i , θ ^ t ) = arg ⁡ max ⁡ ω , θ ^ i , θ ^ t I ^ ω J S D ( f i ( x i ; θ i ) , f t ( x t ; θ t ) ) (1-10) (\hat{\omega}, \hat{\theta}_i, \hat{\theta}_t) = \arg\max_{\omega, \hat{\theta}_i, \hat{\theta}_t} \hat{I}_{\omega}^{JSD} (f_i(x_i;\theta_{i}), f_t(x_t;\theta_{t})) \tag{1-10} (ω^,θ^i,θ^t)=argω,θ^i,θ^tmaxI^ωJSD(fi(xi;θi),ft(xt;θt))(1-10)
其中的 f i ( x i ) f_i(x_i) fi(xi) f t ( x t ) f_t(x_t) ft(xt)​是图片和文本的编码器,如Fig 1.2所示。

clip_lite_image_text_encoder

Fig 1.2 图片编码器和文本编码器,通过优化JS下界间接进行互信息优化。

Reference

[1]. Radford, A., Kim, J. W., Hallacy, C., Ramesh, A., Goh, G., Agarwal, S., … & Sutskever, I. (2021). Learning transferable visual models from natural language supervision. arXiv preprint arXiv:2103.00020.

[2]. https://fesian.blog.csdn.net/article/details/119515146

[3]. He, K., Fan, H., Wu, Y., Xie, S., & Girshick, R. (2020). Momentum contrast for unsupervised visual representation learning. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 9729-9738).

[4]. Shrivastava, Aman, Ramprasaath R. Selvaraju, Nikhil Naik, and Vicente Ordonez. “CLIP-Lite: Information Efficient Visual Representation Learning from Textual Annotations.” arXiv preprint arXiv:2112.07133 (2021).

[5]. M.D Donsker and S.R.S Varadhan. Asymptotic evaluation of certain markov process expectations for large time, iv. Communications on Pure and Applied Mathematics, 36(2):183–212, 1983.

[6]. Hjelm, R. Devon, Alex Fedorov, Samuel Lavoie-Marchildon, Karan Grewal, Phil Bachman, Adam Trischler, and Yoshua Bengio. “Learning deep representations by mutual information estimation and maximization.” arXiv preprint arXiv:1808.06670 (2018).


http://www.ppmy.cn/news/229981.html

相关文章

2020牛客暑期多校第八场K-Kabaleo Lite(贪心)

博客园食用链接:https://www.cnblogs.com/lonely-wind-/p/13429843.html 题目大意:给你n种菜,每种 b i b_i bi​盘,能够获得的利润为 a i a_i ai​,每个人只能从1开始吃连续的种类的菜,问在满足人数最多的情…

小米9线刷ROM

下载通用刷机工具 下载地址:http://bigota.d.miui.com/tools/MiFlash2018-5-28-0.zip 安装驱动 执行XiaoMiFlash.exe运行后,点击左上角Driver,再点击安装即可。 下载对应机型的tgz压缩包 请检查文件后缀名是否为".tgz",如果为…

手机屏幕的物理分辨率和逻辑分辨率

2019独角兽企业重金招聘Python工程师标准>>> https://www.zhihu.com/question/57351740 https://www.25xt.com/appdesign/8336.html 转载于:https://my.oschina.net/swingcoder/blog/1821978

使用kubekey的all-in-one安装K8S1.24及KubeSphere3.3

KubeSphere简介 官网:https://kubesphere.com.cn/ 有中文,别人介绍的很详细,笔者不再赘述,本篇主要实操。 KubeSphere可以很方便地部署devops的各种组件: 常用组件一应俱全,对于非专业运维的开发人员异常…

用eclipse+goclipse插件+gdb搭建go语言开发调试环境---Error in final launch sequence Failed to execute MI command

一、安装goclipse 默认大家已经装好了eclipse和jdk配置 (1)打开eclipse,help->install new software->work with中输入 http://goclipse.github.io/releases/ 出现可以全选上 (2) 安装好之后,window->prefer…

hls中c语言的用法,如何在Vitis HLS中使用C语言代码创建AXI4-Lite接口

如何在Vitis HLS中使用C语言代码创建AXI4-Lite接口 在本教程中,我们将来聊一聊有关如何在 Vitis HLS 中使用 AXI4-Lite 接口创建定制 IP 的基础知识。n-ZOe]3 注:在 Vivado HLS 中使用 AXI 创建 IP 的过程与使用 Vitis HLS 的过程不同。如果您想要在 Viv…

k8s篇-Pod健康检测

一、POD健康检查机制 POD 有 2 种探测类型: 存活性探测 (pod.spec.containers.livenessProbe) 与 就绪性探测(pod.spec.containers.readinessProbe)。就绪和存活探测可以在同一个Pod容器上并行使用。 livenessProbe: 检测容器是否处于running状态&…

springboot整合定时框架-Elastic-job-lite

一、前言 本文Github地址 官网地址 当当网张亮主导开发的分布式任务调度框架,结合zookeeper技术解决quartz框架在分布式系统中重复的定时任务导致的不可预见的错误! Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Jo…