Gram格拉姆矩陣在風格遷移中的應用

-牧野-發表於2018-07-27

Gram定義

n維歐式空間中任意k個向量之間兩兩的內積所組成的矩陣,稱為這k個向量的格拉姆矩陣(Gram matrix)



根據定義可以看到,每個Gram矩陣背後都有一組向量,Gram矩陣就是由這一組向量兩兩內積得到的,先說一下向量內積是做什麼的。


向量的內積,也叫向量的點乘,對兩個向量執行內積運算,就是對這兩個向量對應位一一相乘之後求和的操作,內積的結果是一個標量。例如對於向量a和向量b:

                            
a和b的內積公式為:



兩個向量的內積有什麼用呢?一個重要的應用就是可以根據內積判斷向量a和向量b之間的夾角和方向關係(詳細推導可參見:https://blog.csdn.net/dcrmg/article/details/52416832),具體來說:

  • a·b>0    方向基本相同,夾角在0°到90°之間
  • a·b=0    正交,相互垂直  
  • a·b<0    方向基本相反,夾角在90°到180°之間 

簡單來說就是內積可以反映出兩個向量之間的某種關係或聯絡。Gram矩陣是兩兩向量的內積組成的,所以Gram矩陣可以反映出該組向量中各個向量之間的某種關係

 

 

風格遷移中的Gram矩陣


深度學習中經典的風格遷移大體流程是:
1. 準備基準影象和風格影象
2. 使用深層網路分別提取基準影象(加白噪聲)和風格影象的特徵向量(或者說是特徵圖feature map)
3. 分別計算兩個影象的特徵向量的Gram矩陣,以兩個影象的Gram矩陣的差異最小化為優化目標,不斷調整基準影象,使風格不斷接近目標風格影象

這裡邊比較關鍵的一個是在網路中提取的特徵圖,一般來說淺層網路提取的是區域性的細節紋理特徵,深層網路提取的是更抽象的輪廓、大小等資訊。這些特徵總的結合起來表現出來的感覺就是影象的風格,由這些特徵向量計算出來的的Gram矩陣,就可以把影象特徵之間隱藏的聯絡提取出來,也就是各個特徵之間的相關性高低。如果兩個影象的特徵向量的Gram矩陣的差異較小,就可以認定這兩個影象風格是相近的。

總的來說,Gram Matrix可看做是影象各特徵之間的偏心協方差矩陣(即沒有減去均值的協方差矩陣),Gram計算的是兩兩特徵之間的相關性,哪兩個特徵是同時出現的,哪兩個是此消彼長的等等。另一方面,Gram的對角線元素,還體現了每個特徵在影象中出現的量,因此,Gram矩陣可以度量各個維度自己的特性以及各個維度之間的關係,所以可以反映整個影象的大體風格。只需要比較Gram矩陣就可以比較兩個影象的風格差異了。

相關文章