调试神经网络通常涉及调整超参数、可视化学习的过滤器和绘制重要指标。你能分享一下你一直在使用的超参数吗?
- 你的批量是多少?
- 你的学习率是多少?
- 您使用的是什么类型的自动编码器?
- 您是否尝试过使用降噪自动编码器?(您尝试过哪些腐败值?)
- 有多少隐藏层,大小是多少?
- 输入图像的尺寸是多少?
分析训练日志也很有用。将重建损失(Y 轴)绘制为时期(X 轴)的函数。您的重建损失是收敛还是发散?
这是一个用于人类性别分类的自动编码器的示例,该自动编码器正在发散,在 1500 个 epoch 后停止,调整了超参数(在本例中是学习率的降低),并以发散并最终收敛的相同权重重新启动。

这是一个正在收敛的:(我们想要这个)

Vanilla“不受约束”可能会遇到一个问题,他们只需学习恒等映射。这就是社区创建去噪、稀疏和收缩风格的原因之一。
你能在这里发布一小部分数据吗?我非常愿意向您展示我的一个自动编码器的结果。
附带说明:您可能想问自己为什么要首先使用图形图像,而这些图形可以很容易地表示为数据向量。IE,
[0, 13, 15, 11, 2, 9, 6, 5]
如果您能够像上面那样重新设计问题,那么您实际上使您的自动编码器的生活变得更轻松。在尝试学习生成分布之前,它不需要先学习如何查看图像。
跟进答案(给定数据。)
这是来自 1000 个隐藏单元、单层去噪自动编码器的过滤器。请注意,某些过滤器似乎是随机的。那是因为我太早就停止了训练,网络没有时间学习那些过滤器。

以下是我训练它的超参数:
batch_size = 4
epochs = 100
pretrain_learning_rate = 0.01
finetune_learning_rate = 0.01
corruption_level = 0.2
我在第 58 个 epoch 后停止了预训练,因为过滤器足够好,可以在这里发布。如果我是你,我会先训练一个具有 1000x1000x1000 架构的完整 3 层堆叠去噪自动编码器。
以下是微调步骤的结果:
validation error 24.15 percent
test error 24.15 percent
因此,乍一看,这似乎比偶然性要好,但是,当我们查看两个标签之间的数据细分时,我们发现它具有完全相同的百分比(75.85% 盈利和 24.15% 不盈利)。这意味着网络已经学会了简单地响应“有利可图”,而不管信号如何。我可能会用更大的网络训练这个更长的时间,看看会发生什么。此外,看起来这些数据是从某种基础金融数据集生成的。我建议您在将问题重新转换为上述向量后研究递归神经网络。RNN 可以帮助捕获在此类时间序列数据中发现的一些时间依赖性。希望这可以帮助。