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的差別,即元素fmfnfmfn 之間的差別,來區分風格。所以,

就以上分析,我們可以解釋Gram Matrices抽取到的是:在圖片的同一位置下,不同特徵之間的組合。


而有人證明了Gram Matrices是MMD的二次多項式核變種,那MMD表徵的是什麼信息呢?

MMD的理解可以參考我的上一篇博客,或者這篇博客,這裏不多作介紹。我們可以根據MMD和Gram Matrices的證明過程來判斷:

這裏寫圖片描述

由圖可知,MlNl 分別表示通道和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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章