【问题标题】:How to train and fine-tune fully unsupervised deep neural networks?如何训练和微调完全无监督的深度神经网络?
【发布时间】:2016-01-29 13:41:52
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: machine-learning neural-network deep-learning unsupervised-learning autoencoder


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 2015-11-12
      • 2014-09-05
      • 1970-01-01
      • 2017-10-12
      • 2018-06-11
      • 2016-12-09
      • 1970-01-01
      • 2018-08-04
      相关资源
      最近更新 更多