@hbaderts отлично описал весь рабочий процесс. Тем не менее, это может не иметь никакого смысла, если вы совершенно новичок в этой идее. Поэтому я собираюсь объяснить это в манере неспециалиста (поэтому я опущу детали):
Думайте о глубоких сетях как о функции для преобразования ваших данных. Примерами преобразований являются нормализация, сбор данных и т. Д. Глубокие сети, которые вы обучаете, имеют несколько уровней. Каждый из этих уровней обучается с использованием своего рода алгоритма обучения. Для первого слоя вы передаете исходные данные в качестве входных данных и пытаетесь получить функцию, которая вернет вам те же «исходные данные», что и выходные данные. Тем не менее, вы не получите идеальный результат. Следовательно, вы получаете преобразованную версию ваших входных данных в качестве выходных данных первого слоя.
Теперь для второго уровня вы берете эти «преобразованные данные» и передаете их в качестве входных данных и повторяете весь процесс обучения. Вы продолжаете делать это для всех слоев вашей глубокой сети.
На последнем слое вы получаете «преобразованную версию» ваших исходных входных данных. Это можно подумать о более высоком уровне абстракции ваших исходных входных данных. Обратите внимание, что вы еще не использовали метки / выходные данные в вашей глубокой сети. Следовательно, все до этого момента - обучение без присмотра. Это называется послойной предварительной подготовкой.
Теперь вы хотите обучить модель классификатора / регрессии, и это проблема обучения под наблюдением. Для достижения этой цели вы берете «окончательно преобразованную версию» вашего исходного ввода с последнего слоя в вашей глубокой сети и используете их в качестве входных данных для любого классификатора (например, классификатор knn / классификатор softmax / логистическая регрессия и т. Д.). Это называется укладкой.
Обучая этого классификатора / ученика последнего шага, вы распространяете все свои знания по всей сети. Это гарантирует, что вы сможете учиться по меткам / выводам и соответствующим образом изменять полученные параметры слоя.
Итак, как только вы обучите свою генеративную модель, возьмите выходные данные своей генеративной модели и используйте ее в качестве входных данных для классификатора / ученика. По мере продолжения обучения позвольте ошибке проходить через всю сеть, чтобы вы могли изменить послойный параметр, полученный на предыдущих этапах.