(高能预警!)为什么Gram矩阵可以代表图像风格?带你揭开图像风格迁移的神秘面纱!

文章目录

  • (高能预警)为什么Gram矩阵可以代表图像风格
    • 简介
    • 风格迁移概述
    • 领域适应
    • 相关知识
      • Gram矩阵
      • 特征值分解
      • 核函数
      • 希尔伯特空间
      • 可再生核希尔伯特空间
      • 最大平均差异(MMD)
    • 图像风格计算方法回顾
    • 开始证明
    • 结论
    • 参考资料

(高能预警)为什么Gram矩阵可以代表图像风格

简介

在本文中我将以如下方式进行阐述。
我们先了解了图像风格迁移的概念和问题,知道了Gram矩阵是什么。从特征值分解进行类比得到核函数的概念。简介希尔伯特空间,引入再生核函数得到再生核希尔伯特空间。最后介绍统计学方法最大平均差异(MMD)。知道上述数学知识后,我们再回顾图像风格迁移中的计算风格的代价函数。然后从原来的代价函数出发,利用我们的数学知识进行推导,最后得出我们原来计算的图像风格的代价值其实就是两个图片特征的最大平均差异(MMD)。

风格迁移概述

(高能预警!)为什么Gram矩阵可以代表图像风格?带你揭开图像风格迁移的神秘面纱!_第1张图片
现在图像风格迁移有了很多方法,人们用各种方式来自加快图像迁移的速度,改善图像风格迁移的效果。尽管这些方法比原始的神经样式转换有了进一步的改进,但它们都忽略了图像风格转换中的基本问题:为什么Gram矩阵可以代表图像的风格样式? 这种模糊的理解限制了对图像风格转移的进一步研究。

领域适应

领域适应属于迁移学习领域。 它旨在将在源域上学习的模型转移到未标记的目标域。 域适应的关键部分是测量和最小化源和目标分布之间的差异。 最常见的差异度量是最大均值差异(MMD),该度量值测量了可再生核希尔伯特空间中样本均值的差异。 在领域适应性工作中,它是一个流行的选择。通过对源域中的数据进行白化然后重新关联到目标域来对齐二阶统计量。 通过简单地调制所有批归一化(BN)层中的统计信息,提出了一种无参数的深度自适应方法。

相关知识

Gram矩阵

A A T 就 是 A 的 G r a m 矩 阵 AA^T就是A的Gram矩阵 AATAGramGram矩阵实际上可看做是不同特征之间的偏心协方差矩阵(即没有减去均值的协方差矩阵),在每一个特征层中,每一个数字都来自于一个特定卷积核在特定位置的卷积,因此每个数字就代表一个特征的强度,而Gram矩阵的计算的实际上是两两特征之间的相关性,哪两个特征是同时出现的,哪两个是此消彼长的等等,同时,Gram矩阵的对角线元素,还体现了每个特征在图像中出现的量,因此,Gram矩阵有助于把握整个图像的大体风格。有了表示风格的Gram矩阵,要度量两个图像风格的差异,只需比较他们Gram矩阵的差异即可。

特征值分解

对于一个实对称矩阵 A A A,存在一个实数 λ \lambda λ和向量 x x x使得 A x = λ x Ax=\lambda x Ax=λx这样, λ \lambda λ就是 A A A的特征值, x x x就是对应的特征向量,如果 A A A有两个不同的特征值 λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2 ( λ 1 ≠ λ 2 ) (\lambda_1 \ne \lambda_2) λ1=λ2,分别对应特征向量 x 1 x_1 x1 x 2 x_2 x2。经过变换可以得到 λ 1 x 1 T x 2 = ( λ 1 x 1 ) T x 2 = x 1 T A T x 2 = x 1 T A x 2 = λ 2 x 1 T x 2 \lambda_1 x_1^T x_2 = (\lambda_1x_1)^Tx_2=x_1^TA^Tx_2=x_1^TAx_2=\lambda_2 x_1^Tx_2 λ1x1Tx2=(λ1x1)Tx2=x1TATx2=x1TAx2=λ2x1Tx2因为 λ 1 ≠ λ 2 \lambda_1\ne \lambda_2 λ1=λ2,所以有 x 1 T x 2 = 0 x_1^Tx_2=0 x1Tx2=0,因此得到实对称矩阵不同特征值对应的特征向量相互正交
对于实对称矩阵 A ∈ R n × n A\in \mathcal{R}^{n\times n} ARn×n,我们可以找到 n n n个特征值和 n n n个特征向量,把 A A A分解成如下形式
A = Q D Q T A=QDQ^T A=QDQT其中Q是一个正交矩阵矩阵 ( Q Q T = I ) (QQ^T=I) (QQT=I) D = d i a g ( λ 1 , λ 2 , ⋯   , λ n ) D=diag(\lambda_1,\lambda_2,\cdots,\lambda_n) D=diag(λ1,λ2,,λn),把 A A A进行特征值分解后展开可以得到 A = Q D Q T = ( q 1 , q 2 , ⋯   , q n ) ( λ 1 λ 2 ⋱ λ n ) ( q 1 T q 2 T ⋮ q n T ) = ( λ 1 q 1 , λ 2 q 2 , ⋯   , λ n q n ) ( q 1 T q 2 T ⋮ q n T ) = ∑ i = 1 n λ i q i q i T \begin{aligned}A=QDQ^T&=\begin{pmatrix}q_1,q_2,\cdots,q_n\end{pmatrix}\begin{pmatrix} \lambda_1&&&\\ &\lambda_2&&\\ &&\ddots&\\ &&&\lambda_n \end{pmatrix}\begin{pmatrix} q_1^T\\ q_2^T\\ \vdots\\ q_n^T \end{pmatrix}\\ &=\begin{pmatrix}\lambda_1q_1,\lambda_2q_2,\cdots,\lambda_nq_n\end{pmatrix}\begin{pmatrix} q_1^T\\ q_2^T\\ \vdots\\ q_n^T \end{pmatrix}\\ &=\sum_{i=1}^n\lambda_iq^iq_i^T \end{aligned} A=QDQT=(q1,q2,,qn)λ1λ2λnq1Tq2TqnT=(λ1q1,λ2q2,,λnqn)q1Tq2TqnT=i=1nλiqiqiT其中 { q i } i = 1 n \{q_i\}_{i=1}^n {qi}i=1n R n \mathcal{R}^n Rn的一组正交基。

