Multi-view learning
在之前的学习中,每个样本都只有一个特征。训练样本特征即为 Xas,测试样本特征为 Xat。
在这里,我们则考虑一个样本可能会有多个特征,即训练样本可能为 XasXbs,而测试样本为 XatXbt。此处样本特征产生的方式较为多样,可能是同一个模态使用不同方式提取出的特征;也有可能是多模态各自提取不同的特征。
Single-view learningTraining feature XasTesting feature XatMulti-view learningTraining feature Testing feature XasXatXbsXbtXcsXct⋯⋯
下面将介绍一些 multi-view learning 的方法,这些方法都是在解决如何使用多种特征的问题。
Consensus principle
一致性原则:不同的特征存在一些一致性的信息。
模型特征的信息可以考虑两个方面,一个是输入的特征(feature),另一个是输出的数(decision value)。
Canonical Correlation Analysis(CCA)
CCA 从输入特征出发。即给每种特征学习一个投影,使得投影后的特征相似性较大。
- 首先对 Xas, Xbs 做去中心化(decentralization)。
- 学习投影矩阵 wa,wb,分别对两个特征做投影。Xˉas=waTXasXˉbs=wbTXbs
Xˉas,Xˉbsmax(XˉasXˉasT)(XˉbsXˉbsT)XˉasXˉbsT⟶wa,wbmax(waTXasXasTwa)(wbTXbsXbsTwb)waTXasXbsTwb
最后使用投影之后的特征做训练和测试。训练特征:Xˉas=waTXasXˉbs=wbTXbs,测试特征:Xˉat=waTXatXˉbt=wbTXbt。
SVM-2K
该方法是从 decision value 的层面做一致性约束。
对于传统的 SVM:
w,b,ξimins.t.21∥w∥2+Ci=1∑Nξiyi(wTxi+b)≥1−ξi,∀i,ξi≥0,∀i.
而对于 SVM-2K,需要考虑两个特征:
wb,bb,ξibwa,ba,ξia,ηimins.t. 21∥wa∥2+21∥wb∥2+Ci=1∑N(ξia+ξib)+γi=1∑Nηiyi(waTxia+ba)≥1−ξia,∀iyi(wbTxib+bb)≥1−ξib,∀iξia≥0,ξib≥0,ηi≥0,∀i
其中 ηi 是为了使得两个 decision value 接近,会有
∣waTxia+ba−wbTxib−bb∣≤ηi,∀i,
最终对测试样本做预测,则使用
21[(waTxia+ba)+(wbTxib+bb)]
Complementary principle
互补原则:不同的特征存在可以互补的信息。
Early fusion
先对几个 feature 进行拼接,得到一个 feature,然后再用这个 feature 进行训练和测试。
训练特征:[Xas;Xbs]
测试特征:[Xat;Xbt]
Late fusion
在训练时对几个 feature 分别训练分类器,在测试时对几个分类器的结果做平均。比如:
21[(waTxia+ba)+(wbTxib+bb)]
View selection
为不同的 feature 赋予不同的权重。
Example: Multiple-Kernel Learning (MKL)
为简单,这里只考虑 hard margin 的 svm。此时传统的 SVM 为:
wmins.t.21∥w∥2yiwTxi≥1,∀i.
而 MKL 为:
wv,dmins.t. 21v=1∑Vdv∥wv∥2yiv=1∑wvTxiv≥1,∀i,1Td=1,d≥0.
保留最后一个约束,使用拉格朗日乘子法
Lwv,α=21v∑dv∥wv∥2−i∑αi(yiv∑wvTxiv−1)∂wv∂Lwv,α=0⟹wv=dvXv(α∘y)
此时可以得到对偶问题:
dminαmaxs.t.−21v=1∑VdvαT(Kv∘(yyT))α+1Tαα≥0,1Td=1,d≥0.
可以看出这里的系数 dv 就是对不同特征的选择。对偶问题为 minmax 问题,可以通过交替更新的方式解决。
这里考虑的是有些信息只有训练样本有,但是测试样本没有。训练样本独有的信息称为 privilege information,而两者共有的信息称为 primary information。
比如从网上爬取图片的时候,可能还会得到文字信息;但是测试的样本没有。

