deconv的用处比较广泛,涉及到visualization/pixel-wise prediction/unsupervised learning/image generation。比如Deconvolutional Network[1][2]做图片的unsupervised feature learning,ZF-Net论文中的卷积网络可视化[3],FCN网络中的upsampling[4],GAN中的Generative图片生成[5]。

Deconvolution大概可以分为如下几个方面:

  1. unsupervised learning,其实就是convolutional sparse coding[1][2]:这里的deconv只是观念上和传统的conv反向,传统的conv是从图片生成feature map,而deconv是用unsupervised的方法找到一组kernel和feature map,让它们重建图片。
    待补充

下面要介绍的这篇文章主要用于学习图片的中低层级的特征表示,属于unsupervised feature learning,和传统的auto-encoder,RBM比较类似,和它最像的是sparse coding,这里先简单介绍下sparse coding,便于后续理解Deconvolutional Network。

Sparse coding是学习一个输入向量xxx在basis空间ϕ\phiϕ下的系数aaa,这个aaa即是输入向量在ϕ\phiϕ空间的向量表示:

x=∑i=1kaiϕix=\sum\limits_{i=1}^ka_i\phi_ix=i=1∑k​ai​ϕi​

其中ϕ\phiϕ是全局变量,对所有输入xxx都一样,aaa是局部隐变量,每个xxx都不一样。这种隐变量模式和K-means,GMM,LDA中的隐变量模式一模一样,所以可以看出这种unsupervised带隐变量的学习都有类似的套路。

Sparse coding和PCA变换最大的不同是PCA找的这个basis空间是complete set,而sparse coding找的这个basis空间是over-complete set,解释是over-complete set能更好的表达输入数据的潜在pattern。由于basis空间是over-complete的,所以系数aaa就不是唯一的了(一个不太恰当的比喻是方程组求解中,求解三个未知数,但只有两个方程,所以求得的未知数不唯一),所以要引入sparsity,方法就是加正则。Sparse coding的loss function如下所示:

minimizeai(j),ϕi∑j=1m∥x(j)−∑i=1kai(j)ϕi∥2+λ∑i=1kS(ai(j))minimize_{a_i^{(j)},\phi_i}\sum\limits_{j=1}^m\Vert x^{(j)}-\sum\limits_{i=1}^ka_i^{(j)}\phi_i\Vert^2+\lambda\sum\limits_{i=1}^kS(a_i^{(j)})minimizeai(j)​,ϕi​​j=1∑m​∥x(j)−i=1∑k​ai(j)​ϕi​∥2+λi=1∑k​S(ai(j)​)

第一项是reconstruction误差,第二项是正则,一般是L1。还有个问题是,如果要保证aaa足够小,那么让basis vector ϕ\phiϕ足够大也能达到正则spasity的目的,但这并不是我们想要的,所以我们需要再加上一个约束:

∥ϕi∥2≤C,∀i=1,…,k\Vert\phi_i\Vert^2\le C,\quad\forall i=1,\dots,k∥ϕi​∥2≤C,∀i=1,…,k

即让ϕ\phiϕ小于某个常数。

学习求解这个loss function就是隐变量学习的通用技巧,有点像alternating least squares(ALS)交替优化。Sparse coding一个不足就是在learning阶段需要学习aaa和ϕ\phiϕ,在inference阶段还是需要学习aaa,runtime cost比较高。

接下来介绍Deconvolutional Network,和sparse coding的思路比较类似,是学输入图片yyy的latent feature map zzz,同时也要学卷积核fff,如果非要用sparse coding 那套来解释,就是学习图片在basis空间fff的系数表示zzz。只是操作由点乘变成了卷积,如下图所示:

∑k=1K1zki⊕fk,c=yci\sum\limits_{k=1}^{K_1}z_k^i\oplus f_{k,c}=y_c^ik=1∑K1​​zki​⊕fk,c​=yci​

公式在下面的第三部分有详细介绍,fff就对应于sparse coding中的ϕ\phiϕ,而zzz对应于sparse coding中的aaa,Loss function是:

C1(yi)=λ2∑c=1K0∥∑k=1K1zki⊕fk,c−yci∥22+∑k=1K1∣zki∣pC_1(y^i)=\frac{\lambda}{2}\sum\limits_{c=1}^{K_0}\Vert\sum\limits_{k=1}^{K_1}z_k^i\oplus f_{k,c}-y_c^i\Vert_2^2+\sum\limits_{k=1}^{K_1}|z_k^i|^pC1​(yi)=2λ​c=1∑K0​​∥k=1∑K1​​zki​⊕fk,c​−yci​∥22​+k=1∑K1​​∣zki​∣p

