2016-04-27 203 views
2

假设我希望使用堆叠自动编码器作为预训练步骤。如何使用堆叠自动编码器进行预训练

假设我的全自动编码器是40-30-10-30-40。

我的步骤是:

  1. 列车一个使用原来的40点特征的数据在两个输入和输出层设置40-30-40。
  2. 使用仅上述40-30编码器的训练过的编码器部分,导出原始40个特征的新的30特征表示。
  3. 在输入层和输出层中使用新的30特征数据集(在步骤2中导出)训练30-10-30。
  4. 从步骤1,40-30中取出经过训练的编码器,并将其从步骤3,30-10送入编码器,得到40-30-10编码器。
  5. 从步骤4取出40-30-10编码器并将其用作NN的输入。

a)是否正确?

b)在训练神经网络时,是否冻结40-30-10编码器中的权重,这与从原始的40特征数据集中预生成10特征表示以及训练新的10特征表示数据组。

PS。我已经有一个问题,问我是否需要配合编码器和解码器的权重

+1

用autoencoders进行预训练,逐层训练和使用重量搭配都是过时的技术。你基本上是在浪费你的时间。只需立即训练整个网络或整个自动编码器。 – aleju

+0

是的 - ReLU和辍学应该是足够的 –

+0

谢谢你们两个。当你说“只是训练整个网络或整个自动编码器”时,“整个网络”你的意思是训练40-30-10-NN和“整个自动编码器”你的意思是40-30-10-30 -40? –

回答

2

a)是正确的吗?

这是一种典型的方法。您也可以尝试直接安装autoencoder,因为具有多个图层的“原始”autoencoder应该可以立即安装,作为替代方案,您可以考虑使用堆叠降噪自动编码器,这可能会从“堆叠”培训中受益更多。

b)中我是否冻结的权重的40-30-10编码器训练NN时这将是与从原来的40特征数据集和训练的新10特征预生成的10个特征表示表示数据集。

当你训练整个NN时,你不会冻结任何东西。预训练只是优化过程的一种预处理方式 - 您将自己的方法展示在哪里开始,但您不想限制实际监督式学习的拟合程序。

PS。我已经有一个问题,问我是否需要配合编码器和解码器的权重

不,你不必配重,特别是你实际上丢掉了你的解码器。为了使可能的最小化过程成为可能(比如在RBM中),对一些更多的概率模型加权是很重要的,但对于自动编码器来说没有意义。

+0

谢谢你的回答。它帮助我更好地理解。 –

相关问题