文章

10 风格损失函数(Style Cost Function)

10 风格损失函数(Style Cost Function)

10 风格损失函数(Style Cost Function)

🎨 一、什么是图像的“风格”?

在神经风格迁移(Neural Style Transfer)中,“风格”并不是指颜色或构图等直观概念,而是通过卷积神经网络(CNN)某一层的特征激活之间的统计相关性来定义的。

  • 图像经过 CNN 某一层后,会得到一个三维激活张量:

    \[a^{[l]} \in \mathbb{R}^{n_H^{[l]} \times n_W^{[l]} \times n_C^{[l]}}\]

    其中:

    • $n_H^{[l]}$:高度
    • $n_W^{[l]}$:宽度
    • $n_C^{[l]}$:通道数(即该层的滤波器数量)
  • 风格 = 不同通道之间激活值的共现模式(correlation)
    例如:如果某个区域同时有“垂直纹理”和“橙色”,那么这两个特征对应的通道就会高度相关。


🔍 二、风格矩阵(Gram Matrix / Style Matrix)

为了量化这种相关性,我们引入风格矩阵(Style Matrix) ,也称为 Gram 矩阵

定义(对某一层 $l$ 和某张图像 $X$):

设 $a_{i,j,k}^{[l]!(X)}$ 表示图像 $X$ 在第 $l$ 层、位置 $(i,j)$、通道 $k$ 的激活值。

则风格矩阵 $G^{[l]!(X)}$ 是一个 $n_C^{[l]} \times n_C^{[l]}$ 的矩阵,其元素为:

\[G^{[l]\!(X)}_{k,k'} = \sum_{i=1}^{n_H^{[l]}} \sum_{j=1}^{n_W^{[l]}} a_{i,j,k}^{[l]\!(X)} \cdot a_{i,j,k'}^{[l]\!(X)}\]

✅ 注意:这不是标准协方差,因为没有减去均值,而是直接计算内积。但它能有效捕捉通道间的共激活强度。

  • $G_{k,k’}$ 越大 → 通道 $k$ 和 $k’$ 在空间上经常同时被激活 → 它们代表的视觉特征(如“垂直边缘”+“红色”)倾向于共现。
  • 这种共现模式就是“风格”的数学体现。

⚖️ 三、风格代价函数(Style Cost Function)

目标:让生成图像 $G$ 的风格尽可能接近风格参考图像 $S$

单层风格损失(Layer-wise Style Loss):

\[J_{\text{style}}^{[l]}(S, G) = \frac{1}{4 \cdot (n_C^{[l]})^2 \cdot (n_H^{[l]} n_W^{[l]})^2} \left\| G^{[l]\!(S)} - G^{[l]\!(G)} \right\|_F^2\]

其中:

  • $|\cdot|F$ 是 Frobenius 范数:$|A|_F^2 = \sum{i,j} A_{i,j}^2$
  • 分母是归一化项(不同教材可能省略或调整),用于平衡不同层的尺度差异。

💡 实践中,常省略复杂归一化,仅用超参数 $\lambda$ 控制权重。


🧩 四、多层风格损失(Multi-layer Style Loss)

单一卷积层只能捕捉特定尺度的风格(如浅层捕捉纹理,深层捕捉全局结构)。因此,通常组合多个层的风格损失

\[J_{\text{style}}(S, G) = \sum_{l} \lambda^{[l]} \cdot J_{\text{style}}^{[l]}(S, G)\]
  • $\lambda^{[l]}$:超参数,控制第 $l$ 层对总风格损失的贡献权重。
  • 常用层:conv1_1, conv2_1, conv3_1, conv4_1, conv5_1(来自 VGG 网络)

✅ 同时使用浅层(细节纹理)和深层(抽象风格)效果更佳。


🧠 五、整体损失函数(Total Loss)

神经风格迁移的总损失 = 内容损失 + 风格损失:

\[J(G) = \alpha \cdot J_{\text{content}}(C, G) + \beta \cdot J_{\text{style}}(S, G)\]
  • $C$:内容图像
  • $S$:风格图像
  • $G$:待优化的生成图像
  • $\alpha, \beta$:平衡内容与风格的超参数

通过梯度下降法(如 L-BFGS)直接优化像素值 $G$,使 $J(G)$ 最小化。


✅ 六、关键要点总结

概念说明
风格的本质特征通道间的共激活模式(相关性)
风格矩阵 $G$Gram 矩阵,$G_{k,k’} = \sum_{i,j} a_{k} \cdot a_{k’}$
风格损失两幅图像风格矩阵的 Frobenius 距离
多层融合组合多个 CNN 层提升风格迁移质量
优化对象直接优化生成图像 $G$ 的像素值(非网络参数)

本文由作者按照 CC BY 4.0 进行授权