Попробуйте несколько предварительно обученных сетей для передачи обучения

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

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

В Deep Learning Toolbox™ доступно много предварительно обученных сетей. Эти предварительно обученные сети имеют различные характеристики, которые имеют значение при выборе сети, чтобы применить к вашей задаче. Наиболее важными характеристиками являются точность сети, скорость и размер. Выбор сети, как правило, является компромиссом между этими характеристиками. Для получения дополнительной информации см. «Предварительно обученные глубокие нейронные сети».

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

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

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

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

Perform transfer learning by replacing layers in a pretrained network.

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

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

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

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

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

  • Задает trainingOptions объект для эксперимента. Пример обучает сеть в течение 10 эпох, используя начальную скорость обучения 0,0003 и проверяя сеть каждые 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 закрывает все эксперименты и результаты, содержащиеся в проекте.

См. также

Приложения

Функции

Похожие темы