上述结构只是单层的deconvolutional layer,可以按照这个方式叠加layer,第一层的zzz就作为第二层的图片输入。Loss function如下所示:

Cl(y)=λ2∑i=1I∑c=1Kl−1∥∑k=1Klgk,cl(zk,li⊕fk,cl)−zc,l−1i∥22+∑i=1I∑k=1Kl∣zk,li∣pC_l(y)=\frac{\lambda}{2}\sum\limits_{i=1}^I\sum\limits_{c=1}^{K_l-1}\Vert\sum\limits_{k=1}^{K_l}g_{k,c}^l(z_{k,l}^i\oplus f_{k,c}^l)-z_{c,l-1}^i\Vert_2^2+\sum\limits_{i=1}^I\sum\limits_{k=1}^{K_l}|z_{k,l^i|^p}Cl​(y)=2λ​i=1∑I​c=1∑Kl​−1​∥k=1∑Kl​​gk,cl​(zk,li​⊕fk,cl​)−zc,l−1i​∥22​+i=1∑I​k=1∑Kl​​∣zk,li∣p​

其中,zc,l−1iz_{c,l-1}^izc,l−1i​就是上一层的feature map表示,作为当前层的输入:

gk,clg_{k,c}^lgk,cl​

是一个0-1矩阵,相当于一个mask,用来决定哪些位置的输入需要连接。

下面分别介绍Deconvolutional Netword的learning和inference

learning:

Deconvolutional Network的学习也是一个交替优化的过程,首先优化feature map z,然后优化filter f,如果有多层的话逐层进行训练。

首先第一步是学习feature map。学习Deconcolutional Network的loss function有些困难,原因是feature map中的不同位置的点因为filter互相耦合比较严重。作者尝试了GD,SGD,IRLS(Iterative Reweighted Least Squares)这些优化方法,效果都不理想。因此作者使用了另外一个优化方法,不是直接优化式3中的z,而是选择了一个代理变量x,让z接近x,同时正则化x达到和式3中loss function同样的效果:

优化上式也是采用交替优化x和z的方法。

第二步是学习filter,正常的梯度下降即可。

整个Deconvolutional Network的学习算法如下所示,其中红色的部分是学习feature map,其实也相当于做inference,蓝色框是学习filter,相当于模型本身的参数学习:

inference:

inference包括两个层面,一个是根据图片和学到的filter来inference latent feature map,另外一个是根据latent feature map 重建画面。以两层Deconvolutional Network为例,首先学习第一层z1z1z1,然后学习第二层z2z2z2,注意第二层的学习有两个loss,一个是重建z1z1z1的loss,即project 1次学习和z1的误差:

3 Model

首先考虑一个作用于图片的单层的Deconvolutional Network layer。这一层获取一张图片作为输入,这个图片用yiy^iyi进行表示,图片由K0K_0K0​个颜色通道组成:y1i,…,yK0iy_1^i,\dots,y_{K_0}^iy1i​,…,yK0​i​,我们将这些颜色通道中的每一个通道ccc都表示为一个由K1K_1K1​个latent特征图 zkiz_k^izki​ 与filter fk,cf_{k,c}fk,c​ 卷积结果的的线性加和:

∑k=1K1zki⊕fk,c=yci(1)\sum\limits_{k=1}^{K_1}z_k^i\oplus f_{k,c}=y_c^i\quad\quad\quad\quad\quad(1)k=1∑K1​​zki​⊕fk,c​=yci​(1)

这里如果yciy_c^iyci​是一个Nr×NcN_r\times N_cNr​×Nc​图片并且filter大小为H×HH\times HH×H,那么latent feature map大小为(Nr+H−1)×(Nc+H−1)(N_r +H-1)\times (N_c+H-1)(Nr​+H−1)×(Nc​+H−1)。但是等式1是一个under-determined system,so to yield a unique solution we introduce a regularization term on zkiz_k^izki​ that encourages sparsity in the latent feature maps。我们可以采用如下的cost function:

C1(yi)=λ2∑c=1K0∥∑k=1K1zki⊕fk,c−yci∥22+∑k=1K1∣zki∣p(2)C_1(y^i)=\frac{\lambda}{2}\sum\limits_{c=1}^{K_0}\Vert\sum\limits_{k=1}^{K_1}z_k^i\oplus f_{k,c}-y_c^i\Vert_2^2+\sum\limits_{k=1}^{K_1}|z_k^i|^p\quad\quad\quad\quad(2)C1​(yi)=2λ​c=1∑K0​​∥k=1∑K1​​zki​⊕fk,c​−yci​∥22​+k=1∑K1​​∣zki​∣p(2)

