3

在场景 1 中,我有一个多层稀疏自动编码器,它试图重现我的输入,因此我的所有层都与随机启动的权重一起训练。没有监督层,在我的数据上,这并没有学习任何相关信息(代码工作正常,经过验证,因为我已经在许多其他深度神经网络问题中使用过它)

在场景 2 中,我只是在类似于深度学习的贪婪逐层训练中训练多个自动编码器(但最终没有监督步骤),每一层都在前一个自动编码器的隐藏层的输出上。他们现在将分别学习一些模式(正如我从可视化权重中看到的那样),但并不像我所期望的那样来自单层 AE。

所以我决定尝试现在连接到 1 个多层 AE 的预训练层是否可以比随机初始化的版本执行得更好。如您所见,这与深度神经网络中微调步骤的想法相同。

但在我的微调过程中,所有层的神经元似乎都迅速收敛到一个完全相同的模式,最终什么也没学到。

问题:训练完全无监督的多层重建神经网络的最佳配置是什么?首先分层,然后进行某种微调?为什么我的配置不起作用?

4

1 回答 1

5

经过一些测试后,我想出了一种似乎可以提供非常好的结果的方法,并且正如您对“微调”所期望的那样,它可以提高所有层的性能:

就像往常一样,在贪婪的逐层学习阶段,每个新的自动编码器都试图重建前一个自动编码器隐藏层的激活。然而,最后一个自动编码器(在微调期间将是我们多层自动编码器的最后一层)不同,这一层将使用前一层的激活并尝试重建“全局”输入(即原始输入)被送入第一层)。

这样,当我连接所有层并将它们一起训练时,多层自动编码器将真正重建最终输出中的原始图像。我发现即使没有监督步骤,学习的特征也有了很大的改进。

我不知道这是否应该以某种方式与标准实现相对应,但我之前在任何地方都没有发现这个技巧。

于 2016-01-29T13:41:52.317 回答