问题标签 [autoencoder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1490 浏览

python - 自动编码器以减少输入数据大小

目前,我想使用自动编码器来减少输入数据的大小,以便将减少的数据用于另一个神经网络。我的任务是拍摄视频,然后将视频图像提供给自动编码器。当我只使用几张图像作为输入时,自动编码器工作得很好,但是当我想要一个图像序列时,它就不行了。

想象一下从一个移动的球中拍摄视频。例如,我们有 200 张图像。如果我对 200 张图像使用自动编码器,则误差很大,但如果我只使用 5 张图像,则重建误差很小并且可以接受。似乎自动编码器没有学习球循环的顺序或时间运动。我也尝试表示堆叠自动编码器,但结果并不好。

有谁知道问题是什么,或者可以使用自动编码器来完成这项任务?

0 投票
1 回答
1992 浏览

java - 自动编码器的实现

我正在尝试用我自己的 Java实现一个自动编码器。从理论上,我了解到自动编码器基本上是一个对称网络。

那么,如果我选择总共有 5 层,我必须在训练(反向传播)阶段使用 9 层还是 5 层就足够了?

我一直在阅读理论,但它们太抽象了,而且充满了数学公式,我无法通过谷歌获得任何实现细节。

这样做的通常方法是什么?

在此处输入图像描述

一个自动编码器,在训练阶段,使用反向传播,试图获得与输入相似的输出,目标是最小化错误。如上所示。上图中的层数为 7,而实际训练后的层数为 4。那么,在训练时我可以只用 4 个实现反向传播吗?如果是这样,我该怎么做?

0 投票
1 回答
1453 浏览

nlp - 使用自动编码器进行文本分类的特征构建

据我所知,自动编码器可用于降低特征向量的维数。在文本分类中,特征向量通常是通过字典构建的——字典往往非常大。我没有使用自动编码器的经验,所以我的问题是:

  1. 自动编码器可以用来减少文本分类中的维度吗?(为什么?/为什么不呢?)
  2. 有人已经这样做了吗?如果是这样,来源会很好。
0 投票
1 回答
621 浏览

theano - Theano 是否支持变量拆分?

在我的 Theano 程序中,我想将张量矩阵分成两部分,每部分对误差函数都有不同的贡献。谁能告诉我自动微分是否支持这一点?

例如,对于一个张量矩阵变量M,我想将其拆分为M1=M[:300,]和M2=M[300:,],那么代价函数定义为0.5* M1 * w + 0.8*M2 *w。是否仍然可以使用 T.grad(cost,w) 获得梯度?

或者更具体地说,我想构建一个具有不同特征的自动编码器,在总成本中具有不同的权重。

感谢任何回答我问题的人。

0 投票
1 回答
334 浏览

neural-network - 自动编码器:关于训练算法的论文和书籍

哪些是关于自动编码器以及自动编码器的各种不同训练算法的著名研究论文和/或书籍?我说的是研究论文和/或书籍,它们为用于训练自动编码器的不同训练算法奠定了基础。

0 投票
2 回答
25807 浏览

computer-vision - 您如何确定用于图像分类的卷积神经网络的参数?

我正在使用卷积神经网络(无监督特征学习来检测特征 + Softmax 回归分类器)进行图像分类。我已经阅读了 Andrew NG 在这方面的所有教程。(http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial)。

我开发的网络有一个:

  • 输入层 - 大小 8x8(64 个神经元)
  • 隐藏层 - 大小 400 个神经元
  • 输出层 - 大小 3

我已经学习了使用稀疏自动编码器将输入层连接到隐藏层的权重,因此具有 400 个不同的特征。

通过从任何输入图像 (64x64) 中获取连续的 8x8 补丁并将其馈送到输入层,我得到了 400 个大小为 (57x57) 的特征图。

然后我使用大小为 19 x 19 的窗口的最大池化来获得 400 个大小为 3x3 的特征图。

我将此特征图提供给 softmax 层,以将其分为 3 个不同的类别。

这些参数,例如隐藏层的数量(网络的深度)和每层的神经元数量,在教程中被提出,因为它们已成功用于一个特定的数据集,其中所有图像的大小为 64x64。

我想将此扩展到我自己的数据集,其中图像要大得多(比如 400x400)。我如何决定

  1. 层数。

  2. 每层的神经元数量。

  3. 池化窗口的大小(最大池化)。

0 投票
1 回答
262 浏览

machine-learning - 未找到 mlpack 稀疏编码解决方案

我正在尝试学习如何将稀疏编码算法与 mlpack 库一起使用。当我在我的 mlpack::sparse_coding:SparseCoding 实例上调用 Encode() 时,出现错误

仅仅是算法无法学习数据的潜在表示吗?或者也许这是我的用法?相关部分如下编辑:修改了一行以修复不相关的错误,但原始错误仍然存​​在。

一些相关参数

0 投票
2 回答
22562 浏览

machine-learning - 深度信念网络与卷积神经网络

我是神经网络领域的新手,我想知道深度信念网络和卷积网络之间的区别。另外,有没有深度信念和卷积神经网络结合的深度卷积网络?

这是我到现在为止收集到的。如果我错了,请纠正我。

对于图像分类问题,Deep Belief 网络有很多层,每一层都使用贪婪的逐层策略进行训练。例如,如果我的图像大小是 50 x 50,并且我想要一个有 4 层的深度网络,即

  1. 输入层
  2. 隐藏层 1 (HL1)
  3. 隐藏层 2 (HL2)
  4. 输出层

我的输入层将有 50 x 50 = 2500 个神经元,HL1 = 1000 个神经元(比如说),HL2 = 100 个神经元(比如说)和输出层 = 10 个神经元,为了训练输入层和 HL1 之间的权重(W1),我使用自动编码器 (2500 - 1000 - 2500) 并学习大小为 2500 x 1000 的 W1(这是无监督学习)。然后我通过第一个隐藏层前馈所有图像以获得一组特征,然后使用另一个自动编码器(1000 - 100 - 1000)获得下一组特征,最后使用 softmax 层(100 - 10)进行分类。(仅学习最后一层(HL2 - 输出,即 softmax 层)的权重是监督学习)。

(我可以使用 RBM 代替自动编码器)。

如果使用卷积神经网络解决了同样的问题,那么对于 50x50 的输入图像,我将开发一个仅使用 7 x 7 补丁的网络(比如说)。我的图层将是

  1. 输入层(7 x 7 = 49 个神经元)
  2. HL1(25 个神经元,用于 25 个不同的特征)-(卷积层)
  3. 池化层
  4. 输出层(Softmax)

为了学习权重,我从大小为 50 x 50 的图像中获取 7 x 7 个补丁,并通过卷积层前馈,因此我将有 25 个不同的特征图,每个大小为 (50 - 7 + 1) x (50 - 7 + 1) = 44 x 44。

然后我使用一个 11x11 的窗口来池化手,因此得到 25 个大小为 (4 x 4) 的特征图作为池化层的输出。我使用这些特征图进行分类。

在学习权重时,我没有使用深度信念网络(无监督学习)中的逐层策略,而是使用监督学习并同时学习所有层的权重。这是正确的还是有其他方法可以学习权重?

我的理解正确吗?

因此,如果我想使用 DBN 进行图像分类,我应该将所有图像调整为特定大小(比如 200x200)并在输入层中有那么多神经元,而在 CNN 的情况下,我只在一小块图像上进行训练输入(比如 10 x 10 大小为 200x200 的图像)并在整个图像上对学习的权重进行卷积?

DBN 是否提供比 CNN 更好的结果,还是完全依赖于数据集?

谢谢你。

0 投票
1 回答
297 浏览

python - Stacked DenoisingAutoencoders 的 Theano 实现 - 为什么 dA 层的输入相同?

http://deeplearning.net/tutorial/SdA.html#sda上的 Stacked DenoisingAutoencoders 教程中,pretraining_functions 返回代表每个 dA 层的训练函数的函数列表。但我不明白为什么它为所有 dA 层提供相同的输入 ( train_set_x)。实际上,每个 dA 层的输入应该是除第一个 dA 层之外的下一层的输出。谁能告诉我为什么这些代码是正确的?

0 投票
0 回答
584 浏览

machine-learning - 机器学习:自动编码器上的模拟退火

我已经实现了模拟退火来解决一个简单的权重绑定神经网络的成本函数,但我收到了一些奇怪的结果。

逻辑:

  • Forward prop:f(W*x+b),其中 f = tanh,W = 权重矩阵,x = 输入数据,b = 偏差
  • 权重和偏差使用 rnd 高斯权重随机初始化
  • 权重和偏差由 W/norm2(W) 和 b/norm2(b) 归一化
  • 扰动 W 为:W +/- rnd_unif[0,1] & 对 b 做同样的事情
  • 再次转发道具,如果 MSE < 先前的 MSE 接受,否则使用退火标准
  • 每隔 n 次接受更新一次温度。使用通用 T=T*0.9

似乎正在发生的事情是网络确实按预期降低了成本,但是一些错误预测的 MSE 低于“正常”状态 MSE。在反向传播中,我们观察到 MSE 总是较高的错误。我想知道其他人是否遇到了同样的问题。