Экспериментируйте с инициализаторами веса для передачи обучения

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

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

Открытый эксперимент

Сначала откройте пример. Experiment Manager загружает проект с помощью предварительно сконфигурированного эксперимента, который можно просмотреть и запустить. Чтобы открыть эксперимент, в панели Experiment Browser дважды кликните имя эксперимента (WeightInitializerExperiment).

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

Поле Description содержит текстовое описание эксперимента. В данном примере описанием является:

Perform transfer learning by initializing the weights of convolution and
fully connected layers in a pretrained network.

Раздел «Гиперпараметров» задает стратегию (Exhaustive Sweep) и значения гиперзначений параметров для использования в эксперименте. Когда вы запускаете эксперимент, Experiment Manager обучает сеть с помощью каждой комбинации значений гиперзначений параметров, заданных в таблице гиперпараметра. Этот пример использует гиперпараметры WeightsInitializer и BiasInitializer чтобы задать инициализаторы веса и смещения для свертки и полносвязных слоев в предварительно обученной сети. Для получения дополнительной информации об этих инициализаторах смотрите WeightsInitializer и BiasInitializer.

Функция Setup настраивает обучающие данные, сетевую архитектуру и опции обучения для эксперимента. Чтобы просмотреть функцию настройки, в разделе Setup Function, нажмите Edit. Функция настройки откроется в MATLAB ® Editor.

В этом примере функция настройки:

  • Загружает и извлекает набор данных Flowers, который составляет около 218 МБ. Дополнительные сведения об этом наборе данных см. в разделе Наборы данных изображений.

  • Загружает предварительно обученную сеть GoogLeNet и инициализирует входной вес в свертках и полносвязных слоях с помощью инициализаторов, заданных в таблице гиперпараметров. Вспомогательная функция findLayersToReplace определяет, какие слои сетевой архитектуры могут быть изменены для передачи обучения.

  • Задает trainingOptions объект для эксперимента. Пример обучает сеть в течение 10 эпох, используя мини-пакет размером 128 и проверяя сеть каждые 5 эпох.

Раздел Metrics задает дополнительные функции, которые оценивают результаты эксперимента. Этот пример не включает какие-либо пользовательские метрические функции.

Запуск эксперимента

Когда вы запускаете эксперимент, Experiment Manager обучает сеть, заданную функцией настройки, несколько раз. В каждом испытании используется разная комбинация значений гиперзначений параметров. По умолчанию Experiment Manager запускает по одной пробной версии за раз. Если у вас есть Parallel Computing Toolbox™, можно запустить несколько испытаний одновременно. Для достижения наилучших результатов, прежде чем вы запустите свой эксперимент, запустите параллельный пул с таким количеством работников, как графические процессоры. Для получения дополнительной информации смотрите Использование Experiment Manager для обучения сетей в параллельных и графический процессор поддержке по Релизу (Parallel Computing Toolbox).

  • Чтобы запустить по одной пробной версии эксперимента за раз, на панели инструментов Experiment Manager нажмите кнопку Запустить.

  • Чтобы запустить несколько испытаний одновременно, щелкните Использовать Параллель (Use Parallel) и затем Запуск. Если текущий параллельный пул отсутствует, Experiment Manager запускает его с помощью профиля кластера по умолчанию. Затем Experiment Manager выполняет несколько одновременных испытаний, в зависимости от количества доступных параллельных работников.

Таблица результатов отображает точность и потери для каждого пробного периода.

Во время выполнения эксперимента нажмите Training Plot, чтобы отобразить график обучения и отследить прогресс в каждом испытании.

Нажмите Confusion Matrix, чтобы отобразить матрицу неточностей для данных валидации в каждой завершенной пробной версии.

Когда эксперимент заканчивается, можно отсортировать таблицу результатов по столбцам, фильтровать пробные версии с помощью панели Фильтры (Filters) или записывать наблюдения путем добавления аннотаций. Для получения дополнительной информации см. Раздел «Сортировка, фильтрация и аннотация результатов эксперимента».

Чтобы проверить эффективность отдельного теста, экспортируйте обученную сеть или обучающую информацию для теста. На панели инструментов Experiment Manager выберите Экспорт > Обученная сеть или Экспорт > Информация о обучении, соответственно. Для получения дополнительной информации см. net и info.

Закройте эксперимент

На панели браузера экспериментов щелкните правой кнопкой мыши имя проекта и выберите «Закрыть проект». Experiment Manager закрывает все эксперименты и результаты, содержащиеся в проекте.

См. также

Приложения

Функции

Похожие темы