∇ \nabla ∇ 联系方式:
e-mail: FesianXu@gmail.com
github: https://github.com/FesianXu
知乎专栏: 计算机视觉/计算机图形理论与应用
微信公众号:
传统的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,y∑PXY(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(X∣Y)=−x∑PX(x)log(PX(x))=−EPX[log(PX)]=y∑PY(y)[−x∑PX∣Y(x∣y)log(PX∣Y(x∣y))]=EPY[−EPX∣Y[logPX∣Y]](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} PX∣Y(x∣y)=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(X∣Y)=−x∑PX(x)log(PX(x))−y∑PY(y)[−x∑PX∣Y(x∣y)log(PX∣Y(x∣y))]=−x∑PX(x)log(PX(x))+y∑x∑PXY(x,y)log(PX∣Y(x∣y))=−y∑x∑PXY(x,y)log(PX(x))+y∑x∑PXY(x,y)log(PX∣Y(x∣y))=y∑x∑PXY(x,y)[log(PX∣Y(x∣y))−log(PX(x))]=y∑x∑PXY(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×Y→R,其对 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~[logx′∑exp(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)
其中的 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所示。
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).