Deconvolutional Networks(阅读)

最近在学习FCN的网络,因此Deconvolutional Networks部分是非常需要看的,其实就是图像重构问题。

通过实验给出的一些重要参数设置H =7, λ=1, p=1, β0 =1, βInc =6, βMax =105, E =3。

深度网络结构是由多个单层网络叠加而成的,而常见的单层网络按照编码解码情况可以分为下面3类:

  1. 既有encoder部分也有decoder部分:比如常见的RBM系列(由RBM可构成的DBM, DBN等),autoencoder系列(以及由其扩展的sparse autoencoder, denoise autoencoder, contractive autoencoder, saturating autoencoder等)。
  2. 只包含decoder部分:比如sparse coding, 和deconvolution network.
  3. 只包含encoder部分,那就是普通的feed-forward network.

  Deconvolution network的中文名字是反卷积网络,那么什么是反卷积呢?其概念从字面就很容易理解,假设A=B*C 表示的是:B和C的卷积是A,也就是说已知B和C,求A这一过程叫做卷积。那么如果已知A和B求C或者已知A和C求B,则这个过程就叫做反卷积了,deconvolution.

  Deconvolution network是和convolution network(简称CNN)对应的,在CNN中,是由input image卷积feature filter得到feature map, 而在devonvolution network中,是由feature map卷积feature filter得到input image. 所以从这点看,作者强调deconvolution network是top-down是有道理的(具体可参考Zeiler的Deconvolutional networks)

作者利用各种优化方法提取图像的feature map,避免了普通Convolutional Neural Network中得encoder部分。

Deconvolutional Networks(阅读)_第1张图片Deconvolutional Networks(阅读)_第2张图片Deconvolutional Networks(阅读)_第3张图片

运行论文代码:

如果matlab版本比较高的时候或出现[fullpath,b,c,d] = fileparts(path);错误,将第四个参数去掉就可以了,matlab版本低的时候不会出现这个函数问题。第二个RandStream.setGlobalStream(RandStream('mt19937ar','seed',sum(100*clock)));原来的默认设置废弃了,只能改成这个了。

代码下载:here

实验结果:

训练过程中的滤波器、Map、

Deconvolutional Networks(阅读)_第4张图片Deconvolutional Networks(阅读)_第5张图片Deconvolutional Networks(阅读)_第6张图片Deconvolutional Networks(阅读)_第7张图片Deconvolutional Networks(阅读)_第8张图片

测试的过程:

下面是测试图和加噪声图及重构之后的效果:

Deconvolutional Networks(阅读)_第9张图片Deconvolutional Networks(阅读)_第10张图片Deconvolutional Networks(阅读)_第11张图片Deconvolutional Networks(阅读)_第12张图片

你可能感兴趣的:(Deconvolutional Networks(阅读))