在场景1中,我有一个多层稀疏的自动编码器,试图复制我的输入,所以我的所有层都与随机启动的权重一起训练。在没有监督层的情况下,在我的数据中,这没有学习到任何相关信息(代码工作正常,因为我已经在许多其他深层神经网络问题中使用过它)
在场景2中,我只是在一个贪婪的分层训练中训练多个自动编码器,类似于深度学习(但最终没有监督步骤),每一层都在先前的自动编码器的隐藏层的输出上。他们现在将分别学习一些模式(正如我从可视化权重中看到的),但并不像我所期望的从单层as中学到。
所以我决定尝试一下,如果现在连接到一个多层AE的预先训练的层比随机初始化版本的性能更好的话。正如你所看到的,这和深度神经网络中的微调步骤的想法是一样的。
但是在我的微调过程中,所有层次的神经元似乎都在快速地汇聚到一个完全相同的模式上,最终什么也学不到。
问:培训完全无监督的多层重构神经网络的最佳配置是什么?首先是分层,然后是某种微调?为什么我的配置不工作?
发布于 2016-01-29 13:41:52
经过一些测试后,我想出了一个看起来非常好的方法,正如您所期望的那样,微调可以提高所有层的性能:
就像通常情况下,在贪婪的分层学习阶段,每个新的自动编码器试图重建前一个自动编码器隐藏层的激活。然而,最后一个自动编码器(这将是我们的多层自动编码器在微调期间的最后一层)是不同的,这一层将使用上一层的激活,并试图重建“全局”输入(即最初输入到第一层)。
这样,当我把所有的层连接起来并训练它们在一起时,多层自动编码器将真正地在最终输出中重建原始图像。我发现在学到的特性方面有了很大的改进,即使没有监督的步骤。
我不知道这是否与标准实现相对应,但我以前从未发现过这个技巧。
https://stackoverflow.com/questions/35085998
复制相似问题