При обучении на наборе примеров[en]спонтанным образом ГСД может обучаться вероятностно отстраивать свои входы. Слои в этом случае выступают в роли детекторов признаков входов[1]. По окончании обучения ГСД может быть обучена с учителем для осуществления классификации[2].
ГСД можно рассматривать как композицию простых, спонтанных сетей, таких как ограниченные машины Больцмана (ОМБ)[1] или автокодировщики[3], в которой скрытый слой каждой подсети служит видимым слоем для следующей. Это позволяет осуществить быструю послойную процедуру обучения без учителя, в которой относительное расхождение применяется к каждой подсети по очереди, начиная с первой пары слоев (на видимый слой которой подается тренировочный набор примеров[en]).
Алгоритм тренировки ГСД работает следующим образом[2]. Пусть <math>X</math> будет матрицей входов, что рассматривается как набор признаков.
Представить два нижних слоя (входной и первый скрытый) как ограниченную машину Больцмана (ОМБ). Обучить её на входных данных <math>X</math> и получить матрицу её весовых коэффициентов <math>W</math>, которая будет описывать связи между двумя нижними слоями сети.
Пропустить через обученную машину Больцмана входные данные <math>X</math> и получить данные скрытого слоя <math>X'</math> на выходе после активации узлов первого скрытого слоя.
Повторять эту процедуру с <math>X \leftarrow X'</math> для каждой следующей пары слоёв, пока не будут обучены два самых верхних слоя сети.
Осуществить тонкую настройку всех параметров этой глубокой сети с сохранением логарифмического правдоподобия ГСД или с использованием обучения с учителем (после добавления дополнительных механизмов обучения для выполнения обученной сетью работы, например, линейно-сепарабельного классификатора).