文章目录
- 1、神经风格迁移
- 2、生成图片的代价函数
- THE END
1、神经风格迁移
 
     
      
       
        
       
      
        \qquad 
       
      
    神经风格迁移就是将一幅原有的图片(content picture, C),对照着一幅风格图片(style picture, S),生成一幅新的图片(generated picture, G),如下图所示:
 
2、生成图片的代价函数
 
     
      
       
        
       
      
        \qquad 
       
      
     生成图片的代价函数由两部分组成,一部分称为内容代价(content cost),另一部分称为风格代价(style cost),
  
      
       
        
        
          J 
         
        
          ( 
         
        
          G 
         
        
          ) 
         
        
          = 
         
        
          α 
         
         
         
           J 
          
          
          
            c 
           
          
            o 
           
          
            n 
           
          
            t 
           
          
            e 
           
          
            n 
           
          
            t 
           
          
         
        
          ( 
         
        
          C 
         
        
          , 
         
        
          G 
         
        
          ) 
         
        
          + 
         
        
          β 
         
         
         
           J 
          
          
          
            s 
           
          
            t 
           
          
            y 
           
          
            l 
           
          
            e 
           
          
         
        
          ( 
         
        
          S 
         
        
          , 
         
        
          G 
         
        
          ) 
         
        
       
         J(G) = \alpha J_{content}(C,G)+\beta J_{style}(S,G) 
        
       
     J(G)=αJcontent(C,G)+βJstyle(S,G)
  
     
      
       
        
       
      
        \qquad 
       
      
     神经风格迁移图片生成的过程如下所示:
- 初始化生成图片G为一幅白噪声图,并规定图片G的尺寸,e.g., 100×100×3
- 使用梯度下降算法来优化生成图片G的代价函数,并更新图片G:
 G : = G − ∂ ∂ G J ( G ) G:=G-\frac{\partial }{\partial G}J(G) G:=G−∂G∂J(G)
 \qquad 内容代价函数的定义方式如下所示:
