Deep Image Prior:深度卷積網路先天就理解自然圖像

Deep Image Prior 是昨天發布的一篇非常有趣的研究,地址為 Deep Image Prior 。

它讓一個深度卷積網路去學習複製被破壞的圖像(如,加入噪點的圖像),發現這個網路會自動先學會如何重建圖像。

例如,給定一幅被破壞的圖像x,具體過程如下:

  1. 用隨機參數初始化深度卷積網路f。
  2. 令f的輸入為固定的隨機編碼z。
  3. 令f的目標為:輸入z,輸出x。以此訓練f的參數。
  4. 注意選擇合適的損失函數。例如對於降噪問題可關注整體的MSE,對於填充問題就應該只關心不需要填充的位置的MSE。
  5. 當訓練很久之後,f可實現輸出一模一樣的x。
  6. 但如果在訓練到一半時打斷f,會發現它會輸出一幅「修復過的x」。

這意味著,深度卷積網路先天就擁有一種能力:它會先學會x中「未被破壞的,符合自然規律的部分」,然後才會學會x中「被破壞的部分」。例如,它會先學會如何複製出一張沒有噪點的x,然後才會學會複製出一張有噪點的x。

換而言之,深度卷積網路先天就了解自然的圖像應該是怎樣的。所以我們也可以理解為什麼GAN的方法這麼簡單卻效果這麼好。這無疑來自於卷積的不變性,和逐層抽象的結構。個人認為這對於指導設計和測試網路架構很有意義。

Deep Image Prior的重要特點是,網路由始至終,僅使用了輸入的被破壞過的圖像做為訓練。它沒有看過任何其它圖像,也沒有看過正常的圖像。但最終效果依然頗為不錯。這說明自然圖像的局部規律和自相似性確實很強。其實原理有點像NLM,不過相當於升級版。

請看圖片例子。最左邊是目標圖像,它經過JPEG壓縮,有很多壓縮瑕疵。網路的目標是學會輸出它。在100次迭代後,網路學會了輸出很模糊的形體。在2400次迭代後,網路學會了輸出一張清晰光滑的高質量圖片。在50000次迭代後,網路才學會了輸出原圖。

再看圖像由部分像素重建的例子,網路很擅長處理不斷重複的紋理:

最後是網友的訓練過程,他訓練時選的學習速率有點大,最終結果很幽默......

推薦閱讀:

超解析度重建還有什麼可以研究的嗎??
一個加速trick一種相關濾波解釋
你必須要知道CNN模型:ResNet
本田與商湯牽手共謀自動駕駛,為何相中這家中國AI獨角獸?
[讀論文] Single-Image Depth Perception in the Wild

TAG:深度学习DeepLearning | 计算机视觉 | 卷积神经网络CNN |