Introduction
作者引进了一个叫做CORAL的方法,通过对source domain和target domain进行线性变换来将他们各自的的二阶统计量对齐(对齐均值与协方差矩阵)。但是作者认为CORAL实际上需要先对图像进行特征提取,再进行线性转换,再训练一个SVM分类器,比较麻烦。作者对CORAL方法进行了拓展,通过在source domain和target domain之间建立一个最小化source domain和target domain数据之间相关性的损失函数来将它并入deep networks。作者将CORAL方法改进做非线性变换,并且直接作用于source domain和target domain。
Deep CORAL
假设:target domain上没有标记的数据。第一个目标是:平衡一个大的具有很好泛化的数据域(a large generic domain,比如ImageNet)和source domain之间的deep feature(深度网络学到的特征)。可以通过将神经网络的参数用那个large generic domain预训练过的网络的参数初始化并微调来达到目的。第二个目标是:最小化source domain和target domain的deep feature的二阶统计量的差别。网络架构: 在fc8这一层当中,作者引入了CORAL loss这一损失函数。(AlexNet架构)
CORAL loss
source domain:
数据:
DS={xi}
,
x∈Rd
标签:
LS={yi}
,
i∈{1,...,L}
有
nS
个数据,维度为
d
(像素数什么的)
target domain:
数据:
DT={ui}
,
u∈Rd
有
nT
个数据,维度为
d
(像素数什么的)
用
DijS(DijT)
表示第
j
维度下source(target) domain数据中的第
i
个样本。用
CS(CT)
表示特征的协方差矩阵。
CORAL loss:
lCORAL=∥CS−CT∥2F4d2
后一个是矩阵的Frobenius范数协方差矩阵计算:
CS=1nS−1(DTSDS−(lTDS)T(lTDS)nS)
CT=1nT−1(DTTDT−(lTDT)T(lTDT)nT)
其中
l
是一个所有元素为1的列向量gradient:
∂lCORAL∂DijS=1d2(nS−1)(DTS−((lTDS)TlT)T(CS−CT)nS)ij
∂lCORAL∂DijT=1d2(nS−1)(DTT−((lTDT)TlT)T(CS−CT)nS)ij
论文作者提到说这里使用的是批次协方差(? batch covariances)
End-to-end Domain Adaptation with CORAL Loss
在减少分类损失(classification loss)的同时,引入CORAL loss作为正则项来减少过拟合的可能性(使得训练出来的结果invariant to the difference between source and target domain)loss function:
l=lCLASS+∑i=1tλilCORAL
t
是CORAL loss 层的数目
λ
是用于平衡分类准确度和域适应的一个参数(就是让
lCLASS
和
lCORAL
都不要太大)以上两个参数相互对抗最终达到一个平衡(最终的feature可以在target domain工作的很好)。
结论
利用CORAL loss可以限制source domain和target domain之间数据的距离。(这个和利用核函数的MMD很像)一种新颖的正则约束项