在方案1中,我有一个多层稀疏自动编码器,它试图重现我的输入,所以我的所有层都与随机启动的权重一起训练。没有监督层,在我的数据上,这没有学到任何相关信息(代码工作正常,经过验证,因为我已经在许多其他深度神经网络问题中使用过它)
在场景2中,我只是在一个贪婪的分层训练中训练多个自动编码器,类似于深度学习(但最后没有监督步骤),每个层在前一个隐藏层的输出上自编码。他们现在将分别学习一些模式(正如我从可视化权重中看到的那样),但不是很棒,因为我期望它来自单层AE。
所以我决定尝试现在连接到1个多层AE的预训练层可以比随机初始化版本更好。如您所见,这与深度神经网络中微调步骤的想法相同。
但是在我的微调过程中,所有层的神经元似乎都快速地朝着一个完全相同的模式收敛而不是改进,而不是改进。
问题:训练完全无监督的多层重建神经网络的最佳配置是什么?先分层然后进行某种微调?为什么我的配置不起作用?
答案 0 :(得分:4)
经过一些测试后,我想出了一种似乎能给出非常好结果的方法,正如你所期望的那样,它可以提高所有层的性能:
就像通常一样,在贪婪的分层学习阶段,每个新的自动编码器都会尝试重建前一个自动编码器隐藏层的激活。但是,最后一个自动编码器(在微调期间将是我们的多层自动编码器的最后一层)是不同的,这个将使用前一层的激活并尝试重建“全局”输入(即原始输入)被送到第一层的。)
这种方式当我连接所有层并将它们训练在一起时,多层自动编码器将真正重建最终输出中的原始图像。即使没有监督步骤,我发现所学习的功能也有了很大的改进。
我不知道这是否应该以某种方式与标准实现相对应,但我之前没有找到过这个技巧。