1. 程式人生 > >論文解讀之MemNet: A Persistent Memory Network for Image Restoration

論文解讀之MemNet: A Persistent Memory Network for Image Restoration

論文名稱:MemNet: A Persistent Memory Network for Image Restoration

作用領域:影象修復(去噪,超解析度)

code:https://github.com/tyshiwo/MemNet

概述:這是一篇ICCV2017的文章,作者是DRRN(CVPR2017)的那一幫人,該篇論文中提出一個延長記憶的模型,

傳統的神經網路基本上都是單向傳播,那麼在靠後的層,接收到的訊號十分的微弱,這種單向傳播的網路,諸如VDSR,DRCN等,被稱為短期記憶網路,而對於RED,ResNET這種,網路中的神經元不僅受直接前驅的影響,另外還受到額外指定的前驅神經元的英雄,這種被稱為限制的長期記憶網路,如下圖所示。


那麼,所謂的長期記憶模型是怎麼樣的,作者舉例了什麼大腦皮層之類的相關文獻,指出自己的長期記憶模型是模擬了人類大腦皮層的工作等等,此等廢話只能用以裝點門面,跳過。。。。

長期記憶模型有以下3點特殊之處:

1.記憶單元利用門控機制(gate unit)建立長期記憶,在每個記憶單元,門控單元自適應的控制不同的模組(block)在最終輸出中所佔的權重(weight),控制保留哪些單元,儲存哪些資訊。

2.很深的網路(80層),密集的連線結構(由上圖可見一斑),訊號補償機制(靠後的神經元被靠前的神經元直接連線),最大限度的讓資訊在不同的記憶單元之間流動。

3.該結構被證明有很強的學習能力,一個model處理多個任務(該model被應用於影象復原,去噪,超解析度)

那麼說了那麼多,其實對所謂的長期記憶模型究竟是什麼依然模糊,依然不清楚作者在說些什麼,那麼看下程式碼和網路模型圖,


首先,PENet只是一些卷積,提取特徵後,進入迭代模組,多個block遞迴堆疊,但是,每個記憶模組(memory block)都參與了最終輸出,即都連線到了ReconNet,並且不同的記憶單元之間密集連結,ReconNet是個卷積核為1X1的卷積層,負責將所有記憶單元的儲存資訊分別輸出,最終所有記憶模組的輸出均被輸出,所有輸出進行elementwise,

網路結束。

那麼,所謂的長期記憶模型只是一個密集連結的multi-scale的網路,最終結果融合了所有記憶單元的輸出。在output 1, output 2........ output m相加時候,根據門禁單元可別修正每個output所佔的權重(weight),

此外,所有記憶單元的輸出會與輸入input相加,也就是網路是殘差學習,這樣能夠減少整個網路的權重,方便收斂,加深網路層數,網路結束。

論文結果如下圖所示。


縱覽CVPR2017,其中有一篇名為 Object Skeleton Extraction in Natural Images by Fusing Scale-associated Deep Side Outputs的做對稱性分析的論文,是基於HED的修改版,其實此篇論文與HED也極為相似,與HED不同的是,HED是卷積層的直接堆疊,這裡是記憶模組的遞迴堆疊,遞迴堆疊減少了整個網路的引數,使得網路的層數能夠劇增(80層),HED直接融合每個階段的結果,此篇論文融合後每個階段的結果後與input相加,網路輸出的只是殘差,殘差學習減少了整個網路的權重,能夠加大網路層數。並且HED的每個階段的權重固定,相加後平均,這種方式十分粗暴,該長期記憶模型每個記憶模組所佔最終結果的權重可以由門禁單元控制調節,

以上,就是該篇論文的全部內容。