核函数

一个函数 f ( x ) f(x) f(x)可以看成是一个无限维向量,具有两个自变量的函数 K ( x , y ) K(x,y) K(x,y),可以看成是一个无限维矩阵。如果 K ( x , y ) = K ( y , x ) 并 且 ∬ f ( x ) K ( x , y ) f ( y ) ≥ 0 K(x,y)=K(y,x)并且\iint f(x)K(x,y)f(y)\ge0 K(x,y)=K(y,x)f(x)K(x,y)f(y)0对于任意的函数 f f f都成立,那么 K ( x , y ) K(x,y) K(x,y)就是对称并且半正定的,具有这样性质的 K ( x , y ) K(x,y) K(x,y)就是一个正定核函数。
正定核函数还有一个等价的定义:如果 K ( x , y ) K(x,y) K(x,y)可以表示成以下形式 K ( x , y ) = < ϕ ( x ) , ϕ ( y ) > K(x,y)=<\phi(x),\phi(y)> K(x,y)=<ϕ(x),ϕ(y)>其中 ϕ \phi ϕ是希尔伯特空间空间的一个映射(可以做到从低维映射到高维,让本来不是线性可分的变成线性可分,比如异或操作), < ϕ ( x ) , ϕ ( y ) > <\phi(x),\phi(y)> <ϕ(x),ϕ(y)>代表两者的内积,那么称 K ( x , y ) K(x,y) K(x,y)是一个正定核函数。
类似与矩阵的特征值和特征函数,存在特征值 λ \lambda λ和本征函数 ψ ( x ) \psi(x) ψ(x)使得 ∫ K ( x , y ) ψ ( x ) d x = λ ψ ( y ) \int K(x,y)\psi(x)dx=\lambda\psi(y) K(x,y)ψ(x)dx=λψ(y)对于不同的特征值 λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2以及对于的本征函数 ψ 1 ( x ) \psi_1(x) ψ1(x) ψ 2 ( x ) \psi_2(x) ψ2(x)我们可以通过变换得到 ∫ λ 1 ψ 1 ( x ) ψ 2 ( x ) d x = ∫ ∫ K ( y , x ) ψ 1 ( y ) d y ψ 2 ( x ) d x = ∫ ∫ K ( x , y ) ψ 2 ( x ) d x ψ 1 ( y ) d y = ∫ λ 2 ψ 2 ( y ) ψ 1 ( y ) d y = ∫ λ 2 ψ 2 ( x ) ψ 1 ( x ) d x \begin{aligned} \int \lambda_1\psi_1(x)\psi_2(x)dx&=\int \int K(y,x) \psi_1(y)dy\psi_2(x)dx\\ &=\int \int K(x,y)\psi_2(x)dx\psi_1(y)dy\\ &=\int \lambda_2\psi_2(y)\psi_1(y)dy\\ &=\int \lambda_2\psi_2(x)\psi_1(x)dx \end{aligned} λ1ψ1(x)ψ2(x)dx=K(y,x)ψ1(y)dyψ2(x)dx=K(x,y)ψ2(x)dxψ1(y)dy=λ2ψ2(y)ψ1(y)dy=λ2ψ2(x)ψ1(x)dx所以我们可以得到 < ψ 1 , ψ 2 > = ∫ ψ 1 ( x ) ψ 2 ( x ) d x = 0 <\psi_1,\psi_2>=\int \psi_1(x)\psi_2(x)dx=0 <ψ1,ψ2>=ψ1(x)ψ2(x)dx=0不同的本征函数之间相互正交。
对于一个核函数,有着无穷个特征值 { λ i } i = 1 ∞ \{\lambda_i\}_{i=1}^{\infty} {λi}i=1和对应的本征函数 { ψ i } i = 1 ∞ \{\psi_i\}_{i=1}^{\infty} {ψi}i=1类似于矩阵的特征值分解, K ( x , y ) K(x,y) K(x,y)可以表示成本征函数的组合 K ( x , y ) = ∑ i = 0 ∞ λ i ψ i ( x ) ψ i ( y ) K(x,y)=\sum_{i=0}^{\infty}\lambda_i\psi_i(x)\psi_i(y) K(x,y)=i=0λiψi(x)ψi(y)因为我们知道 < ψ i , ψ j > = ∫ ψ i ( x ) ψ j ( x ) d x = 0 ( i ≠ j ) <\psi_i,\psi_j>=\int \psi_i(x)\psi_j(x)dx=0(i\ne j) <ψi,ψj>=ψi(x)ψj(x)dx=0(i=j),所以 { ψ i } i = 1 ∞ \{\psi_i\}_{i=1}^{\infty} {ψi}i=1是函数空间的正交基。
常用的核函数如下:

  • 多项式核函数 K ( x , y ) = ( γ x T y + C ) d K(x,y)=(\gamma x^Ty+C)^d K(x,y)=(γxTy+C)d
  • 高斯径向基核 K ( x , y ) = e x p ( − γ ∣ ∣ x − y ∣ ∣ 2 ) K(x,y)=exp(-\gamma||x-y||^2) K(x,y)=exp(γxy2)
  • Sigmoid核 K ( x , y ) = t a n h ( γ x T y + C ) K(x,y)=tanh(\gamma x^Ty+C) K(x,y)=tanh(γxTy+C)
    例子:证明 k ( x , y ) = e x p ( − γ ∣ ∣ x − y ∣ ∣ 2 ) k(x,y)=exp(-\gamma||x-y||^2) k(x,y)=exp(γxy2)是一个核函数 e x p ( − γ ∣ ∣ x − y ∣ ∣ 2 ) = e x p ( − γ x 2 ) e x p ( 2 γ x y ) e x p ( − γ y 2 ) = e x p ( − γ x 2 ) ∑ n = 0 ∞ ( 2 γ n x n y n n ! ) e x p ( − γ y 2 ) ( 利 用 泰 勒 展 开 ) = e x p ( − γ x 2 ) ψ ( x ) ψ ( y ) e x p ( − γ y 2 ) = ϕ ( x ) ϕ ( y ) \begin{aligned}exp(-\gamma||x-y||^2)&=exp(-\gamma x^2)exp(2\gamma xy)exp(-\gamma y^2)\\ &=exp(-\gamma x^2)\sum_{n=0}^{\infty}(\frac{2\gamma^n x^ny^n}{n!})exp(-\gamma y^2)(利用泰勒展开)\\ &=exp(-\gamma x^2)\psi(x)\psi(y)exp(-\gamma y^2)\\ &=\phi(x)\phi(y)\end{aligned} exp(γxy2)=exp(γx2)exp(2γxy)exp(γy2)=exp(γx2)n=0(n!2γnxnyn)exp(γy2)()=exp(γx2)ψ(x)ψ(y)exp(γy2)=ϕ(x)ϕ(y) ϕ ( x ) = e x p ( − γ x 2 ) ⋅ ( 1 , 2 γ 1 ! x , 2 γ 2 2 ! , ⋯   ) \phi (x)=exp(-\gamma x^2)·(1,\sqrt{\frac{2\gamma}{1!}}x,\sqrt{\frac{2\gamma^2}{2!}},\cdots) ϕ(x)=exp(γx2)(1,1!2γ x,2!2γ2 ,)
    例子:证明 K ( x , y ) = ( γ x T y + C ) d K(x,y)=(\gamma x^Ty+C)^d K(x,y)=(γxTy+C)d 是一个核函数 ( γ x T y + C ) d = ∑ n = 0 d C d n γ n x n y n C d − n ( 利 用 二 项 式 定 理 ) = ϕ ( x ) ϕ ( y ) \begin{aligned}(\gamma x^Ty+C)^d&=\sum_{n=0}^{d}C_d^n\gamma^nx^ny^nC^{d-n}(利用二项式定理)\\ &=\phi(x)\phi(y)\end{aligned} (γxTy+C)d=n=0dCdnγnxnynCdn()=ϕ(x)ϕ(y) ϕ ( x ) = ∑ n = 0 d C d n C d − n γ n x n \phi(x)=\sum_{n=0}^d\sqrt{C_d^nC^{d-n}\gamma^n}x^n ϕ(x)=n=0dCdnCdnγn xn

