@hbaderts 完美地描述了整个工作流程。但是,如果您对这个想法完全陌生,它可能没有任何意义。因此,我将用外行的方式来解释它(因此,我将省略细节):
将深度网络视为转换数据的功能。转换的示例包括标准化、记录数据等。您正在训练的深度网络具有多个层。这些层中的每一层都使用某种学习算法进行训练。对于第一层,您将原始数据作为输入传递并尝试获取一个函数,该函数将返回那些“相同的原始数据”作为输出。但是,您没有得到完美的输出。因此,您将获得输入的转换版本作为第一层的输出。
现在,对于第二层,您将那些“转换后的数据”作为输入传递并重复整个学习过程。你一直在为你的深层网络中的所有层这样做。
在最后一层,您得到的是原始输入数据的“转换版本”。这可以被认为是原始输入数据的更高层次的抽象。请注意,您尚未在深度网络中使用标签/输出。因此,到目前为止,一切都是无监督学习。这称为逐层预训练。
现在,您想训练一个分类器/回归模型,这是一个监督学习问题。实现该目标的方法是从深层网络的最后一层获取原始输入的“最终转换版本”,并将它们用作任何分类器的输入(例如 knn 分类器/softmax 分类器/逻辑回归等)。这称为堆叠。
当你训练这个最后一步的分类器/学习器时,你在整个网络中传播你所有的学习。这确保您能够从标签/输出中学习并相应地修改学习的逐层参数。
因此,一旦您训练了生成模型,就可以获取生成模型的输出并将其用作分类器/学习器的输入。随着学习的继续,让错误流经整个网络,以便您可以修改在前面步骤中学习的逐层参数。