В этом примере показов, как обучить нейронную сеть для глубокого обучения для классификации с помощью Диспетчера экспериментов. В этом примере вы обучаете две сети для классификации изображений товаров MathWorks в пять классов. Каждая сеть обучается с помощью трех алгоритмов. В каждом случае матрица неточностей сравнивает истинные классы для набора изображений валидации с классами, предсказанными обученной сетью. Для получения дополнительной информации о обучении сети классификации изображений смотрите Обучите нейронную сеть для глубокого обучения для классификации новых изображений.
Сначала откройте пример. Experiment Manager загружает проект с помощью предварительно сконфигурированного эксперимента, который можно просмотреть и запустить. Чтобы открыть эксперимент, в панели Experiment Browser дважды кликните имя эксперимента (ClassificationExperiment
).
Встроенные обучающие эксперименты состоят из описания, таблицы гиперпараметров, функции настройки и набора метрических функций для оценки результатов эксперимента. Для получения дополнительной информации см. раздел «Настройка встроенного обучающего эксперимента».
Поле Description содержит текстовое описание эксперимента. В данном примере описанием является:
Merchandise image classification using: - an untrained network (default) or a pretrained network (googlenet) - various solvers for training networks (sgdm, rmsprop, or adam)
Раздел «Гиперпараметров» задает стратегию (Exhaustive Sweep
) и значения гиперзначений параметров для использования в эксперименте. Когда вы запускаете эксперимент, Experiment Manager обучает сеть с помощью каждой комбинации значений гиперзначений параметров, заданных в таблице гиперпараметра. Этот пример использует два гиперпараметра:
Network
задает обучаемую сеть. Опции включают "default"
(сеть по умолчанию, предоставляемая шаблоном эксперимента для классификации изображений) и "googlenet"
(предварительно обученная сеть GoogLeNet с измененными слоями для передачи обучения).
Solver
указывает алгоритм, используемый для обучения сети. Опции включают "sgdm"
(стохастический градиентный спуск с импульсом), "rmsprop"
(среднее значение корня квадратное распространение), и "adam"
(оценка адаптивного момента). Для получения дополнительной информации об этих алгоритмах см. Stochastic Gradient Descent.
Функция Setup настраивает обучающие данные, сетевую архитектуру и опции обучения для эксперимента. Чтобы просмотреть функцию настройки, в разделе Setup Function, нажмите Edit. Функция настройки откроется в MATLAB ® Editor.
Вход функции настройки представляет собой структуру с полями из таблицы гиперпараметров. Функция настройки возвращает три выхода, которые вы используете для обучения сети для задач классификации изображений. Функция настройки состоит из трех разделов.
Load Training Data задает хранилища изображений, содержащие данные обучения и валидации. Этот пример загружает изображения из файла MerchData.zip
. Этот небольшой набор данных содержит 75 изображений товаров MathWorks, принадлежащих пяти различным классам. Изображения имеют размер 227 227 3. Дополнительные сведения об этом наборе данных см. в разделе Наборы данных изображений.
Define Network Architecture определяет архитектуру сверточной нейронной сети для классификации глубокого обучения. В этом примере выбор сети для обучения зависит от значения гиперпараметра Network
.
Задайте опции обучения задает
объект для эксперимента. Пример обучает сеть в течение 8 эпох, используя алгоритм, заданный trainingOptions
Solver
запись в таблице гиперпараметров.
Раздел 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.
Чтобы записать наблюдения о результатах эксперимента, добавьте аннотацию.
В таблице результатов щелкните правой кнопкой мыши камеру Validation Accuracy лучшего пробного варианта.
Выберите «Добавить аннотацию».
На панели аннотации введите свои наблюдения в текстовое поле.
Для получения дополнительной информации см. Раздел «Сортировка, фильтрация и аннотация результатов эксперимента».
На панели браузера экспериментов щелкните правой кнопкой мыши имя проекта и выберите «Закрыть проект». Experiment Manager закрывает все эксперименты и результаты, содержащиеся в проекте.