Mechrez R, Talmi I, Zelnik-Manor L. The contextual loss for image transformation with non-aligned data[J]. arXiv preprint arXiv:1803.02077, 2018.
Mechrez R, Talmi I, Shama F, et al. Maintaining natural image statistics with the contextual loss[J]. arXiv preprint arXiv:1803.04626, 2018: 1-16.
无论是风格转换的任务中,还是超分辨率重建的任务中,有一个核心内容是找到生成图像跟目标图像特征之间的相似性度量。
提出问题:(1)对于风格迁移的任务,从统计的观点来看,像素级loss要求生成图像跟目标图像对齐,而Gram loss这样的全局loss虽然可以转换全局特征,但它不能限制内容;因此我们想到将图像视为特征的集合,并根据特征之间的相似性度量图像之间的相似性,忽略特征的空间位置,在一定程度上相似性度量不要求图像完全对齐,允许局部形变。(2)对于超分任务,从概率的角度看,也是希望生成图像跟目标图像的分布尽可能相似,因此提出使用一个比较特征分布的目标函数,而不仅仅是比较外观。
1、特征之间的相似性度量
当一幅图像的大多数特征在另一幅图像中存在相似的特征时,我们认为一对图像是相似的,基于这个观察,我们定义两幅图像的相似性为:对于每个特征yj,我们找到与它最相似的特征xi,然后对所有yj求和相应的特征相似值:
如果特征xi比Y中的其他特征更接近于特征yj,我们认为特征xi在上下文上类似于特征yj。并且我们希望这种相似性对于距离的尺度是鲁棒的,也就是说不管xi离yj有多远,只要xi远离所有的yj那么CXij就会很低,考虑余弦距离作为距离度量,并对距离归一化,如图4
我们通过求幂从距离转换到相似性:
我们将特征之间的上下文相似度定义为归一化相似度的尺度不变版本:
(极端例子:(1),因为;当特征集相差很远的时候,,因此(2)通过设置进行二值化, 等于在Y中找到X中每个特征的最近邻。从而等价于计算Y中有多少个特征是X中一个特征的最近邻)
2、特征分布之间的距离度量
如何比较特征的分布是一个关键问题,广泛采用的散度度量包括KL散度,。而要计算特征分布之间的散度,就得估计出特征的分布,分布的估计方法又包括参数化的方法(极大似然估计)及非参数化的方法(核密度估计),这里,作者提出 Contextual loss就可视为KL距离的一种近似。
两个密度PX和PY之间的KL散度为:
它计算概率PX和PY之间对数差的期望,因此可重写为:
这需要从特征集X和Y中近似参数化密度PX,PY,采用多元核密度估计估计特征分布:
我们采用的一种常见简化方法是, 不是在的常规网格上计算MKDE,而是直接在样本上计算MKDE,即,我们设pk =xk,这意味着和(前向KL散度)。因此KL散度可进一步写为:
然而,多元高斯核是常见的核函数,但需要设置带宽矩阵。多元核密度估计对带宽矩阵的选择非常敏感,现有的调优方案需要解决一个优化问题,而这在训练过程中是不可能的。因此,我们接下来提出一个既实用又易于处理的近似。
我们的近似是基于进一步的观察得到的: 生成具有相同特征分布的图像是不够的,我们还希望样本点相似。也就是说要求尽可能的接近
假设样本数量足够大,我们设置MKDE内核,使其近似于一个delta函数,则上式的第一项和第二项分别为:
因此,可对KL散度进行近似:
这里
-
The Contextual Loss:将核近似为delta函数,优化KL散度等价于优化Contextual loss。首先将距离设为余弦距离,然后将距离归一化,最后得到近似的核为:
-
The Chamfer Distance:设置Aij的一种更简单的方法是选用高斯核,并取一个固定的带宽矩阵,此时优化KL散度等价于优化 asymmetric Chamfer Distance :
补: