Gram矩阵在风格迁移中的使用
1、格拉姆矩阵的定义
1) 什么是格拉姆矩阵:
在内积空间中,一组向量[v1, v2, … , vn]的格拉姆矩阵(Gram Matrix)是内积的埃尔米特矩阵,其元素由 G i j = ⟨ v i , v j ⟩ G_{ij}=\langle v_i,v_j \rangle Gij=⟨vi,vj⟩给出。
对于一个给定的矩阵 A A A(我问题的出发点是图像处理),矩阵 A T A A^TA ATA是列向量的格拉姆矩阵,矩阵 A A T AA^T AAT是行向量的格拉姆矩阵。
2)格拉姆矩阵具有什么样的作用
按照我的理解,使用格拉姆矩阵就是对于一个向量,去计算与其转置向量的内积,从而得到该向量的格拉姆矩阵,而这个格拉姆矩阵具有的特点就是:对称。一个 n n n维的向量可以得到 n ∗ n n*n n∗n维的格拉姆矩阵,其中每一个元素都可以表示为特征 i i i与特征 j j j的相关性(特征 i i i的出现与特征 j j j的出现是否存在关联,是否成正比?),而矩阵对角线上的元素可以表示为某个特征 i i i在整个图像中的强度(特征 i i i是否在图像中占据了主导因素)。
2、风格迁移的任务描述
1)什么是风格迁移
当我们同时得到两张图片,一张是风格图片 style image,另一张是内容图片 content image,现在需要得到一张风格化图片 stylized image。风格化图片的特点就在于,它具有内容图片的主要内容(比如人物特征、景物等),但是具有风格图片的美术风格。
在我所调研的几篇论文中,因为都将CNN网络应用到了风格迁移任务,所以要介绍一下CNN网络中是怎么定义内容与风格的。
【2】内容:如果说两张图片在内容上是近似的,这指的是,在使用CNN网络进行图片识别的时候,图片的深层特征 high-level features 在欧氏距离上接近;
【2】风格:如果说两张图片在风格上是近似的,这指的是,在使用CNN网络进行图片识别的时候,图片的浅层特征 low-level features 在欧氏距离上接近;
【1】上图是一个很明显可以反映出“浅层特征”和“深层特征”不同特点的图片。这里采用了图片重构的方法,将输入图片经过CNN网络,再从不同网络层的输出信息来重构图片。从图片中可以看出,上半部分为风格图片,下半部分为内容图片。随着网络卷积层的不断深入,特征也逐渐从“浅层特征”变成了深层特征。明显可以观察到,自左而右,在重构房屋图片的过程中,一开始可以高精度、几乎无损失还原出房屋的图片,在深层网络的适合,大量局部的细节丢失,但是房屋轮廓结构信息得到很好的保留;而在风格图片的重构过程中,一开始的重构图片完全看不出任何细节内容(没有月亮的形态、没有古堡),主要都是图片的颜色纹理,但是随着网络的深入,可以看出原图所具有的城堡、月亮的形态。
2)风格迁移常见的网络架构
从我调研的论文中,选择两个经典的“风格迁移”网络架构进行介绍。
结构一