问题标签 [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 回答
1217 浏览

machine-learning - 为什么不在自动编码器中使用正则化项而不是稀疏项?

我读过这篇关于自动编码器的文章,由 Andrew Ng 介绍。在那里,他使用像正则化这样的稀疏性来断开连接,但稀疏性的公式与 regur 不同。所以,我想知道为什么我们不直接使用像神经网络模型或逻辑回归这样的正则化术语: (1/2 * m) * Theta^2 ?

0 投票
0 回答
155 浏览

r - RcppDL 自动编码器的重建数据具有相同的值

我正在使用 RcppDL 库做一些实验。训练后,我使用原始数据集重建数据。但是,所有数据都具有相同的值。

我的数据(第一列是 id):

重建后我得到了什么:

我的代码非常简单:

谁能帮我弄清楚这里出了什么问题?

0 投票
5 回答
6306 浏览

python - 来自密集张量 Tensorflow 的稀疏张量(矩阵)

我正在创建一个卷积稀疏自动编码器,我需要将一个充满值(其形状为[samples, N, N, D])的 4D 矩阵转换为一个稀疏矩阵。

对于每个样本,我有 D NxN 个特征图。我想将每个 NxN 特征映射转换为稀疏矩阵,最大值映射为 1,其他所有映射为 0。

我不想在运行时而是在 Graph 声明期间执行此操作(因为我需要使用生成的稀疏矩阵作为其他图形操作的输入),但我不明白如何获取索引来构建稀疏矩阵。

0 投票
1 回答
1821 浏览

python - Keras 中的深度自动编码器将一个维度转换为另一个维度

我正在使用表示图像和字幕的向量来执行图像字幕任务。

字幕矢量的长度/尺寸为 128。图像矢量的长度/尺寸为 2048。

我想要做的是训练一个自动编码器,以获得一个能够将文本向量转换为图像向量的编码器。以及能够将图像向量转换为文本向量的解码器。

编码器:128 -> 2048。

解码器:2048 -> 128。

我按照教程实现了一个浅层网络来做我想做的事情。

但我不知道如何按照相同的教程创建深度网络。

training_data_x 和 test_data_x 有 128 个维度。training_data_y 和 test_data_y 有 2048 个维度。

我在尝试运行时收到的错误如下:

例外:检查模型目标时出错:预期dense_6具有形状(无,128)但得到的数组具有形状(32360、2048)

dense_6 是最后解码的变量。

0 投票
2 回答
418 浏览

python - 构建卷积自动编码器时尺寸错误

我正在 Keras 中迈出第一步,并为我的图层尺寸而苦苦挣扎。我目前正在构建一个卷积自动编码器,我想使用 MNIST 数据集进行训练。不幸的是,我似乎无法获得正确的尺寸,而且我很难理解我的错误在哪里。

我的模型是通过以下方式构建的:

并使用以下方法检索数据:

如您所见,我正在尝试对图像进行规范化以以黑白显示它们,并且只是为了训练自动编码器以能够恢复它们。

您可以在下面看到我收到的错误:

Traceback(最近一次调用最后一次):文件“C:/Users//Documents/GitHub/main/research/research_framework/experiment.py”,第 46 行,回调 = [EarlyStopping(patience=3)])文件“C: \Users\AppData\Local\Continuum\Anaconda2\lib\site-packages\keras\engine\training.py”,第 1047 行,适合 batch_size=batch_size) 文件“C:\Users\AppData\Local\Continuum\Anaconda2\ lib\site-packages\keras\engine\training.py",第 978 行,在 _standardize_user_data exception_prefix='model target') 文件“C:\Users\AppData\Local\Continuum\Anaconda2\lib\site-packages\keras\ engine\training.py",第 111 行,在 standardize_input_data str(array.shape)) 异常:检查模型目标时出错:预期的 convolution2d_7 具有形状 (None, 8, 32, 1) 但得到的数组具有形状 (60000L, 1L , 28L,28L) 总参数:8273

进程以退出代码 1 结束

你能帮我解密这个错误吗?除了 Keras 网站之外,是否有任何关于构建模型和处理此类问题的材料?

干杯

0 投票
1 回答
405 浏览

matlab - matlab中稀疏自编码器的无监督训练

我尝试按照 mathworks 提供的示例来训练深度稀疏自动编码器(4 层),因此我分别对自动编码器进行了预训练,然后堆叠到深度网络中。但是,当我尝试通过 train(deepnet, InputDataset) 指令微调这个网络时,训练会立即停止,并且我会收到“达到性能目标”的消息。有没有办法在 Matlab 中以无监督的方式训练和微调深度自动编码器网络(没有提供标签)?

0 投票
2 回答
1067 浏览

keras - RNN 变分自动编码器中的字符串输入输出表示

我在看.. 分子自动编码器让我们可以对化合物进行插值和基于梯度的优化https://arxiv.org/pdf/1610.02415.pdf

该论文采用输入的 Smiles 字符串(分子的文本表示),然后使用变分编码器将其映射到 2D 潜在空间。

hexan-3-ol "CCCC(O)CC" 的示例微笑字符串

在论文中,他们用空格将短字符串填充到 120 个字符。

该论文使用一堆一维卷积网络将字符串编码为微笑字符串的潜在表示

然后它使用 3 Gated 循环单元 GRU 将潜在空间中的位置映射回微笑字符串。

我在理解本文时遇到的问题是确定输入和输出结构是什么样的。

这篇论文对输入和输出结构有点模糊。从一维卷积网络的使用中,我怀疑输入是一个向量化的表示,类似于

在输出纸上说

RNN 解码器的最后一层定义了 SMILES 字符串中每个位置的所有可能字符的概率分布

那么对于论文中使用的最大微笑长度 120 和 35 个可能的微笑字符,这是否意味着输出是 [120x35] 数组?

向前推进该逻辑是否表明输入是一个扁平的 [120*35] 数组 - 请记住它是一个自动编码器。

我的问题是 1dConv,它使用的最大长度为 9,如果它是扁平的 [120*35] 数组,则不足以覆盖序列中的下一个原子

谢谢你的帮助...

0 投票
0 回答
719 浏览

neural-network - 如何将 Tensorflow 网络分成两个保持梯度反向传播?

我正在尝试使用 tensorflow 实现“深度卷积逆图形网络”,这意味着我必须对渐变做一些棘手的事情。

基本上,我想将一个自动编码器分成两个独立的网络。我不必这样做,但这会很方便。目的是在反向传播步骤中对梯度流动进行一些难以形容的修改。你有什么想法可以做到吗?这是我想要实现的架构: 在此处输入图像描述

很容易看出,对于正向路径,这意味着获取一个网络的输出并将其插入另一个网络。不幸的是,我看不到如何反向传播错误。

目前我最好的想法是复制权重矩阵之一,即将 W3 复制到编码器作为 W2.5,然后将 W3 的梯度复制为 W2.5 的梯度。但是在这个模式中必须有一个更简单的方法或一个明显的误解。

0 投票
0 回答
59 浏览

python - 自动编码器 - 当多个数据示例时成本降低但输出错误

我最近在 numpy 中实现了一个自动编码器。我已经用数值检查了所有的梯度,它们看起来是正确的,如果学习率足够小,成本函数似乎在每次迭代时也会降低。

问题:

如您所知,自动编码器获取输入x,并尝试返回尽可能接近的内容x

每当 myx是行向量时,它都能很好地工作。代价函数减小到0,我们得到了很好的结果,例如:当x = [[ 0.95023264 1. ]]我10000次迭代后得到的输出是xhat = [[ 0.94972973 0.99932479]],代价函数大约是10^-7

但是,当 myx不是行向量时,即使它是一个小的 2 x 2 矩阵,输出也不会接近原始 x,并且成本函数不会减少到 0,而是会趋于平稳。

例子:

当输入为x = [[ 0.37853141 1. ][ 0.59747807 1. ]]输出时xhat = [[ 0.48882265 0.9985147 ][ 0.48921648 0.99927143]]。您可以看到 xhat 的第一列似乎并不接近 x 的第一列,而是接近 x 的第一列的平均值。这似乎发生在我运行的所有测试中。此外,成本函数稳定在 0.006 左右,不会达到 0。

为什么会发生这种情况,我该如何解决?再次 - 导数是正确的。我不知道如何解决这个问题。

我的代码

0 投票
1 回答
1034 浏览

python - Keras fit_generator 产生异常:生成器的输出应该是元组(x,y,sample_weight)或(x,y)。找到:[[[[ 0.86666673

我正在尝试为非 MNIST、非 Imagenet 数据构建自动编码器。使用 https://blog.keras.io/building-autoencoders-in-keras.html作为我的基础。但是,我收到以下错误。

由于这是一个自动编码器,因此在我的数据生成器中,使用了 class mode=None。我的代码如下。