- [1] 选择一个卷积神经网络中的某一层 l l l, l l l不要太深也不要太浅
- [2] 使用一个预先训练好的卷积网络,如VGG network
- [3] 令 a [ l ] ( C ) a^{[l](C)} a[l](C)和 a [ l ] ( G ) a^{[l](G)} a[l](G)分别表示内容图片C和生成图片G在神经网络第 l l l层的激活值
- [4] 如果 
      
       
        
         
         
           a 
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            C 
           
          
            ) 
           
          
         
        
       
         a^{[l](C)} 
        
       
     a[l](C)和 
      
       
        
         
         
           a 
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            G 
           
          
            ) 
           
          
         
        
       
         a^{[l](G)} 
        
       
     a[l](G)十分相似,则内容图片和生成图片有相似的内容,
 J c o n t e n t ( C , G ) = 1 2 ∣ ∣ a [ l ] ( C ) − a [ l ] ( G ) ∣ ∣ 2 J_{content}(C,G)=\frac{1}{2}||a^{[l](C)}-a^{[l](G)}||^2 Jcontent(C,G)=21∣∣a[l](C)−a[l](G)∣∣2
 
     
      
       
        
       
      
        \qquad 
       
      
    要定义风格代价函数,首先需要介绍风格矩阵,表示表示输入图片在神经网络某一层 
     
      
       
       
         l 
        
       
      
        l 
       
      
    l不同通道之间激活值的相关系数矩阵,如令 
     
      
       
        
        
          a 
         
         
         
           i 
          
         
           , 
          
         
           j 
          
         
           , 
          
         
           k 
          
         
         
         
           [ 
          
         
           l 
          
         
           ] 
          
         
        
       
      
        a_{i,j,k}^{[l]} 
       
      
    ai,j,k[l]表示在第 
     
      
       
       
         k 
        
       
      
        k 
       
      
    k个通道下, 
     
      
       
       
         ( 
        
       
         i 
        
       
         , 
        
       
         j 
        
       
         ) 
        
       
      
        (i, j) 
       
      
    (i,j)位置的激活值。令 
     
      
       
        
        
          G 
         
         
         
           [ 
          
         
           l 
          
         
           ] 
          
         
           ( 
          
         
           S 
          
         
           ) 
          
         
        
       
      
        G^{[l](S)} 
       
      
    G[l](S)表示风格图片在第 
     
      
       
       
         l 
        
       
      
        l 
       
      
    l层的风格矩阵,其维度为 
     
      
       
        
        
          n 
         
        
          c 
         
         
         
           [ 
          
         
           l 
          
         
           ] 
          
         
        
       
         × 
        
        
        
          n 
         
        
          c 
         
         
         
           [ 
          
         
           l 
          
         
           ] 
          
         
        
       
      
        n_c^{[l]}×n_c^{[l]} 
       
      
    nc[l]×nc[l],其中 
     
      
       
        
        
          n 
         
        
          c 
         
         
         
           [ 
          
         
           l 
          
         
           ] 
          
         
        
       
      
        n_c^{[l]} 
       
      
    nc[l]表示第 
     
      
       
       
         l 
        
       
      
        l 
       
      
    l层的通道数量。
  
     
      
       
        
       
      
        \qquad 
       
      
     风格图片S的风格矩阵 
     
      
       
        
        
          G 
         
         
         
           [ 
          
         
           l 
          
         
           ] 
          
         
           ( 
          
         
           S 
          
         
           ) 
          
         
        
       
      
        G^{[l](S)} 
       
      
    G[l](S)中每一个元素的定义方式如下所示:
  
      
       
        
         
         
           G 
          
          
          
            k 
           
          
            , 
           
           
           
             k 
            
           
             ′ 
            
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            S 
           
          
            ) 
           
          
         
        
          = 
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
          
          
            n 
           
          
            H 
           
           
           
             [ 
            
           
             l 
            
           
             ] 
            
           
          
         
         
         
           ∑ 
          
          
          
            j 
           
          
            = 
           
          
            1 
           
          
          
          
            n 
           
          
            W 
           
           
           
             [ 
            
           
             l 
            
           
             ] 
            
           
          
         
         
         
           a 
          
          
          
            i 
           
          
            , 
           
          
            j 
           
          
            , 
           
          
            k 
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            S 
           
          
            ) 
           
          
         
         
         
           a 
          
          
          
            i 
           
          
            , 
           
          
            j 
           
          
            , 
           
           
           
             k 
            
           
             ′ 
            
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            S 
           
          
            ) 
           
          
         
        
       
         G_{k,k'}^{[l](S)}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_W^{[l]}}a_{i,j,k}^{[l](S)}a_{i,j,k'}^{[l](S)} 
        
       
     Gk,k′[l](S)=i=1∑nH[l]j=1∑nW[l]ai,j,k[l](S)ai,j,k′[l](S)
  
     
      
       
        
       
      
        \qquad 
       
      
     生成图片G的风格矩阵 
     
      
       
        
        
          G 
         
         
         
           [ 
          
         
           l 
          
         
           ] 
          
         
           ( 
          
         
           G 
          
         
           ) 
          
         
        
       
      
        G^{[l](G)} 
       
      
    G[l](G)中每一个元素的定义方式如下所示:
  
      
       
        
         
         
           G 
          
          
          
            k 
           
          
            , 
           
           
           
             k 
            
           
             ′ 
            
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            G 
           
          
            ) 
           
          
         
        
          = 
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
          
          
            n 
           
          
            H 
           
           
           
             [ 
            
           
             l 
            
           
             ] 
            
           
          
         
         
         
           ∑ 
          
          
          
            j 
           
          
            = 
           
          
            1 
           
          
          
          
            n 
           
          
            W 
           
           
           
             [ 
            
           
             l 
            
           
             ] 
            
           
          
         
         
         
           a 
          
          
          
            i 
           
          
            , 
           
          
            j 
           
          
            , 
           
          
            k 
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            G 
           
          
            ) 
           
          
         
         
         
           a 
          
          
          
            i 
           
          
            , 
           
          
            j 
           
          
            , 
           
           
           
             k 
            
           
             ′ 
            
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            G 
           
          
            ) 
           
          
         
        
       
         G_{k,k'}^{[l](G)}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_W^{[l]}}a_{i,j,k}^{[l](G)}a_{i,j,k'}^{[l](G)} 
        
       
     Gk,k′[l](G)=i=1∑nH[l]j=1∑nW[l]ai,j,k[l](G)ai,j,k′[l](G)
  
     
      
       
        
       
      
        \qquad 
       
      
    第 
     
      
       
       
         l 
        
       
      
        l 
       
      
    l层的风格代价函数的定义如下所示:
  
      
       
        
         
         
           J 
          
          
          
            s 
           
          
            t 
           
          
            y 
           
          
            l 
           
          
            e 
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
         
        
          ( 
         
        
          S 
         
        
          , 
         
        
          G 
         
        
          ) 
         
        
          = 
         
         
         
           1 
          
          
          
            ( 
           
          
            2 
           
           
           
             n 
            
           
             H 
            
            
            
              [ 
             
            
              l 
             
            
              ] 
             
            
           
           
           
             n 
            
           
             W 
            
            
            
              [ 
             
            
              l 
             
            
              ] 
             
            
           
           
           
             n 
            
           
             C 
            
            
            
              [ 
             
            
              l 
             
            
              ] 
             
            
           
           
           
             ) 
            
           
             2 
            
           
          
         
         
         
           ∑ 
          
         
           k 
          
         
         
         
           ∑ 
          
          
          
            k 
           
          
            ′ 
           
          
         
        
          ( 
         
         
         
           G 
          
          
          
            k 
           
          
            , 
           
           
           
             k 
            
           
             ′ 
            
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            S 
           
          
            ) 
           
          
         
        
          − 
         
         
         
           G 
          
          
          
            k 
           
          
            , 
           
           
           
             k 
            
           
             ′ 
            
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
            ( 
           
          
            G 
           
          
            ) 
           
          
         
         
         
           ) 
          
         
           2 
          
         
        
       
         J_{style}^{[l]}(S,G)=\frac{1}{(2n_H^{[l]}n_W^{[l]}n_C^{[l]})^2}\sum_k\sum_{k'}(G_{k,k'}^{[l](S)}-G_{k,k'}^{[l](G)})^2 
        
       
     Jstyle[l](S,G)=(2nH[l]nW[l]nC[l])21k∑k′∑(Gk,k′[l](S)−Gk,k′[l](G))2
  
     
      
       
        
       
      
        \qquad 
       
      
     通常风格代价函数需要对所有神经网络层中的进行累和,表示整个网络的风格代价函数:
  
      
       
        
         
         
           J 
          
          
          
            s 
           
          
            t 
           
          
            y 
           
          
            l 
           
          
            e 
           
          
         
        
          ( 
         
        
          S 
         
        
          , 
         
        
          G 
         
        
          ) 
         
        
          = 
         
         
         
           ∑ 
          
         
           l 
          
         
         
         
           λ 
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
         
         
         
           J 
          
          
          
            s 
           
          
            t 
           
          
            y 
           
          
            l 
           
          
            e 
           
          
          
          
            [ 
           
          
            l 
           
          
            ] 
           
          
         
        
          ( 
         
        
          S 
         
        
          , 
         
        
          G 
         
        
          ) 
         
        
       
         J_{style}(S,G)=\sum_l \lambda^{[l]} J_{style}^{[l]}(S,G) 
        
       
     Jstyle(S,G)=l∑λ[l]Jstyle[l](S,G)



















