使用反卷积来可视化神经网络和自动编码器的作用有什么区别?

时间:2016-05-26 14:04:53

标签: python-3.x neural-network tensorflow caffe

我查看了Zeiler (arxiv/pdf)的论文,以及他在youtube上谈论的一些视频,我试图用tensorflow重现它,我遇到了一个名为autoencoders的东西,它有一个程序, (to and outsider)看起来很相似,如:

在Zeiler的论文中:

  1. 卷入输入。
  2. 将其传递给RELU。
  3. 执行合并。
  4. ...冲洗并重复所有图层,完成后,将过程反转回像素空间,
  5. 在自动编码器中:

    将其与我在github (github python file)上看到的自动编码器进行比较,这样做:

    1. 卷入输入
    2. 通过RELU
    3. 执行合并
    4. ...冲洗并重复其他图层,然后反向回到像素空间。
    5. 因此,要使用tensorflow执行conv网络的可视化, 这个自动编码器的代码有多么不同?我坚持尝试 弄清楚如何给出一组训练数据和训练有素的信号,我会想象一下图像有什么或没有它可以引起激活,如该文章所述。 (其中一位作者写了关于这个(clarifai.com NSFW)的博客,展示了他们的技术,并且使用caffe在开源代码(deepvis)中复制了论文的技术,但我不熟悉caffe,并且对tensorflow不熟悉) 。 怎么会这样做?

1 个答案:

答案 0 :(得分:1)

可能不是完整的比较,但

  • Zeiler的devonv网通过记住在下采样(最大池)步骤中哪个像素是最大值来进行上采样。有不同的方法进行上采样。卷积自动编码器可以定义conv2d_transpose层,它只是conv2d的反向,但可以在训练期间学习参数。与简单地记录Zeiler方法中的最大像素位置相比,这样的层看起来更灵活(即,更多参数)。

  • 待补充。