Что такое предварительное обучение нейронной сети?

22

Ну, вопрос говорит сам за себя.

Что подразумевается под «предварительным обучением нейронной сети»? Может кто-нибудь объяснить на чистом простом английском?
Я не могу найти какие-либо ресурсы, связанные с этим. Было бы здорово, если бы кто-то указал мне на них.

Machina333
источник
www.deeplearningbook.org имеет хорошее введение в тему.
Мнагарадж

Ответы:

22

Обычный способ обучения сети:

Вы хотите обучить нейронную сеть для выполнения задачи (например, классификации) в наборе данных (например, в наборе изображений). Вы начинаете тренировку, инициализируя веса случайным образом. Как только вы начинаете тренировку, веса меняются, чтобы выполнить задачу с меньшим количеством ошибок (т. Е. Оптимизация). Как только вы будете удовлетворены результатами обучения, вы сохраните вес вашей сети где-нибудь.

Теперь вы заинтересованы в обучении сети выполнению новой задачи (например, обнаружение объекта) в другом наборе данных (например, изображения, но не такие, как те, которые вы использовали ранее). Вместо того, чтобы повторять то, что вы сделали для первой сети и начать с тренировки со случайно инициализированными весами, вы можете использовать веса, которые вы сохранили из предыдущей сети, в качестве начальных значений веса для вашего нового эксперимента. Инициализация весов таким способом называется использованием предварительно обученной сети. Первая сеть - это ваша предварительно обученная сеть. Второй - это сеть, которую вы настраиваете.

Идея предварительной подготовки заключается в том, что случайная инициализация ... ну ... случайная, значения весов не имеют ничего общего с задачей, которую вы пытаетесь решить. Почему набор значений должен быть лучше, чем другой набор? Но как еще вы инициализируете вес? Если вы знали, как правильно инициализировать их для задачи, вы могли бы также установить для них оптимальные значения (слегка преувеличены). Не нужно ничего тренировать. У вас есть оптимальное решение вашей проблемы. Предварительное обучение дает сети старт. Как будто он видел данные раньше.

На что следует обратить внимание при предварительной подготовке:

Первая задача, используемая при предварительном обучении сети, может быть такой же, как стадия тонкой настройки. Наборы данных, используемые для предварительной подготовки и точной настройки, также могут быть одинаковыми, но также могут отличаться. Действительно интересно посмотреть, как предварительное обучение для другой задачи и другого набора данных все еще может быть перенесено в новый набор данных и новую задачу, которые немного отличаются. Использование предварительно обученной сети обычно имеет смысл, если обе задачи или оба набора данных имеют что-то общее. Чем больше разрыв, тем менее эффективной будет предварительная подготовка. Нет смысла предварительно обучать сеть классификации изображений, сначала обучая ее финансовым данным. В этом случае слишком много разрыва между этапами предварительной подготовки и настройки.

уРх
источник
10

Предварительная подготовка / доводка работает следующим образом:

  1. м
  2. Aм
  3. ВмA
  4. мВ

AВ

Мартин Тома
источник
Примечание: люди могут использовать термин «точная настройка», только если вы (не) замораживаете веса. Я не уверен, что этот термин используется последовательно
Мартин Тома,
4

Два ответа выше объясняют хорошо. Просто хочу добавить одну тонкую вещь, касающуюся подготовки к Deep Belief Nets (DBN). Предварительное обучение для DBN является обучением без надзора (т.е. без помеченных данных), а последующим обучением является обучение под наблюдением (т.е. без помеченных данных).

Lamothy
источник