调试神经网络通常涉及调整超参数,可视化学习到的过滤器以及绘制重要指标。您能否分享您一直在使用的超参数?
- 您的批量大小是多少?
- 您的学习率是多少?
- 您正在使用哪种类型的自动编码器?
- 您是否尝试过使用降噪自动编码器?(您尝试过哪些腐败值?)
- 多少个隐藏层和什么大小?
- 输入图像的尺寸是多少?
分析训练日志也很有用。绘制您的重建损失(Y轴)与历时(X轴)的函数关系图。您的重建损失是收敛的还是发散的?
这是一个用于人类性别分类的自动编码器的示例,该编码器存在差异,在1500个周期后停止,已调整超参数(在这种情况下,学习率降低了),然后以相同的权重重新开始并最终收敛。
这是一个正在融合的:(我们想要这个)
香草“不受约束”可能会遇到一个问题,即他们只是学习身份映射。这就是社区创建降噪,稀疏和收缩风味的原因之一。
您可以在此处发布一小部分数据吗?我非常愿意向您展示我的一种自动编码器的结果。
附带说明:您可能想问自己,为什么首先使用图形图像,而这些图形很容易表示为数据向量。即
[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个纪元后,我停止了预训练,因为过滤条件足够好,可以在此处发布。如果您是我,我将训练具有1000x1000x1000架构的完整3层堆叠降噪自动编码器。
这是微调步骤的结果:
validation error 24.15 percent
test error 24.15 percent
因此,乍一看,这似乎比偶然性要好,但是,当我们查看两个标签之间的数据细分时,我们看到它具有完全相同的百分比(可盈利的75.85%和不可盈利的24.15%)。因此,这意味着网络已经学会了简单地响应“有利可图”,而不管信号如何。我可能会用更大的网络训练更长的时间,看看会发生什么。同样,该数据看起来是从某种基础金融数据集中生成的。我建议您在将问题重新构建为向量后,再研究递归神经网络。RNN可以帮助捕获像这样的时间序列数据中发现的一些时间相关性。希望这可以帮助。