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



我看了Zeiler的论文(arxiv/pdf),以及他在youtube上的一些演讲视频,我试图用tensorflow复制它,我发现了一种叫做自动编码器的东西,它的程序(对局外人来说)看起来很相似,如:

在Zeiler的论文中:

  1. 卷积输入
  2. 通过RELU
  3. 执行池
  4. 。。。冲洗并重复所有层,完成后,将过程反转回像素空间

在自动编码器中:

将其与我在github上看到的自动编码器(github-python文件)进行比较,它可以做到这一点:

  1. 对输入进行卷积
  2. 通过RELU
  3. 执行池
  4. 。。。冲洗并重复其他层,然后反向返回像素空间

因此,为了对conv网络使用tensorflow所做的事情进行可视化,这个代码和这个自动编码器有什么不同?我一直在努力弄清楚在给定一组训练数据和训练后的convnet的情况下,我如何可视化图像具有或不具有什么,以使其引起激活,正如论文中提到的那样。(其中一位作者为此写了一篇博客(clarifai.com.NSFW),展示了他们的技术,该论文的技术是使用caffe在开源代码(deepvis)中复制的,但我对caffe不熟悉,对tensorflow也不熟悉)。如何做到这一点?

可能不是一个完整的比较,但

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

  • 要添加。

最新更新