Gram 矩陣與神經網路風格遷移

2021-10-06 03:28:45 字數 2504 閱讀 7729

協方差矩陣

gram矩陣和協方差矩陣

gram矩陣意義

計算例項

gram矩陣是計算每個通道i的feature map與每個通道j的feature map的內積。

gram matrix的每個值可以說是代表i通道的feature map與j通道的feature map的互相關程度

神經網路風格遷移中的作用

gram矩陣來表示影象的風格特徵。gram matrix的特點:注重風格紋理等特徵,忽略空間資訊。

c ×h

×wc\times h \times w

c×h×

w,c是卷積核的通道數,一般稱為有c個卷積核。每乙個卷積核輸出的hxw代表這張影象的乙個 feature map,可以認為是一張特殊的影象——原始彩色影象可以看作rgb三個feature map拼接組合成的特殊feature maps。

公式簡單翻譯一下是:如果有xy兩個變數,每個時刻的「x值與其均值之差」乘以「v值與其均值之差」得到乙個乘積,再對這每時刻的乘積求和並求出均值(其實是求「期望」,但就不引申太多新概念了,簡單認為就是求均值了)。

gram矩陣和協方差矩陣的差別在於,gram矩陣沒有白化,也就是沒有減去均值,直接使用兩向量做內積。

gram矩陣和相關係數矩陣的差別在於,gram矩陣既沒有白化,也沒有標準化(也就是除以兩個向量的標準差)。

這樣,gram所表達的意義和協方差矩陣相差不大,只是顯得比較粗糙。兩個向量的協方差表示兩向量之間的相似程度,協方差越大越相似。對角線的元素的值越大,表示其所代表的向量或者說特徵越重要。

格拉姆矩陣可以看做feature之間的偏心協方差矩陣(即`沒有減去均值的協方差矩陣`),在feature map中,每個數字都來自於乙個特定濾波器在特定位置的卷積,因此每個數字代表乙個特徵的強度,而gram計算的實際上是兩兩特徵之間的相關性,哪兩個特徵是同時出現的,哪兩個是此消彼長的等等,同時,gram的對角線元素,還體現了每個特徵在影象**現的量,因此,`gram有助於把握整個影象的大體風格`。有了表示風格的gram matrix,要度量兩個影象風格的差異,只需比較他們gram matrix的差異即可。

總之, 格拉姆矩陣用於度量各個維度自己的特性以及各個維度之間的關係。內積之後得到的多尺度矩陣中,對角線元素提供了不同特徵圖各自的資訊,其餘元素提供了不同特徵圖之間的相關資訊。這樣乙個矩陣,既能體現出有哪些特徵,又能體現出不同特徵間的緊密程度。

gram矩陣_matlab_wangyang20170901的部落格-csdn部落格

如何通俗易懂地解釋「協方差」與「相關係數」的概念? - graylamb的回答 - 知乎

如何用簡單易懂的例子解釋格拉姆矩陣/gram matrix? - 知乎

神經網路風格轉移

就是輸入兩張影象,一張是內容影象c,一張是風格影象s,我們希望生成一張新的影象g,使得新影象g同時具備c的內容和s的風格。如下圖,生成的影象內容還是建築和河流,但是畫風變成了梵谷的油畫。生成的影象g既要和c的內容相近,又要和s的風格相近,因此代價函式由兩部分組成,即內容代價函式和風格代價函式,分別表...

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

n維歐式空間中任意k個向量之間兩兩的內積所組成的矩陣,稱為這k個向量的格拉姆矩陣 gram matrix 根據定義可以看到,每個gram矩陣背後都有一組向量,gram矩陣就是由這一組向量兩兩內積得到的,先說一下向量內積是做什麼的。向量的內積,也叫向量的點乘,對兩個向量執行內積運算,就是對這兩個向量對...

神經網路 神經網路中的矩陣的理解

在 深度學習入門 基於python的理論與實現 書中,看到講解矩陣的章節,加深了我對矩陣的理解。脫離應用理解數學是很難的。將矩陣放在深度學習的環境裡可以較好的理解矩陣的含義。這裡假設你已經學過矩陣。對於神經網路,我更傾向於理解為 因素 輸入層 影響因子 權重 結果 輸出層 這更貼近實際中的因果關係。...