Gram Matrices理解

Gram Matrices理解


首先我们理一下Gram Matrices的计算过程:

假设输入图像经过卷积后,得到的feature map为[b, ch, h, w]。我们经过flatten和矩阵转置操作,可以变形为[b, ch, h*w]和[b, h*w, ch]的矩阵。再对1,2维作矩阵内积得到[b, ch, ch]大小的矩阵,这就是我们所说的Gram Matrices。 (蓝色条表示每个通道flatten后特征点)

这里写图片描述


Gram Matrices为什么能捕获风格信息呢?风格信息又是什么呢?这里我们首先对矩阵中单个元素作分析。

比如我们假设输入图像经过卷积后得到的[b, ch, h*w]的feature map,其中我们用 fm 表示第m个通道的特征层, fn 为第n通道特征层。则Gram Matrices中元素 fmfn 代表的就是m通道和n通道特征flatten后按位相乘(内积)。图形化计算过程就是:(我用蓝色色表示feature响应值大,其它色表示响应值小。其中黄色为m通道特征,灰色为n通道特征)

这里写图片描述

可以看到, fmfn 记录了第m通道特征和第n通道特征在不同位置下融合后的响应。而乘法的作用可以理解为只是让大的更大,小的更小,通过增大特征间的变化率,突出不同层融合特征间的差异。

我们对每一通道对应特征点乘完之后,再相加。这一步就去掉了特征的空间信息。因为我们可以猜测,一张图片的风格信息应该是独立于空间信息的,在表征风格的时候我们需要去掉每个特征(一个通道表示一个特征)的空间信息。虽然我们在同一通道下消除了空间信息,但是在两两组合过程中我们却有考虑同位置相乘来保留特征间(不同通道下)的位置信息。所以我们得到的Gram Matrices就是用不同信息敏感的滤波器,在相同位置抽取到的不同特征之间的两两组合。或者引用这篇博客的话:Gram矩阵的每个值可以说是代表m通道的特征与n通道的特征的互相关程度。

这里写图片描述


那滤波器到底抽取到了什么东西呢?

由于滤波器的性质,它可以是高通可以是低通,或多或少会对诸如高光,阴影,饱和度等特征敏感,这样在滤波后就会在诸如高光,阴影,饱和度高的地区产生更高的响应幅值。这样通过在特征图的同一个位置下两两融合该位置的不同特性滤波器得到的特征响应,诸如高光响应幅值和高饱和度响应幅值的融合响应幅值,即得到了Gram Matrices的元素 fmfn 。然后通过比较两张输入图Gram Matrices的element-wise的差别,即元素 fmfn fmfn 之间的差别,来区分风格。所以,

就以上分析,我们可以解释Gram Matrices抽取到的是:在图片的同一位置下,不同特征之间的组合。

而有人证明了Gram Matrices是MMD的二次多项式核变种,那MMD表征的是什么信息呢?

MMD的理解可以参考我的上一篇博客,或者这篇博客,这里不多作介绍。我们可以根据MMD和Gram Matrices的证明过程来判断:

这里写图片描述

由图可知, Ml Nl 分别表示通道和H*W flatten后的特征点。其证明了我们是对不同通道间的各个位置特征点对应相乘和对不同位置特征点下各个通道对应相乘是一样的。图解就是这样的:

这里写图片描述

黄色和蓝色分别代表两个特征位置下各个通道的特征点集合,相乘后得到右边结果。解释类似上面Gram Matrices。 因为滤波器滤波后得到的每个特征点表征的是输入图片的语义信息,所以

这里我们可以解释MMD抽取到的是:在图片的同一特征下,不同语义信息之间的组合。

综上,个人理解CNN下的风格为:图片的语义信息的组合和特征信息的组合。


reference

【1】Gatys L A, Ecker A S, Bethge M. Image Style Transfer Using Convolutional Neural Networks[C]// Computer Vision and Pattern Recognition. IEEE, 2016:2414-2423.
【2】http://blog.csdn.net/hungryof/article/details/60466513
【3】https://zhuanlan.zhihu.com/p/28478034
【4】Li Y, Wang N, Liu J, et al. Demystifying Neural Style Transfer[J]. 2017:2230-2236.

  • 18
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值