引入
最近新出的影象風格轉換演算法,雖然效果好,但對於每一張要生成的,都需要初始化,然後保持cnn的引數不變,反向傳播更新影象,得到最後的結果。效能問題堪憂。
但是影象風格轉換演算法的成功,在生成影象領域,產生了乙個非常重要的idea,那就是可以將卷積神經網路提取出的feature,作為目標函式的一部分,通過比較待生成的經過cnn的feature值與目標經過cnn的feature值,使得待生成的與目標在語義上更加相似(相對於pixel級別的損失函式)。
影象風格轉換演算法將生成以生成的方式進行處理,如風格轉換,是從一張噪音圖(相當於白板)中得到一張結果圖,具有a的內容和b的風格。而perceptual losses則是將生成問題看做是變換問題。即生成影象是從內容圖中變化得到。
影象風格轉換是針對待生成的影象進行求導,cnn的反向傳播由於引數眾多,是非常慢的,同樣利用卷積神經網路的feature產生的loss,訓練了乙個神經網路,將內容輸入進去,可以直接輸出轉換風格後的影象。而將低解析度的影象輸入進去,可以得到高解析度的影象。因為只進行一次網路的前向計算,速度非常快,可以達到實時的效果。
下面這個網路圖是**的精華所在。圖中將網路分為transform網路和loss網路兩種,在使用中,transform網路用來對影象進行轉換,它的引數是變化的,而loss網路,則保持引數不變,transform的結果圖,風格圖和內容圖都通過loss net得到每一層的feature啟用值,並以之進行loss計算。
在風格轉換上,輸入x=yc是內容。而在高畫質化上,x是低解析度,內容是高解析度,風格未曾使用。
網路細節
網路細節的設計大體遵循dcgan中的設計思路:
確切的網路引數值請參考文獻2。
輸入輸出
downsampling and upsampling
residual connections
殘差連線可以幫助網路學習到identify function,而生成模型也要求結果影象和生成影象共享某些結構,因而,殘差連線對生成模型正好對應得上。
同影象風格轉換(image style transfer)演算法類似,**定義了兩種損失函式。其中,損失網路都使用在imagenet上訓練好的vgg net,使用φ來表示損失網路。
使用不同層的重建效果如下:
style reconstruction loss
對於風格重建的損失函式,首先要先計算gram矩陣,
產生的feature_map的大小為cjhjwj,可以看成是cj個特徵,這些特徵兩兩之間的內積的計算方式如上。
兩張,在loss網路的每一層都求出gram矩陣,然後對應層之間計算歐式距離,最後將不同層的歐氏距離相加,得到最後的風格損失。
不同層的風格重建效果如下:
****** loss function
loss對比
在影象風格轉換任務上,針對不同解析度的影象,loss值在perceptual loss(ours)和影象風格轉換(image style transfer)([10])以及內容上的。
可以看到,使用perceptual loss相當於原始演算法迭代50到100次。
而就時間來看:
可以提公升幾百倍,在gpu上0.0015s可以達到相當的效果,在cpu上更具實用性。
效果圖
雖然風格轉換是在256的上訓練的,但也可以應用到其他size上,比如512的
超清
4倍清晰度提公升:
8倍清晰度提公升:
總結
貢獻當然就是影象風格轉換的實用化:
參考文獻
1. perceptual losses for real-time style transfer and super-resolution.
2. perceptual losses for real-time style transfer and super-resolution: supplementary material
感知損失 Perceptual Losses
本文是參考文獻 1 的筆記。該 是li fei fei名下的 最近新出的影象風格轉換 演算法,雖然效果好,但對於每一張要生成的,都需要初始化,然後保持cnn的引數不變,反向傳播更新影象,得到最後的結果。效能問題堪憂。但是影象風格轉換演算法的成功,在生成影象領域,產生了乙個非常重要的idea,那就是可...
損失函式 損失函式 Hinge
本文討論hinge損失函式,該函式是機器學習中常用的損失函式之一。在機器學習中,hinge loss是一種損失函式,它通常用於 maximum margin 的分類任務中,如支援向量機。數學表示式為 其中 表示 輸出,通常都是軟結果 就是說輸出不是0,1這種,可能是0.87。表示正確的類別。其函式影...
常見損失函式 損失函式選擇方法
神經網路的學習通過某個指標表示現在的狀態,然後以這個指標為基準,尋找最優權重引數,這個指標就是損失函式 loss function 如上介紹,神經網路損失函式 loss function 也叫目標函式 objective function 的作用 衡量神經網路的輸出與預期值之間的距離,以便控制 調節...