Gatys 等人在开创风格迁移这一方向的论文中提出可以用 Gram 矩阵衡量从网络中提取的特征之间的风格相关性, 也就是利用 Gram 矩阵计算 Style Loss. 然而, 作者并未明确指出 Gram 矩阵为何能表示风格. 通过查阅资料, 我找到以下结论:
- 图像的风格本质上可以用CNN不同层的特征分布来表示.
- 风格转移可以看作是一个从内容图像到风格图像的特征分布逐渐接近过程.
首先回忆 Gatys 等人表示 Style Loss 的方法. 方法给定内容图片 x c \mathbf{x}_c xc和风格图片 x s \mathbf{x}_s xs, 希望生成风格化图片 x ∗ \mathbf x^* x∗, x ∗ \mathbf x^* x∗, x c \mathbf{x}_c xc和 x s \mathbf{x}_s xs 在CNN第 l l l层提取出的特征像分别为 F l , P l , S l ∈ R N l × M l \mathbf{F}^l, \mathbf{P}^l, \mathbf{S}^l \in \mathbb{R}^{N_l\times M_l} Fl,Pl,Sl∈RNl×Ml. 其中 N l N_l Nl 为第 l l l 层的特征项的个数, M l M_l Ml 为特征项的长乘宽.
我们来考察 Style Loss 的表达式,
L
style
l
=
1
4
N
l
2
M
l
2
∑
i
=
1
N
l
∑
j
=
1
N
l
(
G
i
j
l
−
A
i
j
l
)
2
,
L^l_{\text{style}}=\frac{1}{4N_l^2M_l^2}\sum_{i=1}^{N_l}\sum_{j=1}^{N_l}(G_{ij}^l-A_{ij}^l)^2,
Lstylel=4Nl2Ml21i=1∑Nlj=1∑Nl(Gijl−Aijl)2,
其中 Gram 矩阵
G
l
∈
R
N
l
×
N
l
G^l\in\mathbb R^{N_l\times N_l}
Gl∈RNl×Nl 为
l
l
l 层向量化特征映射的内积:
G
i
j
l
=
∑
k
=
1
M
l
F
i
k
l
F
j
k
l
,
G_{ij}^l=\sum_{k=1}^{M_l}F_{ik}^lF_{jk}^l,
Gijl=k=1∑MlFiklFjkl,
A
l
\mathbf{A}^l
Al 也是
S
l
\mathbf{S}^l
Sl 对应的 Gram 矩阵.
核函数
核函数到再生希尔伯特空间的内容具体可以参见 From Zero to Reproducing Kernel Hilbert Spaces in Twelve Pages or Less. 下面简单写写我的理解, 函数 f ( x ) f(\mathbf{x}) f(x) 可以看做无穷维向量, 定义一个二元函数 K ( x , y ) K(\mathbf{x}, \mathbf{y}) K(x,y), 我们可以将其看做一个无穷维矩阵. 若 K K K 是对称的且是半正定的, 则称 K K K 为一个核函数.
一个核函数存在特征值
λ
\lambda
λ和特征向量
ϕ
(
x
)
\phi(x)
ϕ(x)使得
∫
K
(
x
,
y
)
ϕ
(
x
)
d
x
=
λ
ϕ
(
y
)
\int K(\mathbf x, \mathbf y)\phi(\mathbf x)\mathrm d\mathbf x=\lambda\phi(\mathbf y)
∫K(x,y)ϕ(x)dx=λϕ(y)
容易证明不同特征值
λ
1
,
λ
2
\lambda_1, \lambda_2
λ1,λ2对应的特征向量
ϕ
1
,
ϕ
2
\phi_1, \phi_2
ϕ1,ϕ2 的内积
<
ϕ
1
,
ϕ
2
>
=
∫
ϕ
1
(
x
)
ϕ
2
(
x
)
d
x
=
0.
<\phi_1,\phi_2>=\int\phi_1(\mathbf x)\phi_2(\mathbf x)\mathrm d\mathbf x=0.
<ϕ1,ϕ2>=∫ϕ1(x)ϕ2(x)dx=0.
Mercer’s theorem 指出, 对于核函数, 存在无穷多个特征值
{
λ
i
}
i
=
1
∞
\{\lambda_i\}_{i=1}^\infty
{λi}i=1∞ 对应无穷多个特征函数
{
ϕ
i
}
i
=
1
∞
\{\phi_i\}_{i=1}^\infty
{ϕi}i=1∞, 使得
K
(
x
,
y
)
=
∑
i
=
1
∞
λ
i
ϕ
i
(
x
)
ϕ
i
(
y
)
,
K(\mathbf x, \mathbf y) = \sum_{i=1}^{\infty}\lambda_i\phi_i(\mathbf x)\phi_i(\mathbf y),
K(x,y)=i=1∑∞λiϕi(x)ϕi(y),
即
{
ϕ
i
}
i
=
1
∞
\{\phi_i\}_{i=1}^\infty
{ϕi}i=1∞ 是函数空间的一组正交基.
多项式核是一种常用的核函数, 表达形式为
K
(
x
,
y
)
=
(
γ
x
T
y
+
C
)
d
.
K(\mathbf x, \mathbf y)=(\gamma\mathbf x^T\mathbf y+C)^d.
K(x,y)=(γxTy+C)d.
Reproducing Kernel Hilbert Space
令
{
λ
ϕ
i
}
i
=
1
∞
\{\sqrt{\lambda}\phi_i\}_{i=1}^\infty
{λϕi}i=1∞ 作为希尔伯特空间
H
\mathcal H
H 的一组正交基.
∀
f
∈
H
\forall f\in\mathcal{H}
∀f∈H,
f
=
∑
i
=
1
∞
f
i
λ
i
ϕ
i
,
f=\sum_{i=1}^{\infty}f_i\sqrt{\lambda_i}\phi_i,
f=i=1∑∞fiλiϕi,
则对于
H
\mathcal H
H 中两个函数
f
=
(
f
1
,
f
2
,
…
)
H
T
,
g
=
(
g
1
,
g
2
,
…
)
H
T
f=(f_1,f_2,\dots)_\mathcal{H}^T, g=(g_1,g_2,\dots)_\mathcal{H}^T
f=(f1,f2,…)HT,g=(g1,g2,…)HT, 有
<
f
,
g
>
H
=
∑
i
=
1
∞
f
i
g
i
.
<f,g>_\mathcal{H}=\sum_{i=1}^{\infty}f_ig_i.
<f,g>H=i=1∑∞figi.
对于核函数
K
K
K, 我们固定其中一个变量
x
\mathbf x
x, 则得到
K
(
x
,
⋅
)
=
∑
i
=
o
∞
λ
i
ϕ
i
(
x
)
ϕ
,
K(\mathbf x,\cdot)=\sum_{i=o}^\infty\lambda_i\phi_i(\mathbf x)\phi,
K(x,⋅)=i=o∑∞λiϕi(x)ϕ,
也是空间
H
\mathcal{H}
H 中的函数. 因此
<
K
(
x
,
⋅
)
,
K
(
y
,
⋅
)
>
H
=
∑
i
=
1
∞
λ
i
ϕ
i
(
x
)
ϕ
i
(
y
)
=
K
(
x
,
y
)
<K(\mathbf x,\cdot),K(\mathbf y,\cdot)>_{\mathcal{H}}=\sum_{i=1}^{\infty}\lambda_i\phi_i(\mathbf x)\phi_i(\mathbf y)=K(\mathbf x,\mathbf y)
<K(x,⋅),K(y,⋅)>H=i=1∑∞λiϕi(x)ϕi(y)=K(x,y)
这就是再生性质,
H
\mathcal{H}
H被称为再生核希尔伯特空间(RKHS).
有了RKHS, 我们就可以将一个分布映射到再生希尔伯特空间上的一个点, 这样两个分布之间的距离就可以用两个点的内积进行表示.
Maximum Mean Discrepancy
MMD 常被用来度量两个分布之间的距离, 是迁移学习中常用的损失函数. 定义如下,
X
=
{
x
i
}
i
=
1
n
X=\{\mathbf x_i\}_{i=1}^n
X={xi}i=1n 的分布为
p
p
p,
Y
=
{
y
j
}
j
=
1
m
Y=\{\mathbf y_j\}_{j=1}^m
Y={yj}j=1m 的分布为
q
q
q, 取核函数为
γ
=
1
,
C
=
0
,
d
=
2
\gamma=1, C=0, d=2
γ=1,C=0,d=2的多项式核函数, 有
MMD
2
[
X
,
Y
]
=
∥
E
p
[
ϕ
(
x
)
]
−
E
q
[
ϕ
(
y
)
]
∥
2
=
∥
1
n
∑
i
=
1
n
ϕ
(
x
i
)
−
1
m
∑
j
=
1
m
ϕ
(
y
j
)
∥
2
=
1
n
2
∑
i
=
1
n
∑
i
′
=
1
n
ϕ
(
x
i
)
T
ϕ
(
x
i
′
)
+
1
m
2
∑
j
=
1
n
∑
j
′
=
1
n
ϕ
(
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
n
∑
j
′
=
1
n
K
(
y
j
,
y
j
′
)
−
2
n
m
∑
i
=
1
n
∑
j
=
1
m
K
(
x
i
,
y
j
)
.
\begin{aligned} \text{MMD}^2[X, Y]=& \|\mathbf{E}_p[\phi(\mathbf x)]-\mathbf{E}_q[\phi(\mathbf y)]\|^2 \\ =&\|\frac{1}{n}\sum_{i=1}^{n}\phi(\mathbf{x}_i)-\frac{1}{m}\sum_{j=1}^{m}\phi(\mathbf{y}_j)\|^2 \\ =&\frac{1}{n^2}\sum_{i=1}^{n}\sum_{i'=1}^{n}\phi(\mathbf{x}_i)^T\phi(\mathbf{x}_{i'})+ \frac{1}{m^2}\sum_{j=1}^{n}\sum_{j'=1}^{n}\phi(\mathbf{y}_j)^T\phi(\mathbf{y}_{j'})\\ &- \frac{2}{nm}\sum_{i=1}^{n}\sum_{j=1}^{m}\phi(\mathbf{x}_i)^T\phi(\mathbf{y}_j) \\ =& \frac{1}{n^2}\sum_{i=1}^{n}\sum_{i'=1}^{n}K(\mathbf{x}_i,\mathbf{x}_{i'})+ \frac{1}{m^2}\sum_{j=1}^{n}\sum_{j'=1}^{n}K(\mathbf{y}_j, \mathbf{y}_{j'})- \frac{2}{nm}\sum_{i=1}^{n}\sum_{j=1}^{m}K(\mathbf{x}_i, \mathbf{y}_j). \end{aligned}
MMD2[X,Y]====∥Ep[ϕ(x)]−Eq[ϕ(y)]∥2∥n1i=1∑nϕ(xi)−m1j=1∑mϕ(yj)∥2n21i=1∑ni′=1∑nϕ(xi)Tϕ(xi′)+m21j=1∑nj′=1∑nϕ(yj)Tϕ(yj′)−nm2i=1∑nj=1∑mϕ(xi)Tϕ(yj)n21i=1∑ni′=1∑nK(xi,xi′)+m21j=1∑nj′=1∑nK(yj,yj′)−nm2i=1∑nj=1∑mK(xi,yj).
风格损失
我们重写风格损失表达式,
L
style
l
=
1
4
N
l
2
M
l
2
∑
i
=
1
N
l
∑
j
=
1
N
l
(
∑
k
=
1
M
l
F
i
k
l
F
j
k
l
−
∑
k
=
1
M
l
S
i
k
l
S
j
k
l
)
2
=
1
4
N
l
2
M
l
2
∑
i
=
1
N
l
∑
j
=
1
N
l
(
(
∑
k
=
1
M
l
F
i
k
l
F
j
k
l
)
2
+
(
∑
k
=
1
M
l
S
i
k
l
S
j
k
l
)
2
−
2
(
∑
k
=
1
M
l
F
i
k
l
F
j
k
l
)
(
∑
k
=
1
M
l
S
i
k
l
S
j
k
l
)
)
=
1
4
N
l
2
M
l
2
∑
i
=
1
N
l
∑
j
=
1
N
l
∑
k
1
=
1
M
l
∑
k
2
=
1
M
l
(
F
i
k
1
l
F
j
k
1
l
F
i
k
2
l
F
j
k
2
l
+
S
i
k
1
l
S
j
k
1
l
S
i
k
2
l
S
j
k
2
l
−
2
F
i
k
1
l
F
j
k
1
l
S
i
k
2
l
S
j
k
2
l
)
=
1
4
N
l
2
M
l
2
∑
k
1
=
1
M
l
∑
k
2
=
1
M
l
∑
i
=
1
N
l
∑
j
=
1
N
l
(
F
i
k
1
l
F
j
k
1
l
F
i
k
2
l
F
j
k
2
l
+
S
i
k
1
l
S
j
k
1
l
S
i
k
2
l
S
j
k
2
l
−
2
F
i
k
1
l
F
j
k
1
l
S
i
k
2
l
S
j
k
2
l
)
=
1
4
N
l
2
M
l
2
∑
k
1
=
1
M
l
∑
k
2
=
1
M
l
(
(
∑
i
=
1
N
l
F
i
k
1
l
F
i
k
2
l
)
2
+
(
∑
j
=
1
N
l
S
j
k
1
l
S
j
k
2
l
)
2
−
2
(
∑
i
=
1
N
l
F
i
k
1
l
S
j
k
2
l
)
2
)
=
1
4
N
l
2
M
l
2
∑
k
1
=
1
M
l
∑
k
2
=
1
M
l
(
K
(
f
k
1
l
,
f
k
2
l
)
+
K
(
s
k
1
l
,
s
k
2
l
)
−
2
K
(
f
k
1
l
,
s
k
2
l
)
)
=
1
4
N
l
2
MMD
2
[
F
l
,
S
l
]
,
\begin{aligned} L^l_{\text{style}}=&\frac{1}{4N_l^2M_l^2}\sum_{i=1}^{N_l}\sum_{j=1}^{N_l}\Bigl(\sum_{k=1}^{M_l}F_{ik}^lF_{jk}^l-\sum_{k=1}^{M_l}S_{ik}^lS_{jk}^l\Bigr)^2 \\ =& \frac{1}{4N_l^2M_l^2}\sum_{i=1}^{N_l}\sum_{j=1}^{N_l}\Bigl(\bigl(\sum_{k=1}^{M_l}F_{ik}^lF_{jk}^l\bigr)^2+\bigl(\sum_{k=1}^{M_l}S_{ik}^lS_{jk}^l\bigr)^2 -2\bigl(\sum_{k=1}^{M_l}F_{ik}^lF_{jk}^l\bigr)\bigl(\sum_{k=1}^{M_l}S_{ik}^lS_{jk}^l\bigr)\Bigr) \\ =& \frac{1}{4N_l^2M_l^2}\sum_{i=1}^{N_l}\sum_{j=1}^{N_l}\sum_{k_1=1}^{M_l}\sum_{k_2=1}^{M_l}\bigl(F_{ik_1}^lF_{jk_1}^l F_{ik_2}^lF_{jk_2}^l + S_{ik_1}^lS_{jk_1}^l S_{ik_2}^lS_{jk_2}^l -2F_{ik_1}^lF_{jk_1}^l S_{ik_2}^lS_{jk_2}^l\bigr) \\ =& \frac{1}{4N_l^2M_l^2}\sum_{k_1=1}^{M_l}\sum_{k_2=1}^{M_l}\sum_{i=1}^{N_l}\sum_{j=1}^{N_l}\bigl(F_{ik_1}^lF_{jk_1}^l F_{ik_2}^lF_{jk_2}^l + S_{ik_1}^lS_{jk_1}^l S_{ik_2}^lS_{jk_2}^l -2F_{ik_1}^lF_{jk_1}^l S_{ik_2}^lS_{jk_2}^l\bigr) \\ =& \frac{1}{4N_l^2M_l^2}\sum_{k_1=1}^{M_l}\sum_{k_2=1}^{M_l}\Bigl(\bigl(\sum_{i=1}^{N_l}F_{ik_1}^lF_{ik_2}^l\bigr)^2+\bigl(\sum_{j=1}^{N_l}S_{jk_1}^lS_{jk_2}^l\bigr)^2 -2\bigl(\sum_{i=1}^{N_l}F_{ik_1}^lS_{jk_2}^l\bigr)^2\Bigr) \\ =& \frac{1}{4N_l^2M_l^2}\sum_{k_1=1}^{M_l}\sum_{k_2=1}^{M_l}\Bigl(K(\mathbf{f}_{k_1}^l,\mathbf{f}_{k_2}^l)+ K(\mathbf{s}_{k_1}^l,\mathbf{s}_{k_2}^l) - 2K(\mathbf{f}_{k_1}^l,\mathbf{s}_{k_2}^l)\Bigr) \\ =&\frac{1}{4N_l^2}\text{MMD}^2[\mathcal F^l, \mathcal S^l], \end{aligned}
Lstylel=======4Nl2Ml21i=1∑Nlj=1∑Nl(k=1∑MlFiklFjkl−k=1∑MlSiklSjkl)24Nl2Ml21i=1∑Nlj=1∑Nl((k=1∑MlFiklFjkl)2+(k=1∑MlSiklSjkl)2−2(k=1∑MlFiklFjkl)(k=1∑MlSiklSjkl))4Nl2Ml21i=1∑Nlj=1∑Nlk1=1∑Mlk2=1∑Ml(Fik1lFjk1lFik2lFjk2l+Sik1lSjk1lSik2lSjk2l−2Fik1lFjk1lSik2lSjk2l)4Nl2Ml21k1=1∑Mlk2=1∑Mli=1∑Nlj=1∑Nl(Fik1lFjk1lFik2lFjk2l+Sik1lSjk1lSik2lSjk2l−2Fik1lFjk1lSik2lSjk2l)4Nl2Ml21k1=1∑Mlk2=1∑Ml((i=1∑NlFik1lFik2l)2+(j=1∑NlSjk1lSjk2l)2−2(i=1∑NlFik1lSjk2l)2)4Nl2Ml21k1=1∑Mlk2=1∑Ml(K(fk1l,fk2l)+K(sk1l,sk2l)−2K(fk1l,sk2l))4Nl21MMD2[Fl,Sl],
其中
F
l
\mathcal{F}^l
Fl 是
x
∗
\mathbf x^*
x∗ 的特征集, 每一个样本为
F
l
\mathbf F^l
Fl 的一列,
S
l
\mathcal S^l
Sl 对应风格图像
x
s
\mathbf x_s
xs. 这样, 特征像的每个点都被看做一个单独的样本, 求风格损失转换为求两个分布之间的差异. 因此点的位置信息就被抹掉了, 只留下了整体的特征分布信息, 在图像中具体表现为颜色、纹理等信息, 这就是风格转换想要达到的效果.
最后, 将这一结果与 AdaIN \cite{Huang2017ArbitraryST} 相比较. 简单来说, AdaIN 将内容图片在某些层特征的均值和标准差与风格图片在对应层特征的均值和标准差对齐. 主要想法同样也是将两张图片的特征信息看作两个分布, 然后使得内容图片的特征分布尽量接近风格图片的特征分布, 主要是均值和方差. Huang 等人抓住了风格的本质, 因此能够提出一种更加简单且普适的方法, 这一点值得我们学习.