風格遷移學習 GramMatrix

2021-10-25 03:31:33 字數 1302 閱讀 3816

向量的點乘,對兩個向量執行內積運算,就是對這兩個向量對應位一一相乘之後求和的操作,內積的結果是乙個標量。

內積判斷向量a和向量b之間的夾角和方向關係

a·b>0 方向基本相同,夾角在0°到90°之間

a·b=0 正交,相互垂直

a·b<0 方向基本相反,夾角在90°到180°之間

gram矩陣是兩兩向量的內積組成,所以gram矩陣可以反映出該組向量中各個向量之間的某種關係。

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

輸入影象的feature map為[ ch, h, w]。我們經過flatten(即是將hw進行平鋪成一維向量)和矩陣轉置操作,可以變形為[ ch, hw]和[ h*w, ch]的矩陣。再對兩個作內積得到gram matrices。 (藍色條表示每個通道flatten後特徵點,最後得到 [ch *ch ]的g矩陣)

格拉姆矩陣可以看做feature之間的偏心協方差矩陣(即沒有減去均值的協方差矩陣),在feature map中,每個數字都來自於乙個特定濾波器在特定位置的卷積,因此每個數字代表乙個特徵的強度,而gram計算的實際上是兩兩特徵之間的相關性,哪兩個特徵是同時出現的,哪兩個是此消彼長的等等。

關鍵點:gram矩陣是計算每個通道 i 的feature map與每個通道 j 的feature map的內積。gram matrix的每個值可以說是代表 i 通道的feature map與 j 通道的feature map的互相關程度。

大體流程是:

準備基準影象和風格影象

使用深層網路分別提取基準影象(加白雜訊)和風格影象的特徵向量(或者說是特徵圖feature map)

分別計算兩個影象的特徵向量的gram矩陣,以兩個影象的gram矩陣的差異最小化為優化目標,不斷調整基準影象,使風格不斷接近目標風格影象。

關鍵的乙個是在網路中提取的特徵圖,一般來說淺層網路提取的是區域性的細節紋理特徵,深層網路提取的是更抽象的輪廓、大小等資訊。

風格遷移網路

快速風格遷移的網路結構包含兩個部分。乙個是生成網路 transformation network 乙個是損失網路 loss network 生成網路是將輸入影象進行風格遷移後輸出,損失網路用以計算生成影象的內容損失和風格損失。對於生成網路,本質上是乙個卷積神經網路,但不採用池化層,取而代之的是用步幅...

快速風格遷移網路

快速風格遷移的網路結構包含兩個部分。乙個是 生成網路 image transform net 乙個是 損失網路 loss network 生成網路輸入層接收乙個輸入,最終輸出層輸出也是一張 即風格轉換後的結果 模型總體分為兩個階段,訓練階段和執行階段。模型如圖所示。其中左側是生成網路,右側為損失網路...

風格遷移 入門

最原始的風格遷移的思路很簡單,把當做可以訓練的變數,通過優化來降低與內容的內容差異以及降低與風格的風格差異,迭代訓練多次以後,生成的就會與內容的內容一致,同時也會與風格的風格一致。從以下幾個方面介紹 1 vgg16 2 內容 3 風格 4 雜訊損失 1 vgg16 我們首先使用預訓練的 vgg16 ...