當前位置:
首頁 > 最新 > 深度學習之風格遷移

深度學習之風格遷移

最近一年,各種P圖應用出現了眾多新的玩法,其中很重要的一種就是風格遷移(Style Transfer),例如可以將下面左圖轉換為後面兩幅風格不同的圖片

其背後的原理是什麼呢?

這是一種基於卷積神經網路(CNN)的遷移學習方法:

輸入為一張原始圖片(例如用戶的一張照片),以及一張想要模仿其風格的圖片(例如梵高的《星空》,或者蒙克的《吶喊》等)。

目標是生成這樣一張圖片:內容上與用戶照片相近,而風格上與藝術畫作相近。

問題是,如何保留照片的內容,又如何衡量風格是否相近呢?

這與卷積神經網路的特點有關。CNN中,靠近輸入的網路層,學到的是一些紋理、邊緣方面的特徵,越到後面,學到的越接近於內容,到了最後一層,基本就剩下照片的類別了,如貓、狗等。因此,可以使用後面某一層的輸出作為照片內容的衡量,而使用前面的層作為風格的衡量。

此外,對風格的衡量比較具有主觀性,有不同的衡量方法來保留不同的風格,通常的做法就是從每一層中抽取一定的信息,作為風格的代表。

快速遷移演算法

簡單的風格遷移,可以使用類似於Deep Dream的方法,將CNN凍結,將圖片作為待學習的參數,使用梯度下降進行學習。只不過,這裡的目標不再是最大化某個神經元的激活,而是最小化與用戶照片內容的距離,同時最小化與藝術繪畫風格之間的距離

然而這種方法是比較緩慢的,這是因為它把生成圖片的過程當做一個「訓練」的過程。每生成一張圖片,都相當於要訓練一次模型,這中間可能會迭代幾百幾千次。

可以通過下面所示的流程圖來加速遷移過程

左半部分是一個殘差網路,用來將輸入圖片

x

映射為一張新的圖片y,此網路是需要進行訓練的。

右半部分是一個誤差網路,此網路是在ImageNet數據集上預先訓練好的,此處展示的是VGG-16網路。此處將三張圖片(殘差網路的輸出圖片、藝術繪畫圖片、用戶照片)依次輸入進去,然後:

如藍色線和黑色線所示,計算內容相似度

如紅色線和黑色線所示,計算風格相似度

然後將兩個相似度相加,得到最終的目標函數。接下來就可以反向傳播回y,進一步的傳播回左半部分,最終更新輸入圖片

x

,完成一輪迭代。

這樣,一旦左半部分的殘差網路訓練完畢,實際使用的時候就不再需要迭代了,只需要將圖片

x

輸入網路,取得輸出的圖片y即可。

下面是一些實際遷移的圖片

原始圖片

遷移了《吶喊》的風格

遷移了《星空》的風格


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 人工智慧技術 的精彩文章:

TAG:人工智慧技術 |