注意这里的∣w∣p|w|^p∣w∣p含义是∑i,j∣zki∣p\sum_{i,j}|z_k^i|^p∑i,j​∣zki​∣p,通常情况下p=1p=1p=1。λ\lambdaλ is a constant that balances the relative contributions of the reconstruction of yiy^iyi and the sparsity of the feature map zkiz_k^izki​。

在整个学习过程中,如同3.2节所描述的,我们会使用一组图片y={y1,…,yI}y=\{y^1,\dots,y^I\}y={y1,…,yI},最终目标是寻找arg min⁡f,zC1(y)2\argmin\limits_{f,z}C_1(y)^2f,zargmin​C1​(y)2,即寻找最优的latent feature map以及filter,注意每张图片都有its own set of feature map,但是filter通常对所有图片都是相同的。

3.1 Forming a hierarchy

上面介绍的结构可以从multi-channel输入图片中产生sparse feature map。这种结构可以很轻易的堆叠在一起来形成hierarchy,做法就是将lll层的feature map zk,liz_{k,l}^izk,li​作为l+1l+1l+1层的输入。换句话说,lll层的输入是具有Kl−1K_{l-1}Kl−1​个通道的l−1l-1l−1层的feature map。lll层的cost functionClC_lCl​可以用如下的等式进行表达:

Cl(y)=λ2∑i=1I∑c=1Kl−1∥∑k=1Klgk,cl(zk,li⊕fk,cl)−zc,l−1i∥22+∑i=1I∑k=1Kl∣zk,li∣p(3)C_l(y)=\frac{\lambda}{2}\sum\limits_{i=1}^I\sum\limits_{c=1}^{K_l-1}\Vert\sum\limits_{k=1}^{K_l}g_{k,c}^l(z_{k,l}^i\oplus f_{k,c}^l)-z_{c,l-1}^i\Vert_2^2+\sum\limits_{i=1}^I\sum\limits_{k=1}^{K_l}|z_{k,l^i|^p}\quad\quad\quad\quad(3)Cl​(y)=2λ​i=1∑I​c=1∑Kl​−1​∥k=1∑Kl​​gk,cl​(zk,li​⊕fk,cl​)−zc,l−1i​∥22​+i=1∑I​k=1∑Kl​​∣zk,li∣p​(3)

这里 zc,l−1iz_{c,l-1}^izc,l−1i​ 是从先前层来的feature map,gk,clg_{k,c}^lgk,cl​ are alements of a fixed binary matrix that determines the connectivity between the feature maps at successive layers, i.e. whether zk,liz_{k,l}^izk,li​ is connected to to zc,l−1iz_{c,l-1}^izc,l−1i​ or not [13]. In layer-1 we assume that gk,c1g_{k,c}^1gk,c1​ is always 1, but in higher layers it will be saprse. We train the hierarchy from the bottom upwards, thus zc,l−1iz_{c,l-1}^izc,l−1i​ is given from the results of learning on C_{l-1}(y).

3.2 学习filter

学习filter的过程是交替进行的,首先在最优化Cl(y)C_l(y)Cl​(y)时保持filter不变而更新feature map(这个过程称为inference),然后保持feature map不变通过优化Cl(y)C_l(y)Cl​(y)来更新filter。整个优化过程通过layer-wise manner进行,在第一层输入数据是训练图片yyy。

推测feature map:

给定输入以及filter的情况下,推测出最优的feature map zk,liz_{k,l}^izk,li​是整个过程的最难点。在zk,liz_{k,l}^izk,li​上进行的sparsity限制防止了模型学到trivial solution例如identity function。当p=1p=1p=1时feature map的最小化问题是凸的并且已经有很多方法被提出来解决这样的问题(3,14)。尽管理论上我们总能找到全局最小解,实际上这个问题是很难求解的因为整个问题是poorly conditioned。这是因为feature map中的元素因为filter相互耦合比较严重。One element in the map can be affected by another distant element, meaning that the minimization can take a very long time to converge to a good solution。

作者尝试了很多种常规的优化方法来尝试解决式子3,包括direct gradient descent,Iterative Reweighted Least Squares(IRLS)以及stochastic gradient descent。但是他们发现direct gradient descent受到比较常见的例如flat-lining的影响因此给出了一个较差的解。IRLS在解决大规模问题时非常慢。Stochastic gradient descent需要上千轮的迭代才会收敛。