希尔伯特空间

在数学里,希尔伯特空间(英语:Hilbert space)即完备的内积空间,也就是说一个带有内积的完备向量空间。希尔伯特空间是有限维欧几里得空间的一个推广,使之不局限于实数的情形和有限的维数,但又不失完备性(而不像一般的非欧几里得空间那样破坏了完备性)。与欧几里得空间相仿,希尔伯特空间也是一个内积空间,其上有距离和角的概念(及由此引申而来的正交性与垂直性的概念)。此外,希尔伯特空间还是一个完备的空间,其上所有的柯西序列会收敛到此空间里的一点,从而微积分中的大部分概念都可以无障碍地推广到希尔伯特空间中。
完备性: 对极限是封闭的,如果有一个序列 { k n } ∈ H , lim ⁡ n → ∞ k n = k ∈ H \{k_n\}\in \mathcal{H},\lim_{n\to \infty}k_n=k\in \mathcal{H} {kn}H,limnkn=kH这样就是封闭的。
举个例子比如 1.4 , 1.41 , 1.414 , 1.4142 , 1.41421 … … 最 终 收 敛 于 2 1.4,1.41,1.414,1.4142,1.41421……最终收敛于\sqrt{2} 1.41.411.4141.41421.414212 所以有理数空间对于极限运算是不封闭的。
无限维: 就是有无限个维度。
内积空间:

  1. 对称性: < f , g > = < g , f > = <f,g>=<g,f>
  2. 正定性: < f , f > ≥ 0 , < f , f > = 0 ⇔ f = 0 \ge 0 ,=0\Leftrightarrow f=0 <f,f>0,<f,f>=0f=0
  3. 对第一变元的线性性: < a f 1 + b f 2 , g > = a < f 1 , g > + b < f 2 , g > =a+b <af1+bf2,g>=a<f1,g>+b<f2,g>

