What is neural style transfer?

notation

  • C:content image
  • S:style image
  • G:generated image

What are deep ConvNets learning?

  • 畫出前九張可以讓該 layer 的 neuron activation 最大的圖片

Layer 1

Layer 2

Layer 3

Layer 4

Layer 5

Cost Function

  • 理論上只要一個 hyperparameter 就夠了,不過論文原作者使用了兩個

步驟

  1. 隨機初始化 G
  2. 使用 gradient descent 來最小化

Content Cost Function

Content cost function

選擇第 層 hidden layer 來計算 content loss

  • 選擇靠前面的層 ( 很小)來計算 content loss,則會迫使生成圖片 在 pixel 的層級上很像 content image C
  • 選擇靠後面的層 ( 很大)來計算 content loss,則只會確保生成的圖片裡面有該 neuron 想偵測的東西 (例如 狗) 就好
  • 因此通常選擇靠中間的層來計算 content loss

步驟

  1. 拿一個 pre-trained ConvNet (例如 VGG)
  2. 分別是 C 和 G 的第 層 output
  3. 很接近,則兩個 image 有類似的 content

Style Cost Function

  • 觀察不同 channel (即 neuron) 間的 activations 有多相關
    • 可以理解成 提取的 feature,同時出現的機率
      • ex: filter1 偵測橘紅色,filter2 偵測直條紋,它們相關度高表示橘紅色&直條紋常常一起出現;相關度低表示不常一起出現

Style Matrix

矩陣 衡量任意兩個 channel 之間的相關度,可以用來表示該圖片的 style

  • 詳細來說,其實是 unnormalized cross-covariance
    • 如此就可以計算 以及
    • 在線性代數中,G 也稱做 Gram matrix (格拉姆矩陣)
    • Frobenius Norm,矩陣所有元素的平方和
    • 乘個 normalize 用的常數 也可以

Style cost function

  • 可以不只一層
  • 如此可以同時考慮高階&低階特徵的相關度

results matching ""

    No results matching ""