Questions tagged «autoencoders»

前馈神经网络经过训练可以重建自己的输入。通常,隐藏层之一是“瓶颈”,导致编码器->解码器解释。






3
在Tensorflow中构建自动编码器以超越PCA
Hinton和Salakhutdinov在利用神经网络降低数据的维数方面,《科学》(Science) 2006年提出了通过使用深度自动编码器来实现非线性PCA的方法。我曾多次尝试使用Tensorflow构建和训练PCA自动编码器,但我从未获得过比线性PCA更好的结果。 如何有效地训练自动编码器? (后来由@amoeba编辑:这个问题的原始版本包含Python Tensorflow代码,这些代码无法正常运行。您可以在编辑历史记录中找到它。)

2
变分自动编码器中如何权衡KLD损耗与重构损耗
在我见过的VAE的几乎所有代码示例中,损失函数的定义如下(这是张量流代码,但是我看到theano,torch等类似。它也适用于卷积网络,但这也不太相关) ,仅影响轴的总和): # latent space loss. KL divergence between latent space distribution and unit gaussian, for each batch. # first half of eq 10. in https://arxiv.org/abs/1312.6114 kl_loss = -0.5 * tf.reduce_sum(1 + log_sigma_sq - tf.square(mu) - tf.exp(log_sigma_sq), axis=1) # reconstruction error, using pixel-wise L2 loss, for each batch rec_loss = …


2
自动编码器无法学习有意义的功能
我有50,000张图片,例如这两张图片: 它们描绘了数据图。我想从这些图像中提取特征,因此我使用了Theano(deeplearning.net)提供的自动编码器代码。 问题是,这些自动编码器似乎没有学习任何功能。我已经尝试过RBM,它是相同的。 MNIST数据集提供了不错的功能,但我的数据似乎没有任何结果。我在下面附上示例: 在MNIST上创建的过滤器: 通过对数据进行训练而创建的过滤器: 我使用了隐藏层大小和训练时期的许多不同排列方式,但结果始终相同。 为什么不起作用?为什么自动编码器不能从这些图像中提取特征? 编辑: 对于有类似问题的任何人。解决方法非常简单,原因也很愚蠢。我只是忘了重新调整RGB编码的像素值以使其浮动在0-1的范围内。 重新调整值可以解决问题。

3
堆叠卷积自动编码器的体系结构是什么?
因此,我正在尝试使用卷积网络对人的图像进行预训练。我阅读了论文(Paper1和Paper2)以及这个stackoverflow链接,但是我不确定我是否了解网络的结构(在论文中没有很好地定义)。 问题: 我可以让我的输入,然后是噪波层,接着是conv层,再是池化层-之后-在提供输出之前是否要进行解池(与输入图像相同)? 假设我有几张(135,240)张图片。如果使用32(12,21)个内核,然后使用(2,2)池化,则最终将得到32(62,110)个特征图。现在,我是否要分解以获取32(124、220)个特征图,然后对其进行展平?给我的(135,240)输出层之前? 如果我有多个这样的转换池层,是否应该一一训练它们-就像在堆叠的去噪自动编码器中一样?或者-我可以有类似input-conv-pool-conv-pool-conv-pool-output(输出与输入相同)的东西吗?在那种情况下,应该如何管理池化,池化?我是否应该仅在输出之前的最后一个池层中解池?再说一遍,该分池的调整大小因素应该是什么?是否打算将要素图恢复为输入的形状? 我应该在每个conv-pool-depool层之后引入噪声层吗? 然后在进行微调时-我是否应该只删除去池层,其余的保持不变。还是应该同时删除噪声层和去池化层 谁能指出我的网址/论文,其中详细介绍了这种堆叠式卷积自动编码器的架构,可以对图像进行预训练?

1
自动编码器的损耗功能
我正在尝试一些自动编码器,并使用tensorflow创建了一个试图重建MNIST数据集的模型。 我的网络非常简单:X,e1,e2,d1,Y,其中e1和e2是编码层,d2和Y是解码层(Y是重构的输出)。 X具有784个单位,e1具有100个单位,e2具有50个单位,d1具有100个单位,Y具有784个单位。 我将S型曲线用作层e1,e2,d1和Y的激活函数。输入在[0,1]中,因此应该是输出。 好吧,我尝试使用交叉熵作为损失函数,但输出始终是斑点,并且我注意到从X到e1的权重始终会收敛到零值矩阵。 另一方面,将均方误差用作损失函数,会产生不错的结果,我现在可以重构输入。 为什么呢?我以为我可以将这些值解释为概率,因此可以使用交叉熵,但是显然我做错了。

4
什么时候应该使用变型自动编码器而不是自动编码器?
我了解变体自动编码器和常规(确定性)自动编码器的基本结构以及它们背后的数学原理,但是何时,为何以及为什么我会偏爱一种自动编码器呢?我能想到的是,变分自动编码器的潜在变量的先验分布使我们可以对潜在变量进行采样,然后构造新图像。与确定性自动编码器相比,可变自动编码器的随机性有什么优势?

3
为什么我们需要自动编码器?
最近,我一直在研究自动编码器。如果我理解正确,那么自动编码器就是一个神经网络,其中输入层与输出层相同。因此,神经网络尝试使用输入作为黄金标准来预测输出。 此模型的用处是什么?尝试重构某些输出元素,使其尽可能与输入元素相等,会有什么好处?为什么要使用所有这些机器来达到相同的起点?

1
机器学习模型的“能力”是什么?
我正在研究Carl Doersch撰写的有关变式自动编码器的教程。在第二页中指出: 此类框架中最受欢迎的框架之一是本教程的主题“变体自动编码器” [1,3]。该模型的假设很弱,并且通过反向传播训练很快。VAE确实可以近似,但是在给定大容量模型的情况下,这种近似引入的误差可以说很小。这些特征促使它们迅速普及。 过去,我已经阅读了有关大容量模型的这类说法,但似乎没有找到明确的定义。我也发现了这个相关的stackoverflow问题,但对我来说,答案非常不令人满意。 是否有模型容量的定义?你能衡量吗?

1
训练堆叠式自动编码器和2层神经网络有什么区别吗?
假设我正在编写一种用于构建2层堆叠式自动编码器和2层神经网络的算法。它们是一样的还是不同的? 我了解的是,当我构建一个堆叠式自动编码器时,我会逐层构建。对于神经网络,我将初始化网络中的所有参数,然后对于每个数据点,将其通过网络并计算损耗(例如,euclean距离)并进行反向传播。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.