【问题标题】:Is there any sense to use autoencoder for network with batch normalization?将自动编码器用于具有批量标准化的网络是否有任何意义?
【发布时间】:2016-12-09 15:18:29
【问题描述】:

众所周知,DNN 的主要问题是学习时间过长。

但是有一些方法可以加速学习:

  1. 批量标准化 =(x-AVG)/Variance: https://arxiv.org/abs/1502.03167

Batch Normalization 实现了相同的准确度,但减少了 14 倍 训练步骤

  1. ReLU =max(x, 0) - 整流线性单元(ReLU,LReLU,PReLU,RReLU):https://arxiv.org/abs/1505.00853

使用非饱和激活函数的好处在于两个 方面:首先是解决所谓的“爆炸/消失” 坡度”。二是加快收敛速度​​

或者任意一个:(maxout, ReLU-family, tanh)

  1. 快速权重初始化(避免梯度消失或爆炸):https://arxiv.org/abs/1511.06856

我们的初始化与当前最先进的无监督匹配 或标准计算机视觉的自我监督预训练方法 图像分类和目标检测等任务,同时 大约快三个数量级

或 LSUV 初始化(层序单位方差):https://arxiv.org/abs/1511.06422

但如果我们使用所有步骤:(1) 批量归一化,(2) ReLU,(3) 快速权重初始化或 LSUV - 那么在训练深度神经网络的任何步骤中使用autoencoder/autoassociator 是否有意义?

【问题讨论】:

  • 你用自动编码器做什么?

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


【解决方案1】:

tl;博士

自动编码器可以看作是一种以智能方式初始化权重的替代方法。因此,您使用自动编码器而不是您描述的“快速”权重初始化算法。

更详细的解释

自动编码器和 RBM 经常用于预训练深度神经网络。由于非常高维的参数空间,早期的深度神经网络几乎无法训练。一个简单的随机梯度下降算法只能非常缓慢地收敛,并且通常会陷入糟糕的局部最优。这个问题的一个解决方案是使用 RBMs (G. Hinton et al.) 或 Autoencoders (Y. Bengio et al.) 在无监督的情况下预训练网络时尚。

这有两大优势:

  1. 您不需要大量带标签的训练数据。通常,有很多未标记的数据可用(想想:互联网上的图像),但标记它们是一项非常昂贵的任务。
  2. 您可以贪婪地逐层训练它们。这意味着,您训练第一个(1 层)自动编码器。一旦实现了良好的重建,您就可以在其上堆叠另一个自动编码器。您在不接触第一个自动编码器的情况下训练第二个自动编码器。这有助于保持较少的参数数量,从而使训练更简单、更快。

在训练 RBM 或自动编码器后,您将在预训练网络的顶部放置一个输出层,并通过反向传播以监督方式训练整个网络。此步骤也称为微调。由于除了输出层之外的所有层都已经过预训练,因此权重不必更改太多,您会很快找到解决方案。

最后,回答你的问题

使用自动编码器有意义吗?如果您有大量标记的训练数据,为什么还要费心呢?尽可能智能地初始化权重,然后让 GPU 运行几周。

但是,如果标记的训练数据稀缺,请收集大量未标记的数据并训练自动编码器。这样,您就可以确保使用您拥有的少数标记示例实现快速收敛和良好的解决方案。

【讨论】:

  • 谢谢!通过对大量未标记数据使用 RBM 或自动编码器进行预训练的网络允许比任何权重初始化更快的微调。 IE。如果我只想训练一次网络,那么快速方法是“快速权重初始化”,但是如果我想多次训练网络,那么更快的方法是只使用 RBM/自动编码器进行一次预训练模型,并且每次训练都使用这个预训练模型进行微调。
  • 嗯,这也是真的。我最想说的是,即使只想训练网络一次,如果你没有很多可用的标记数据(可能是因为测量困难或昂贵),你可以使用自动编码器来改进收敛
  • 如果我正确理解了你的答案/观点,如果我们有足够的标记数据和 GPU 资源,那么使用 BatchNorm 优于自动编码器?
  • 您没有回答关于批量标准化的主要问题。
猜你喜欢
  • 1970-01-01
  • 2023-04-09
  • 2019-11-13
  • 2011-06-05
  • 1970-01-01
  • 2010-09-17
  • 2012-08-29
  • 1970-01-01
相关资源
最近更新 更多