问题标签 [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.
matlab - 具有独立隐藏激活的无监督神经网络:如何实现熵或峰态惩罚?
简单来说:
如何为我的无监督神经网络的成本和反向传播(我正在使用堆叠稀疏自动编码器)实现类似 ICA 的熵或峰度惩罚项?
详细说明:
我基于 Andrew Ng 的 UFLDL 教程使用共轭梯度下降和 Wolfe 线搜索在 Matlab 中实现了稀疏自动编码器 (AE)。与使用 infomax 的独立分量分析 (ICA) 相比,这在我的数据上获得了更清晰的结果(我将我的 AE 的隐藏层激活与 eeglab 的 runica 函数的 ICA 激活进行了比较。)
然而,激活的最大独立性,就像在 ICA 中一样,对我来说也是一个基本标准。所以我想实现更高质量的 sNN 隐藏激活,但也让它们独立。换句话说,我想从稀疏性和独立性中受益。
ICA 使用熵或峰态惩罚项来最小化跨组件(激活)的互信息。
我尝试简单地应用 matlab 的 goropy 或峰度函数:如果给定隐藏层的激活矩阵 'a' 是 (outputNeurons*hiddenNeurons),我会这样做:
这给出了不好的结果并且没有独立的激活。我想我还应该计算反向传播的惩罚误差,但我不确定如何计算。我也不确定我的上述费用罚款是否正确。
有什么想法可以改进上述代码,或者只是用简单的数学术语为我指出正确的方向?
machine-learning - 为什么在进行 VAE 后,完全前馈网络中的平均绝对误差不会下降?
我正在尝试建立一个预测模型,最初我做了变分自动编码器并将特征从 2100 减少到 64。
现在有 (5000 X 64) 样本用于训练和 (2000 X 64) 用于测试,我尝试构建一个完全前馈或 MLP 网络,但结果当我的平均绝对误差达到 161 时,它并没有下降。我尝试改变所有超参数以及隐藏层,但没有用。
谁能建议原因是什么以及我如何克服这个问题?
python - 合并和训练 Theano 自动编码器
我正在尝试使用 Theano 的自动编码器从两种不同类型的数据中发现特定于上下文的特征。
第一种有 13 个特征,第二种有 60 个。
两者都有自己独立的自动编码器堆栈。
我合并最顶层的输出并将它们输入回归层以进行监督训练。
每个上下文的预训练似乎都可以正常工作,但是我在使用教程中的标准训练功能进行微调时遇到了障碍。
我收到以下错误:
我相信这与 Theano 节点在训练期间的处理方式有关。似乎训练批次 (5, 73) 从第一个上下文 (13, 20) 开始分别直接应用于输出节点。
machine-learning - 如何训练和微调完全无监督的深度神经网络?
在场景 1 中,我有一个多层稀疏自动编码器,它试图重现我的输入,因此我的所有层都与随机启动的权重一起训练。没有监督层,在我的数据上,这并没有学习任何相关信息(代码工作正常,经过验证,因为我已经在许多其他深度神经网络问题中使用过它)
在场景 2 中,我只是在类似于深度学习的贪婪逐层训练中训练多个自动编码器(但最终没有监督步骤),每一层都在前一个自动编码器的隐藏层的输出上。他们现在将分别学习一些模式(正如我从可视化权重中看到的那样),但并不像我所期望的那样来自单层 AE。
所以我决定尝试现在连接到 1 个多层 AE 的预训练层是否可以比随机初始化的版本执行得更好。如您所见,这与深度神经网络中微调步骤的想法相同。
但在我的微调过程中,所有层的神经元似乎都迅速收敛到一个完全相同的模式,最终什么也没学到。
问题:训练完全无监督的多层重建神经网络的最佳配置是什么?首先分层,然后进行某种微调?为什么我的配置不起作用?
tensorflow - 如何使用 Tensorflow 从自动编码器中提取(绘制)隐藏单元/softmax(特征)
我是 ML 新手,我正在使用 tensorflow。
我想查看我的自动编码器的功能,但我不知道如何提取(查看)隐藏单元。
有人可以帮助我吗?
我制作了自己的数据集,但原始代码使用 MNIST: https ://jmetzen.github.io/2015-11-27/vae.html
我添加了一层隐藏单元以将其转换为 Stacked AE..(我不知道它是否被堆叠,但有效)
python - 将输入参数传递给 Theano 函数的正确方法是什么?
我正在使用安装了 Theano 库(更新版本)的 Python 2.7,我在定义 Theano 函数的输入参数方面遇到了问题。
代码是:
它取自这里:
http://deeplearning.net/tutorial/code/SdA.py
它给了我这个错误,Eclipse:
因此,如果我以这种方式更改代码:
它有效,但我无法传递 corruption_level 和 learning_rate 的值。
任何人都可以帮忙吗?谢谢!
卢卡
neural-network - 卷积自动编码器没有学习有意义的过滤器
我正在使用 TensorFlow 来了解卷积自动编码器。我已经实现了一个简单的单层自动编码器,它可以做到这一点:
输入(尺寸:95x95x1)---> 编码(使用 32 个 5x5 滤波器进行卷积)---> 潜在表示(尺寸:95x95x1x32)---> 解码(使用绑定权重)---> 重构输入(尺寸:95x95x1)
输入是黑白边缘图像,即对 RGB 图像进行边缘检测的结果。
我随机初始化过滤器,然后训练模型以最小化损失,其中损失定义为输入和重构输入的均方误差。
经过 1000 步训练后,我的损失收敛,网络能够很好地重建图像。但是,当我将学习到的过滤器可视化时,它们看起来与随机初始化的过滤器并没有太大区别!但是过滤器的值会随着训练步骤的不同而变化。
我本来期望至少水平和垂直边缘过滤器。或者,如果我的网络正在学习“身份过滤器”,我会期望过滤器都是白色的吗?
有人对此有任何想法吗?或者对我可以做些什么来分析正在发生的事情有什么建议吗?我应该在解码之前包括池化和去池化层吗?
谢谢!
P/S:我在 RGB 图像上尝试了相同的模型,过滤器再次看起来是随机的(就像随机的颜色斑点)。
autoencoder - 自动编码器中的编码和解码算法
我目前正在使用 R 开发自动编码器。我已经尝试使用 R 中的自动编码器包,但我无法解释结果。所以我正在尝试为自动编码器编写 R 代码。我的问题是如何在自动编码器中完成编码和解码。有什么公式或算法吗?任何人都可以帮我吗?