线性空间: 希尔伯特空间满足线性空间的所有性质。加法的交换律,结合律,零元,负元,数乘的交换律,单位一,数乘与加法的结合律。

可再生核希尔伯特空间

{ λ i ψ i } i = 1 ∞ \{\sqrt{\lambda_i} \psi_i\}_{i=1}^{\infty} {λi ψi}i=1是希尔伯特空间 H \mathcal{H} H的正交基的集合。那么,希尔伯特空间的所有函数或是向量都可以表示成这些基的线性组合。 f = ∑ i = 1 ∞ f i λ i ψ i f=\sum_{i=1}^{\infty}f_i\sqrt{\lambda_i}\psi_i f=i=1fiλi ψi我们可以把 f f f表示成希尔伯特空间 H \mathcal{H} H的一个无限维向量 f = ( f 1 , f 2 , ⋯   ) H T f=(f_1,f_2,\cdots)_{\mathcal{H}}^{T} f=(f1,f2,)HT对于另一个函数 g = ( g 1 , g 2 , ⋯   ) H T g=(g_1,g_2,\cdots)_\mathcal{H}^T g=(g1,g2,)HT,我们有 < f , g > H = ∑ i = 1 ∞ f i g i _\mathcal{H}=\sum_{i=1}^{\infty}f_ig_i <f,g>H=i=1figi对于核函数 K K K K ( x , y ) K(x,y) K(x,y)代表 K K K x , y x,y x,y处的值, K ( ⋅ , ⋅ ) K(·,·) K(,)表示核函数本身(无限维矩阵),我们使用 K ( x , ⋅ ) K(x,·) K(x,)来表示 x x x行的一元函数或无限维向量,也就是把核函数的一个参数固定为 x x x。由此我们可以得到 K ( x , ⋅ ) = ∑ i = 0 ∞ λ i ψ i ( x ) ψ i K(x,·)=\sum_{i=0}^{\infty}\lambda_i\psi_i(x)\psi_i K(x,)=i=0λiψi(x)ψi在希尔伯特空间 H \mathcal{H} H中我们可以这样表示 K ( x , ⋅ ) = ( λ 1 ψ 1 ( x ) , λ 2 ψ 2 ( x ) , ⋯   ) H T K(x,·)=(\sqrt{\lambda_1}\psi_1(x),\sqrt{\lambda_2}\psi_2(x),\cdots)^T_\mathcal{H} K(x,)=(λ1 ψ1(x),λ2 ψ2(x),)HT因此 < K ( x , ⋅ ) , K ( y , ⋅ ) > H = ∑ i = 1 ∞ λ i ψ i ( x ) ψ i ( y ) = K ( x , y ) _\mathcal{H}=\sum_{i=1}^\infty \lambda_i\psi_i(x)\psi_i(y)=K(x,y) <K(x,),K(y,)>H=i=1λiψi(x)ψi(y)=K(x,y)这就是核的可再生性,因此 H \mathcal{H} H是可再生核希尔伯特空间。
现在我们的问题是如何把一个点映射到我们想要的特征空间,我们定义如下映射 Φ ( x ) = K ( x , ⋅ ) = ( λ 1 ψ ( x ) , λ 2 ψ 2 ( x ) , ⋯   ) T \Phi(x)=K(x,·)=(\sqrt{\lambda_1}\psi(x),\sqrt{\lambda_2}\psi_2(x),\cdots)^T Φ(x)=K(x,)=(λ1 ψ(x),λ2 ψ2(x),)T然后我们把点 x x x映射到 H \mathcal{H} H。这里 Φ \Phi Φ不是函数,因为它指向特征空间中的向量或函数,它是一个映射。 < Φ ( x ) , Φ ( y ) > H = < K ( x , ⋅ ) , K ( y , ⋅ ) > H = K ( x , y ) <\Phi(x),\Phi(y)>_{\mathcal{H}}=_{\mathcal{H}}=K(x,y) <Φ(x),Φ(y)>H=<K(x,),K(y,)>H=K(x,y)因此,我们实际上不需要知道映射是什么样的,特征空间是什么或什么是特征空间的基。对于对称的正定函数 K K K一定会存在至少一个映射 Φ \Phi Φ和一个特征空间 H \mathcal{H} H满足 < Φ ( x ) , Φ ( y ) > = K ( x , y ) <\Phi(x),\Phi(y)>=K(x,y) <Φ(x),Φ(y)>=K(x,y)这就是核技巧。

