論文名稱:A Neural Algorithm of Artistic Style
主要結果:將一副圖片中的風格與另一幅圖片中的內容相轉換。如下圖:
原理:深度學習時一個連續函數模型f(x)=y。其中y是特徵,而x是原圖,現在假設知道了特徵和f,那麼如何求原圖?
可以將x作爲變量,其他參數都固定。具體爲:設x1是空白圖片,f(x1)=y1,最小化|y-y1|這個代價函數,如此做即可得到原圖x。
當然光得到原圖還是不夠的,還要加上風格,風格如何獲取?首先找一個風格圖片,然後將圖片輸給一個訓練好的深度模型,如論文中採用了VGG模型,VGG與resnet類似,都是分成了5個block,論文中採用5個block的輸出作爲求風格的位置。具體求風格的方法是首先每一層(layer)的輸出都是類似於【batch_size,h,w,filters_num】,論文從採用gram矩陣來作爲風格的一個量化,gram矩陣是利用特徵之間的協方差來得到的。而爲什麼論文中是兩個矩陣直接相乘呢?因爲加入均值爲0,那麼兩個向量直接相乘就是兩個向量的協方差,如下公式:
比如在'block1_conv1'這個位置,空白圖片的gram矩陣是A,風格圖片是B,那麼sum(|A-B|)即是loss。於content中說的一樣的方法可以得到風格圖片。
最後講loss乘以係數相加:
ratio α/β was either 1×10 −3 (Fig 2 B,C,D)or 1 × 10 −4。
可調參數:
loss函數中的比例可以調,調了就是風格和內容比例的多少。
風格採用哪些層也可以調,文中採用了好幾種組合方式,具體見論文。