Сложенные автоэнкодеры и многослойные нейронные сети различны. На практике у вас будет две общие весовые доли сетей и, возможно, общие буферы памяти. Таким образом, в вашей реализации две сети переплетаются.
Как правило, автоэнкодеры обучаются неконтролируемым, жадным, послойным способом. (Нет меток, начните обучение только с первого слоя сети, а затем добавляйте новые слои по мере продвижения.) Веса можно узнать, используя различные методы, начиная от «пакетного» градиентного спуска (пожалуйста, не делайте этого), к мини-пакетному стохастическому градиентному спуску (SGD), к квазиньютоновским методам, таким как L-BFGS.
Идея состоит в том, что веса, полученные неконтролируемым образом, чтобы минимизировать ошибку восстановления для задачи обучения представлению, являются хорошей отправной точкой для инициализации сети для контролируемой задачи различения, такой как классификация или подобие. Т.е. сеть узнает что-то о базовом распределении, просматривая немеченые данные, что позволяет им различать помеченные данные. Тем не менее, веса все еще должны быть "отрегулированы" для этой новой задачи. Поэтому добавьте слой логистической регрессии в верхней части сети, а затем выполните контролируемое обучение с помеченным набором данных. Шаг точной настройки сделает градиентный спуск и отрегулирует веса для всех слоев в сети одновременно.
Преимущества этого способа обучения нейронных сетей:
- Обучение без контроля позволяет показать сети больше данных, потому что гораздо проще получить большие наборы данных без контроля, чем помеченные.
- Вы можете использовать предварительно обученную сеть в качестве «отправной точки» для обучения новых классификаторов, чтобы вам не приходилось каждый раз начинать с нуля.
Для работы, см. Сложенные шумоподавляющие автоэнкодеры: Изучение полезных представлений в глубокой сети с локальным критерием шумоподавления .