因此,论文作者采用了一种另外的方式,这是一种continuation方法,由(6)和(27)首先使用。这种方式不会直接优化方程3,而是最小化auxiliary损失函数 C^l(y)\hat{C}_l(y)C^l​(y) ,这个损失函数对feature map中的每一个 zk,liz_{k,l}^izk,li​ 都包含一个auxiliary variable xk,liix_{k,l}^iixk,li​i:

C^l(y)=λ2∑i=1I∑c=1Kl−1∥∑k=1Klgk,cl(zk,li⊕fk,cl)−zc,l−1i∥22+β2∑i=1I∑k=1Kl∥zk,li−xk−li∥22+∑i=1I∑k=1Kl∣xk,li∣p(4)\hat{C}_l(y)=\frac{\lambda}{2}\sum_{i=1}^I\sum_{c=1}^{K_l-1}\Vert\sum_{k=1}^{K_l}g_{k,c}^l(z_{k,l}^i\oplus f_{k,c}^l)-z_{c,l-1}^i\Vert_2^2+\frac{\beta}{2}\sum\limits_{i=1}^I\sum\limits_{k=1}^{K_l}\Vert z_{k,l}^i-x_{k-l}^i\Vert_2^2+\sum\limits_{i=1}^I\sum\limits_{k=1}^{K_l}|x_{k,l}^i|^p (4)C^l​(y)=2λ​i=1∑I​c=1∑Kl​−1​∥k=1∑Kl​​gk,cl​(zk,li​⊕fk,cl​)−zc,l−1i​∥22​+2β​i=1∑I​k=1∑Kl​​∥zk,li​−xk−li​∥22​+i=1∑I​k=1∑Kl​​∣xk,li​∣p(4)

这里β\betaβ是一个continuation parameter。引入auxiliary variable将cost function的convolution部分从∣⋅∣p|\cdot|^p∣⋅∣p中分离了出来。通过这种方式,我们以使用一种交替最小化 zk,liz_{k,l}^izk,li​ 的方式。首先固定xk,lix_{k,l}^ixk,li​,这产生了一个对于zk,liz_{k,l}^izk,li​的quadratic问题。接下来,我们固定zk,liz_{k,l}^izk,li​并对xk,lix_{k,l}^ixk,li​中的每个元素求解一个separable 1D problem。我们将这两个阶段分别称为zzz以及xxx子问题。

在我们交替进行这两个步骤时,我们会将β\betaβ缓慢增加,从一个较小的初始值直到它strongly clamps zk,liz_{k,l}^izk,li​ to xk,lix_{k,l}^ixk,li​。This has the effect of gradually introducing the sparsity constraint and gives good numerical stability in practice(11,27)。

zzz子问题:从等式4中可以看出我们可以独立解出每个zk,liz_{k,l}^izk,li​ ,在固定了xk,lix_{k,l}^ixk,li​后,我们取C^l(y)\hat{C}_l(y)C^l​(y)对zk,liz_{k,l}^izk,li​的导数:

$$$$

3.3 图片representation/reconstruction