最大平均差异(MMD)

基本假设: 对于所有以分布生成的样本空间为输入的函数 ϕ \phi ϕ,如果两个分布生成的足够多的样本在 ϕ \phi ϕ上的对应的像的均值都相等,那么那么可以认为这两个分布是同一个分布。
假设有两个样本集合 X = { x i } i = 1 n X=\{x_i\}_{i=1}^n X={xi}i=1n Y = { y i } i = 1 m Y=\{y_i\}_{i=1}^m Y={yi}i=1m其中 x i x_i xi y j y_j yj分别来自不同的分布 p p p q q q。最大平均差异(MMD)是常用两个样本检测的检验统计量,我们的零假设是 p = q p=q p=q。因为总体MMD消失当且仅当 p = q p=q p=q,所以使用MMD来衡量两个分布之间的差异。这个通过将MMD和一个给定的阈值相比较得到,如果MMD大于阈值,那么就拒绝原假设,也就是两个分布不同。如果MMD小于某个阈值,就接受原假设。我们得到MMD的平方如下( ϕ ( x ) 是 x 在 可 再 生 核 希 尔 伯 特 空 间 的 映 射 \phi(x)是x在可再生核希尔伯特空间的映射 ϕ(x)x) M D D 2 [ X , Y ] = ∣ ∣ E x [ ϕ ( x i ) ] − E y [ ϕ ( x i ) ] ∣ ∣ 2 = ∣ ∣ 1 n ∑ i = 1 n ϕ ( x i ) − 1 m ∑ j = 1 m ϕ ( y i ) ∣ ∣ 2 = 1 n 2 ∑ i = 1 n ∑ i ′ = 1 n ϕ ( x i ) T ϕ ( x i ′ ) + 1 m 2 ∑ j = 1 m ∑ j ′ = 1 m ϕ ( y j ) T ϕ ( y j ′ ) − 2 n m ∑ i = 1 n ∑ j = 1 m ϕ ( x i ) T ϕ ( y j ′ ) = 1 n 2 ∑ i = 1 n ∑ i ′ = 1 n k ( x i , x i ′ ) + 1 m 2 ∑ j = 1 m ∑ j ′ = 1 m k ( y j , y j ′ ) − 2 n m ∑ i = 1 n ∑ j = 1 m k ( x i , y i ) \begin{aligned}MDD^2[X,Y]&=||E_x[\phi(x_i)]-E_y[\phi(x_i)]||^2\\ &=||\frac{1}{n}\sum_{i=1}^n\phi(x_i)-\frac{1}{m}\sum_{j=1}^m\phi(y_i)||^2\\ &=\frac{1}{n^2}\sum_{i=1}^n\sum_{i'=1}^n\phi(x_i)^T\phi(x_{i'})+\frac{1}{m^2}\sum_{j=1}^m\sum_{j'=1}^m\phi(y_j)^T\phi(y_{j'})-\frac{2}{nm}\sum_{i=1}^n\sum_{j=1}^m\phi(x_i)^T\phi(y_{j'})\\ &=\frac{1}{n^2}\sum_{i=1}^n\sum_{i'=1}^nk(x_i,x_{i'})+\frac{1}{m^2}\sum_{j=1}^m\sum_{j'=1}^mk(y_j,y_{j'})-\frac{2}{nm}\sum_{i=1}^n\sum_{j=1}^mk(x_i,y_i)\end{aligned} MDD2[X,Y]=Ex[ϕ(xi)]Ey[ϕ(xi)]2=n1i=1nϕ(xi)m1j=1mϕ(yi)2=n21i=1ni=1nϕ(xi)Tϕ(xi)+m21j=1mj=1mϕ(yj)Tϕ(yj)nm2i=1nj=1mϕ(xi)Tϕ(yj)=n21i=1ni=1nk(xi,xi)+m21j=1mj=1mk(yj,yj)nm2i=1nj=1mk(xi,yi)

图像风格计算方法回顾

代价函数分为以下两个部分
J c o n t e n t ( C , G ) J_{content}(C,G) Jcontent(C,G)第一部分被称作内容代价,这是一个关于内容图片和生成图片的函数,它是用来度量生成图片 G G G的内容与内容图片 C C C的内容有多相似。
J s t y l e ( S , G ) J_{style}(S,G) Jstyle(S,G)第二部分被称作风格代价,这是一个关于风格图片和生成图片的函数,它是用来度量生成图片 G G G的内容与风格图片 S S S的内容有多相似。
J ( G ) = α J c o n t e n t ( C , G ) + β J s t y l e ( S , G ) J(G)=\alpha J_{content}(C,G)+\beta J_{style}(S,G) J(G)=αJcontent(C,G)+βJstyle(S,G)
S S S图片的内容函数如下,我们令这个 a [ l ] [ C ] a^{[l][C]} a[l][C] a [ l ] [ G ] a^{[l][G]} a[l][G](其中 a [ l ] [ C ] a^{[l][C]} a[l][C]代表 C C C图片的第 l l l层),代表这两个图片的指定层的激活函数值。如果这两个激活值大小接近,那么就意味着两个图片的内容相似。
J c o n t e n t ( C , G ) = 1 2 ∣ ∣ a [ l ] [ C ] − a [ l ] [ G ] ∣ ∣ 2 J_{content}(C,G)=\frac{1}{2}||a^{[l][C]}-a^{[l][G]}||^2 Jcontent(C,G)=21a[l][C]a[l][G]2
S S S图片的每个位置的风格函数如下,其中 G [ l ] [ S ] G^{[l][S]} G[l][S]是一个 n C [ l ] × n C [ l ] n_C^{[l]}\times n_C^{[l]} nC[l]×nC[l]的矩阵, a i j k [ l ] [ S ] a_{ijk}^{[l][S]} aijk[l][S]表示 i i i k k k k k k信道的数值。简单来说就是不同的信道之间的对应位置两两相乘。
G k k ′ [ l ] [ S ] = ∑ i = 1 n H [ l ] ∑ j = 1 n W [ l ] a i j k [ l ] [ S ] a i j k ′ [ l ] [ S ] G_{kk'}^{[l][S]}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_W^{[l]}}a_{ijk}^{[l][S]}a_{ijk'}^{[l][S]} Gkk[l][S]=i=1nH[l]j=1nW[l]aijk[l][S]aijk[l][S] G G G图片的每个位置的风格函数对应如下:
G k k ′ [ l ] [ G ] = ∑ i = 1 n H [ l ] ∑ j = 1 n W [ l ] a i j k [ l ] [ G ] a i j k ′ [ l ] [ G ] G_{kk'}^{[l][G]}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_W^{[l]}}a_{ijk}^{[l][G]}a_{ijk'}^{[l][G]} Gkk[l][G]=i=1nH[l]j=1nW[l]aijk[l][G]aijk[l][G]我们算出来的风格矩阵如下:
J s t y l e [ l ] ( S , G ) = 1 ( 2 n H [ l ] n W [ l ] n C [ l ] ) 2 ∑ k n C [ l ] ∑ k ′ n C [ l ] ( G k k ′ [ l ] [ S ] − G k k ′ [ l ] [ G ] ) 2 J_{style}^{[l]}(S,G)=\frac{1}{(2n_H^{[l]}n_W^{[l]}n_C^{[l]})^2}\sum_{k}^{n_C^{[l]}}\sum_{k'}^{n_C^{[l]}}(G_{kk'}^{[l][S]}-G_{kk'}^{[l][G]})^2 Jstyle[l](S,G)=(2nH[l]nW[l]nC[l])21knC[l]knC[l](Gkk[l][S]Gkk[l][G])2

开始证明

为了叙述简单,我们把矩阵平铺成一维的,令 n M [ l ] = n H [ l ] × n W [ l ] n_M^{[l]}=n_H^{[l]}\times n_W^{[l]} nM[l]=nH[l]×nW[l]
得到 J s t y l e [ l ] ( S , G ) = 1 ( 2 n C [ l ] n M [ l ] ) 2 ∑ k n C [ l ] ∑ k ′ n C [ l ] ( ∑ i = 1 n M [ l ] a i k [ l ] [ S ] a i k ′ [ l ] [ S ] − ∑ i = 1 n M [ l ] a i k [ l ] [ G ] a i k ′ [ l ] [ G ] ) 2 = 1 ( 2 n C [ l ] n M [ l ] ) 2 ∑ k n C [ l ] ∑ k ′ n C [ l ] ( ( ∑ i = 1 n M [ l ] a i k [ l ] [ S ] a i k ′ [ l ] [ S ] ) 2 + ( ∑ i = 1 n M [ l ] a i k [ l ] [ G ] a i k ′ [ l ] [ G ] ) 2 ) 2 − 2 ( ∑ i = 1 n M [ l ] a i k [ l ] [ S ] a i k ′ [ l ] [ S ] ) ( ∑ i = 1 n M [ l ] a i k [ l ] [ G ] a i k ′ [ l ] [ G ] ) 2 ) ) = 1 ( 2 n C [ l ] n M [ l ] ) 2 ∑ k n C [ l ] ∑ k ′ n C [ l ] ∑ i = 1 n M [ l ] ∑ j = 1 n M [ l ] ( a i k [ l ] [ S ] a i k ′ [ l ] [ S ] a j k [ l ] [ S ] a j k ′ [ l ] [ S ] + a i k [ l ] [ G ] a i k ′ [ l ] [ G ] a j k [ l ] [ G ] a j k ′ [ l ] [ G ] − 2 ( a i k [ l ] [ S ] a i k ′ [ l ] [ S ] a j k [ l ] [ G ] a j k ′ [ l ] [ G ] ) = 1 ( 2 n C [ l ] n M [ l ] ) 2 ∑ i = 1 n M [ l ] ∑ j = 1 n M [ l ] ∑ k n C [ l ] ∑ k ′ n C [ l ] ( a i k [ l ] [ S ] a i k ′ [ l ] [ S ] a j k [ l ] [ S ] a j k ′ [ l ] [ S ] + a i k [ l ] [ G ] a i k ′ [ l ] [ G ] a j k [ l ] [ G ] a j k ′ [ l ] [ G ] − 2 ( a i k [ l ] [ S ] a i k ′ [ l ] [ S ] a j k [ l ] [ G ] a j k ′ [ l ] [ G ] ) = 1 ( 2 n C [ l ] n M [ l ] ) 2 ∑ i = 1 n M [ l ] ∑ j = 1 n M [ l ] ( ( ∑ k = 1 n C [ l ] a i k [ l ] [ S ] a j k [ l ] [ S ] ) 2 + ( ∑ k = 1 n C [ l ] a i k [ l ] [ G ] a j k [ l ] [ G ] ) 2 − 2 ( ∑ i = 1 n C [ l ] a i k [ l ] [ S ] a j k [ l ] [ G ] ) 2 ) = 1 ( 2 n C [ l ] n M [ l ] ) 2 ∑ i = 1 n M [ l ] ∑ j = 1 n M [ l ] ( ( s i T s j ) 2 + ( g i T g j ) 2 − 2 ( s i T g j ) 2 ) ( 使 用 k ( x , y ) = ( x T y ) 2 的 核 函 数 ) = 1 ( 2 n C [ l ] n M [ l ] ) 2 ∑ i = 1 n M [ l ] ∑ j = 1 n M [ l ] ( k ( s i , s j ) + k ( g i , g j ) − 2 k ( s i , g j ) ) = 1 4 ( n C [ l ] ) 2 M M D 2 [ S [ l ] , G [ l ] ] \begin{aligned}J_{style}^{[l]}(S,G)&=\frac{1}{(2n_C^{[l]}n_M^{[l]})^2}\sum_{k}^{n_C^{[l]}}\sum_{k'}^{n_C^{[l]}}(\sum_{i=1}^{n_M^{[l]}}a_{ik}^{[l][S]}a_{ik'}^{[l][S]}-\sum_{i=1}^{n_M^{[l]}}a_{ik}^{[l][G]}a_{ik'}^{[l][G]})^2\\ &=\frac{1}{(2n_C^{[l]}n_M^{[l]})^2}\sum_{k}^{n_C^{[l]}}\sum_{k'}^{n_C^{[l]}}\left((\sum_{i=1}^{n_M^{[l]}}a_{ik}^{[l][S]}a_{ik'}^{[l][S]})^2+(\sum_{i=1}^{n_M^{[l]}}a_{ik}^{[l][G]}a_{ik'}^{[l][G]})^2)^2-2(\sum_{i=1}^{n_M^{[l]}}a_{ik}^{[l][S]}a_{ik'}^{[l][S]})(\sum_{i=1}^{n_M^{[l]}}a_{ik}^{[l][G]}a_{ik'}^{[l][G]})^2)\right)\\ &=\frac{1}{(2n_C^{[l]}n_M^{[l]})^2}\sum_{k}^{n_C^{[l]}}\sum_{k'}^{n_C^{[l]}}\sum_{i=1}^{n_M^{[l]}}\sum_{j=1}^{n_M^{[l]}}(a_{ik}^{[l][S]}a_{ik'}^{[l][S]}a_{jk}^{[l][S]}a_{jk'}^{[l][S]}+a_{ik}^{[l][G]}a_{ik'}^{[l][G]}a_{jk}^{[l][G]}a_{jk'}^{[l][G]}-2(a_{ik}^{[l][S]}a_{ik'}^{[l][S]}a_{jk}^{[l][G]}a_{jk'}^{[l][G]})\\ &=\frac{1}{(2n_C^{[l]}n_M^{[l]})^2}\sum_{i=1}^{n_M^{[l]}}\sum_{j=1}^{n_M^{[l]}}\sum_{k}^{n_C^{[l]}}\sum_{k'}^{n_C^{[l]}}(a_{ik}^{[l][S]}a_{ik'}^{[l][S]}a_{jk}^{[l][S]}a_{jk'}^{[l][S]}+a_{ik}^{[l][G]}a_{ik'}^{[l][G]}a_{jk}^{[l][G]}a_{jk'}^{[l][G]}-2(a_{ik}^{[l][S]}a_{ik'}^{[l][S]}a_{jk}^{[l][G]}a_{jk'}^{[l][G]})\\ &=\frac{1}{(2n_C^{[l]}n_M^{[l]})^2}\sum_{i=1}^{n_M^{[l]}}\sum_{j=1}^{n_M^{[l]}}\left((\sum_{k=1}^{n_C^{[l]}}a_{ik}^{[l][S]}a_{jk}^{[l][S]})^2+(\sum_{k=1}^{n_C^{[l]}}a_{ik}^{[l][G]}a_{jk}^{[l][G]})^2-2(\sum_{i=1}^{n_C^{[l]}}a_{ik}^{[l][S]}a_{jk}^{[l][G]})^2\right)\\ &=\frac{1}{(2n_C^{[l]}n_M^{[l]})^2}\sum_{i=1}^{n_M^{[l]}}\sum_{j=1}^{n_M^{[l]}}\left((s_i^Ts_j)^2+(g_i^Tg_j)^2-2(s_i^Tg_j)^2\right)(使用k(x,y)=(x^Ty)^2的核函数)\\ &=\frac{1}{(2n_C^{[l]}n_M^{[l]})^2}\sum_{i=1}^{n_M^{[l]}}\sum_{j=1}^{n_M^{[l]}}\left(k(s_i,s_j)+k(g_i,g_j)-2k(s_i,g_j)\right)\\ &=\frac{1}{4({n_C^{[l]})}^2}MMD^2[S^{[l]},G^{[l]}]\end{aligned} Jstyle[l](S,G)=(2nC[l]nM[l])21knC[l]knC[l](i=1nM[l]aik[l][S]aik[l][S]i=1nM[l]aik[l][G]aik[l][G])2=(2nC[l]nM[l])21knC[l]knC[l](i=1nM[l]aik[l][S]aik[l][S])2+(i=1nM[l]aik[l][G]aik[l][G])2)22(i=1nM[l]aik[l][S]aik[l][S])(i=1nM[l]aik[l][G]aik[l][G])2)=(2nC[l]nM[l])21knC[l]knC[l]i=1nM[l]j=1nM[l](aik[l][S]aik[l][S]ajk[l][S]ajk[l][S]+aik[l][G]aik[l][G]ajk[l][G]ajk[l][G]2(aik[l][S]aik[l][S]ajk[l][G]ajk[l][G])=(2nC[l]nM[l])21i=1nM[l]j=1nM[l]knC[l]knC[l](aik[l][S]aik[l][S]ajk[l][S]ajk[l][S]+aik[l][G]aik[l][G]ajk[l][G]ajk[l][G]2(aik[l][S]aik[l][S]ajk[l][G]ajk[l][G])=(2nC[l]nM[l])21i=1nM[l]j=1nM[l](k=1nC[l]aik[l][S]ajk[l][S])2+(k=1nC[l]aik[l][G]ajk[l][G])22(i=1nC[l]aik[l][S]ajk[l][G])2=(2nC[l]nM[l])21i=1nM[l]j=1nM[l]((siTsj)2+(giTgj)22(siTgj)2)(使k(x,y)=(xTy)2)=(2nC[l]nM[l])21i=1nM[l]j=1nM[l](k(si,sj)+k(gi,gj)2k(si,gj))=4(nC[l])21MMD2[S[l],G[l]]其中 S [ l ] S^{[l]} S[l] G [ l ] G^{[l]} G[l]分别代表两张图片的特征集。这样,将得到某个卷积层不同信道的结果都视为一个单独的样本,因此计算风格损失函数的时候会忽略特征的位置,这是图像风格迁移所需要的。所以我们知道了我们算出的两个图像Gram矩阵的差异,并不断减小这个差异的过程。其实是在减小 M M D 2 MMD^2 MMD2,让两个图像的分布更接近于同一个分布。所以图像的风格其实就是图像的特征分布,而图像风格迁移就是在减小分布的差异。

结论

  1. 图像的风格可以由CNN不同层中的特征分布本质上表示。
  2. 图像风格迁移可以看作是从内容图像到样式图像的分布对齐(distribution alignment )过程。

参考资料

http://songcy.net/posts/story-of-basis-and-kernel-part-2/
https://arxiv.org/pdf/1701.01036.pdf
http://www.umiacs.umd.edu/~hal/docs/daume04rkhs.pdf
http://open.163.com/newview/movie/free?pid=M8PTB0GHI&mid=M8PTBUHT0

你可能感兴趣的:(计算机视觉)