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