为了将图片用于image reconstruction,我们首先decompose一个input image,整个过程通过使用学到的filter f来找到latent representation z。用一个两层网络来解释这个过程,我们首先通过最小化C1(y′)C_1(y')C1​(y′)来推导出layer 1的feature map zk,1z_{k,1}zk,1​以及filter fk,c1f_{k,c}^1fk,c1​。接下来我们使用一个交替的过程来获取layer 2的feature mapzk,2z_{k,2}zk,2​。首先我们最小化和y′y'y′有关的reconstruction error,projecting zk,2z_{k,2}zk,2​ through fk,c2f_{k,c}^2fk,c2​ and fk,c1f_{k,c}^1fk,c1​

[1] Zeiler M D, Krishnan D, Taylor G W, et
al. Deconvolutional networks[C]. Computer Vision and Pattern Recognition, 2010.

[2] Zeiler M D, Taylor G W, Fergus R, etal. Adaptive deconvolutional networks for mid and high level featurelearning[C]. International Conference on Computer Vision, 2011.

[3] Zeiler M D, Fergus R. Visualizing and
Understanding Convolutional Networks[C]. European Conference on Computer
Vision, 2013.

[4] Long J, Shelhamer E, Darrell T, et al.Fully convolutional networks for semantic segmentation[C]. Computer Vision andPattern Recognition, 2015.

[5] Unsupervised Representation Learning
with Deep Convolutional Generative Adversarial Networks

参考:

https://www.zhihu.com/question/43609045/answer/132235276

Deconvolutional Networks论文解读相关推荐

  1. Exploring the Connection Between Binary andSpiking Neural Networks论文解读

    Exploring the Connection Between Binary andSpiking Neural Networks论文解读 前言 总说 提出B-SNN(论文中为Ⅲ) 实验和结果(论文 ...

  2. Spatial Transformer Networks 论文解读

    paper title:Spatial Transformer Networks paper link: https://arxiv.org/pdf/1506.02025.pdf oral or de ...

  3. DE-PPN:Document-level Event Extraction via Parallel Prediction Networks论文解读

    Document-level Event Extraction via Parallel Prediction Networks paper:Document-level Event Extracti ...

  4. AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks论文解读

    题目:AttnGAN:具有注意的生成对抗网络的细粒度文本到图像生成 时间:2018 作者:Tao Xu, Pengchuan Zhang, Qiuyuan Huang, Han Zhang, Zhe ...

  5. TGN:Temporal Graph Networks论文解读

    公众号 异度侵入 " 图神经网络(GNNs)的研究已经成为今年机器学习领域的热门话题之一.GNNs最近在生物.化学.社会科学.物理等领域取得了一系列成功.但GNN模型目前以静态图上偏多,然而 ...

  6. (论文解读)High-frequency Component Helps Explain the Generalization of Convolutional Neural Networks

    目录 论文解读之: High-frequency Component Helps Explain the Generalization of Convolutional Neural Networks ...

  7. Densely Connected Convolutional Networks(论文解读三)

    目录 DenseNet:论文解读 1. Abstract 2. Related work 2.1 通过级联来加深网络 2.2 通过 shortcut 连接来加深网络 2.3 通过加宽网络来使网络更深 ...

  8. DRN:Dilated Residual Networks(论文解读十四)

    Title:Dilated Residual Networks From:CVPR2017 Note data:2019/06/12 Abstract:提出一种有利于分类任务的扩张残差网络DRN. C ...

  9. 论文解读:Dynamic Connected Networks for Chinese Spelling Check

    论文解读:Dynamic Connected Networks for Chinese Spelling Check   我们知道,拼写纠错任务比较类似预训练语言模型中的**Masked Langua ...

  10. Fully Convolutional Networks for Semantic Segmentation----2014CVPR FCN论文解读

    Fully Convolutional Networks for Semantic Segmentation----2014CVPR论文解读 Abstract ​ 卷积网络在特征分层领域是非常强大的视 ...

最新文章

  1. golang避免XSS攻击
  2. Android开源框架——图片加载库Glide
  3. CVPR 2021 | 从理论和实验角度深入剖析对比损失中的温度超参数
  4. 机器学习实战(十一)利用PCA来简化数据
  5. matlab 性能分析方法,DPCM,PSK系统的MATLAB实现及性能分析
  6. 直播预告|阿里云天池牛年读书会《中学生可以这样学Python(微课版)》
  7. 【开源软件】windows环境下libcurl编译
  8. 进入Docker容器的4种方式
  9. 重温马尔科夫随机过程
  10. JAVA中3种将byte转换为String的方法
  11. C# RabbitMQ(一)介绍
  12. html加密原理,说说Html5视频加密播放原理
  13. 计算机辅助园林设计考试题,计算机辅助园林规划设计之软件比较
  14. 西门子1200PLC模拟量测温案例1
  15. 甲骨文oracle兴学,甲骨文 Oracle Bone Inscription
  16. Laravel数据库之Seeding
  17. 一个站点不够学?那就在用Python增加一个采集目标,一派话题广场+某金融论坛话题广场爬虫
  18. 项目学习 —— 图书商城后台管理
  19. 2021-06-03 【论文笔记】Cross-domain Correspondence Learning for Exemplar-based Image Translation
  20. Android系统10 RK3399 init进程启动(十八) isLoggable日志级别输出控制

热门文章

  1. 遥感影像植被颜色增强
  2. 渲染怎么加hdri_[翻译]Corona渲染器官方教程2--设置HDRI光照
  3. 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%; 20万到4
  4. 真正的焦虑感来自对比
  5. 历届电大计算机网考试题及答案,电大2012年计算机应用基础网考统考试题及答案...
  6. python atm详解_python基础之ATM-1
  7. 用php写一个user类,使用php怎么编写一个用户查询类
  8. xml提交数据的方法--gin
  9. go应用---Time.second
  10. python下文件以及文件的常用操作-1