首页 文章

如何使用堆叠自动编码器进行预训练

提问于
浏览
2

假设我希望使用堆叠自动编码器作为预训练步骤 .

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

我的步骤是:

  • 使用输入和输出层中的原始40个特征数据集训练40-30-40 .

  • 仅使用上述40-30编码器的训练编码器部分,导出原始40个特征的新30特征表示 .

  • 使用输入和输出层中的新30特征数据集(在步骤2中导出)训练30-10-30 .

  • 从步骤1,40-30中取出训练好的编码器,然后从步骤3,30-10将其送入编码器,得到40-30-10编码器 .

  • 从步骤4中取出40-30-10编码器,并将其用作NN的输入 .

a)这是正确的吗?

b)训练NN时是否冻结40-30-10编码器中的权重,这与从原始40特征数据集预生成10特征表示和在新的10特征表示数据集上训练相同 .

PS . 我已经有一个问题,询问我是否需要绑定编码器和解码器的权重

1 回答

  • 2

    a)这是正确的吗?

    这是典型的方法之一 . 您也可以尝试直接安装自动编码器,因为“原始”自动编码器应该可以立即安装许多层 . 作为替代方案,您可以考虑安装堆叠去噪自动编码器,这可能会从“堆叠”训练中获益更多 .

    b)训练NN时是否冻结40-30-10编码器中的权重,这与从原始40特征数据集预生成10特征表示和在新的10特征表示数据集上训练相同 .

    当你训练整个NN时,你不会冻结任何东西 . 预训练只是优化过程的一种预处理 - 您可以显示您的方法从哪里开始,但您不希望限制实际监督学习的拟合程序 .

    PS . 我已经有一个问题,询问我是否需要绑定编码器和解码器的权重

    不,你不必绑重,特别是你实际上扔掉你的解码器 . 为了使最小化过程成为可能(如在RBM的情况下),对于一些更概率的模型来说,对权重进行处理是很重要的,但对于自动编码器而言,没有任何意义 .

相关问题