问题标签 [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 投票
0 回答
154 浏览

matlab - 具有独立隐藏激活的无监督神经网络:如何实现熵或峰态惩罚?

简单来说:

如何为我的无监督神经网络的成本和反向传播(我正在使用堆叠稀疏自动编码器)实现类似 ICA 的熵或峰度惩罚项?

详细说明:

我基于 Andrew Ng 的 UFLDL 教程使用共轭梯度下降和 Wolfe 线搜索在 Matlab 中实现了稀疏自动编码器 (AE)。与使用 infomax 的独立分量分析 (ICA) 相比,这在我的数据上获得了更清晰的结果(我将我的 AE 的隐藏层激活与 eeglab 的 runica 函数的 ICA 激活进行了比较。)

然而,激活的最大独立性,就像在 ICA 中一样,对我来说也是一个基本标准。所以我想实现更高质量的 sNN 隐藏激活,但也让它们独立。换句话说,我想从稀疏性和独立性中受益。

ICA 使用熵或峰态惩罚项来最小化跨组件(激活)的互信息。

我尝试简单地应用 matlab 的 goropy 或峰度函数:如果给定隐藏层的激活矩阵 'a' 是 (outputNeurons*hiddenNeurons),我会这样做:

这给出了不好的结果并且没有独立的激活。我想我还应该计算反向传播的惩罚误差,但我不确定如何计算。我也不确定我的上述费用罚款是否正确。

有什么想法可以改进上述代码,或者只是用简单的数学术语为我指出正确的方向?

0 投票
1 回答
2268 浏览

matlab - 在 MATLAB 中使用自动编码器进行函数逼近

我有一个简单的非线性函数 y=x.^2,其中 x 和 y 是 n 维向量,正方形是按分量计算的正方形。我想使用 Matlab 中的自动编码器用低维向量近似 y。问题是即使将低维空间设置为 n-1,我的重构 y 也会失真。我的训练数据看起来像 这样,这是从低维空间重建的典型结果。我的 Matlab 代码如下所示。

0 投票
1 回答
400 浏览

machine-learning - 为什么在进行 VAE 后,完全前馈网络中的平均绝对误差不会下降?

我正在尝试建立一个预测模型,最初我做了变分自动编码器并将特征从 2100 减少到 64。

现在有 (5000 X 64) 样本用于训练和 (2000 X 64) 用于测试,我尝试构建一个完全前馈或 MLP 网络,但结果当我的平均绝对误差达到 161 时,它并没有下降。我尝试改变所有超参数以及隐藏层,但没有用。

谁能建议原因是什么以及我如何克服这个问题?

0 投票
0 回答
130 浏览

python - 合并和训练 Theano 自动编码器

我正在尝试使用 Theano 的自动编码器从两种不同类型的数据中发现特定于上下文的特征。

第一种有 13 个特征,第二种有 60 个。

两者都有自己独立的自动编码器堆栈。

我合并最顶层的输出并将它们输入回归层以进行监督训练。

每个上下文的预训练似乎都可以正常工作,但是我在使用教程中的标准训练功能进行微调时遇到了障碍。

我收到以下错误:

我相信这与 Theano 节点在训练期间的处理方式有关。似乎训练批次 (5, 73) 从第一个上下文 (13, 20) 开始分别直接应用于输出节点。

0 投票
1 回答
2336 浏览

machine-learning - 如何训练和微调完全无监督的深度神经网络?

在场景 1 中,我有一个多层稀疏自动编码器,它试图重现我的输入,因此我的所有层都与随机启动的权重一起训练。没有监督层,在我的数据上,这并没有学习任何相关信息(代码工作正常,经过验证,因为我已经在许多其他深度神经网络问题中使用过它)

在场景 2 中,我只是在类似于深度学习的贪婪逐层训练中训练多个自动编码器(但最终没有监督步骤),每一层都在前一个自动编码器的隐藏层的输出上。他们现在将分别学习一些模式(正如我从可视化权重中看到的那样),但并不像我所期望的那样来自单层 AE。

所以我决定尝试现在连接到 1 个多层 AE 的预训练层是否可以比随机初始化的版本执行得更好。如您所见,这与深度神经网络中微调步骤的想法相同。

但在我的微调过程中,所有层的神经元似乎都迅速收敛到一个完全相同的模式,最终什么也没学到。

问题:训练完全无监督的多层重建神经网络的最佳配置是什么?首先分层,然后进行某种微调?为什么我的配置不起作用?

0 投票
0 回答
372 浏览

matlab - MATLAB自动编码器学习常量函数

我正在尝试在 MATLAB 中训练一个基本的自动编码器。我的数据是 430 个十维点,我的自动编码器代码像

如您所见,我正在使用线性解码器。当我在我的数据集上运行它时,autoenc最终只是学习了一个常量函数。所有输入权重最终都会不同,但运行predict(autoenc, data)会为每个数据点提供相同的向量。会发生什么?

编辑:我环顾四周,自动编码器有时会简单地学习数据的平均值并称之为一天,这似乎是一种普遍现象。显然这是一个优化错误,这是一个局部最小值。相关链接有点相关的链接。两者都没有提供令人满意的答案。据我所知,MATLAB 的自动编码器仅提供共轭梯度。

0 投票
0 回答
347 浏览

tensorflow - 如何使用 Tensorflow 从自动编码器中提取(绘制)隐藏单元/softmax(特征)

我是 ML 新手,我正在使用 tensorflow。
我想查看我的自动编码器的功能,但我不知道如何提取(查看)隐藏单元。
有人可以帮助我吗?

我制作了自己的数据集,但原始代码使用 MNIST: https ://jmetzen.github.io/2015-11-27/vae.html

我添加了一层隐藏单元以将其转换为 Stacked AE..(我不知道它是否被堆叠,但有效)

我的AE:https ://github.com/Snowedze/Autoencoder.git

0 投票
1 回答
1035 浏览

python - 将输入参数传递给 Theano 函数的正确方法是什么?

我正在使用安装了 Theano 库(更新版本)的 Python 2.7,我在定义 Theano 函数的输入参数方面遇到了问题。

代码是:

它取自这里:

http://deeplearning.net/tutorial/code/SdA.py

它给了我这个错误,Eclipse:

因此,如果我以这种方式更改代码:

它有效,但我无法传递 corruption_level 和 learning_rate 的值。

任何人都可以帮忙吗?谢谢!

卢卡

0 投票
0 回答
1157 浏览

neural-network - 卷积自动编码器没有学习有意义的过滤器

我正在使用 TensorFlow 来了解卷积自动编码器。我已经实现了一个简单的单层自动编码器,它可以做到这一点:

输入(尺寸:95x95x1)---> 编码(使用 32 个 5x5 滤波器进行卷积)---> 潜在表示(尺寸:95x95x1x32)---> 解码(使用绑定权重)---> 重构输入(尺寸:95x95x1)

输入是黑白边缘图像,即对 RGB 图像进行边缘检测的结果。

我随机初始化过滤器,然后训练模型以最小化损失,其中损失定义为输入和重构输入的均方误差。

经过 1000 步训练后,我的损失收敛,网络能够很好地重建图像。但是,当我将学习到的过滤器可视化时,它们看起来与随机初始化的过滤器并没有太大区别!但是过滤器的值会随着训练步骤的不同而变化。

学习过滤器示例

我本来期望至少水平和垂直边缘过滤器。或者,如果我的网络正在学习“身份过滤器”,我会期望过滤器都是白色的吗?

有人对此有任何想法吗?或者对我可以做些什么来分析正在发生的事情有什么建议吗?我应该在解码之前包括池化和去池化层吗?

谢谢!

P/S:我在 RGB 图像上尝试了相同的模型,过滤器再次看起来是随机的(就像随机的颜色斑点)。

0 投票
0 回答
151 浏览

autoencoder - 自动编码器中的编码和解码算法

我目前正在使用 R 开发自动编码器。我已经尝试使用 R 中的自动编码器包,但我无法解释结果。所以我正在尝试为自动编码器编写 R 代码。我的问题是如何在自动编码器中完成编码和解码。有什么公式或算法吗?任何人都可以帮我吗?