或者拍摄采集图片时,可以获得包含深度信息的样本;但是测试样本没有。

- The same as multi-view learning, but not use PI for test images
- Generate pseudo PI for test images
- Use PI to control the training process
Multi-view Learning
CCA & SVM-2K
使用的方法和 multi-view 中相同,在训练时同时使用 primary information 和 privilege information,但是在测试的时候只使用 primary information。
以 RGB 图片和深度图为例:

此时可以学习一个从 RGB 图片到深度图的映射(比如使用 conditional GAN),给测试样本也生成深度图。此时就可以变成一个常规的 multi-view learning。
Hallucination network
或者先从深度图中提取 feature,此时就可以考虑学习从 RGB 图片到深度的 feature 的映射,然后给测试样本生成深度的 feature。

Hallucination network 解决的就是这个问题。

上图中的三个网络分别是
- 从 RGB 图片中提取 RGB feature
- 从 RGB 图片中提取深度 feature
- 从深度图中提取深度 feature
然后对这三个网络都计算了分类损失。除此之外,这里还加入了 Hallucination Loss,这个损失是两个深度 feature 之间的距离,目的是让从 RGB 和深度图片中提取的深度 feature 尽可能相似。
在测试阶段,就可以从 RGB 图片中分别提取 RGB 和深度 feature 了。

Use PI to control the training process
SVM+
w,b,w~,b~mins.t.21∥w∥2+2γ∥w~∥2+Ci=1∑N(w~Tx~i+b~)yi(wTxi+b)≥1−(w~Tx~i+b~),∀i,w~Tx~i+b~≥0,∀i.
原本的 slack variable ξi 被替换成了这里的 slack function (w~Tx~i+b~),而这个 slack function 则是由 privilege information 判断样本是否为 outlier。
想要求解,先列出拉格朗日展开式
Lw,b,w~,b~=21∥w∥2+2γ∥w~∥2+Ci=1∑N(w~Tx~i+b~)−i=1∑Nαi[yi(wTxi+b)−1+(w~Tx~i+b~)]−i=1∑Nβi(w~Tx~i+b~)
再对拉格朗日展开式进行求导:
∂w∂L=w−i∑αiyixi=0⟶w=i∑αiyixi∂b∂L=−i∑αiyi=0⟶i∑αiyi=0∂w~∂L=γw~+i=1∑N(C−αi−βi)x~i=0⟶w~=γ1i∑(αi+βi−C)x~ib~∂L=i=1∑N(C−αi−βi)=0⟶i∑(αi+βi)=NC
将求导得到的信息带入拉格朗日展开式,得到 dual form:
α,βmaxs.t.−21αT(K∘(yyT))α−2γ1(α+β−C1)TK~(α+β−C1)+1Tαα≥0,β≥0,αTy=0,(α+β)T1=NC.
If unlabeled test images are available in the training stage
在测试阶段反而信息更多。此时一种方法是类似方面,创造 Pseudo PI。
或者使用 Xbt 创造相似度矩阵 D

然后对测试集上的映射做约束
y~a,it=waTxa,it+bamini<j∑Dij(y~a,it−y~a,jt)2
第一个式子中 waT 和 ba 是使用 training data 训练出来的分类器;第二个式子为 Laplace loss,用于表示分类器预测出来的结果和 privilege information 相似度矩阵的符合程度,这个 loss 可以和训练分类器时标准的分类损失同时使用。即:
Ltotal=Lcls+Llap
这个 Laplace loss 在实际使用的时候可以化简成矩阵形式。令对角阵 A 满足 Ai,i=∑jDij,则可以写出 Laplace 矩阵 L=A−D,则 Laplace loss 有:
mini<j∑Dij(y~a,it−y~a,jt)2⟶mintr(Y~atLY~atT)