В этом примере показано, как обучить нейронную сеть для глубокого обучения классификации при помощи Experiment Manager. В этом примере вы обучаете две сети, чтобы классифицировать изображения товаров MathWorks в пять классов. Каждая сеть обучена с помощью трех алгоритмов. В каждом случае матрица беспорядка сравнивает истинные классы для набора изображений валидации с классами, предсказанными обучившим сеть. Для получения дополнительной информации об обучении сети для классификации изображений смотрите, Обучают Нейронную сеть для глубокого обучения Классифицировать Новые Изображения.
Во-первых, откройте пример. Experiment Manager загружает проект с предварительно сконфигурированным экспериментом, который можно смотреть и запустить. Чтобы открыть эксперимент, в панели Браузера Эксперимента, дважды кликают имя эксперимента (ClassificationExperiment
).
Определение эксперимента состоит из описания, таблицы гиперпараметров, функции настройки, и (опционально) набора метрических функций, чтобы оценить результаты эксперимента. Для получения дополнительной информации смотрите, Конфигурируют Эксперимент Глубокого обучения.
Поле Description содержит текстовое описание эксперимента. В данном примере описание:
Merchandise image classification using: - an untrained network (default) or a pretrained network (googlenet) - various solvers for training networks (sgdm, rmsprop, or adam)
Раздел Hyperparameters задает стратегию (Exhaustive Sweep
) и гиперзначения параметров, чтобы использовать для эксперимента. Когда вы запускаете эксперимент, Experiment Manager обучает сеть с помощью каждой комбинации гиперзначений параметров, заданных в гипертаблице параметров. Этот пример использует два гиперпараметра:
Network
задает сеть, чтобы обучаться. Опции включают "default"
(сеть классификации по умолчанию, обеспеченная шаблоном функции настройки) и "googlenet"
(предварительно обученная сеть GoogLeNet с модифицированными слоями для передачи обучения).
Solver
указывает, что алгоритм раньше обучал сеть. Опции включают "sgdm"
(стохастический градиентный спуск с импульсом), "rmsprop"
(среднеквадратичное распространение), и "adam"
(адаптивная оценка момента). Для получения дополнительной информации об этих алгоритмах, смотрите Стохастический Градиентный спуск.
Функция Setup конфигурирует обучающие данные, сетевую архитектуру и опции обучения для эксперимента. Чтобы смотреть функцию настройки, под Функцией Setup, нажимают Edit. Функция настройки открывается в Редакторе MATLAB®.
В этом примере входом к функции настройки является struct
с полями от гипертаблицы параметров. Функция настройки возвращает три выходных параметра, которые вы используете, чтобы обучить сеть для проблем классификации изображений. Функция настройки имеет три раздела.
Данные изображения загрузки задают хранилища данных изображений, содержащие данные об обучении и валидации. Этот пример загружает изображения из файла MerchData.zip
. Этот небольшой набор данных содержит 75 изображений товаров MathWorks, принадлежа пяти различным классам. Изображения имеют размер 227 227 3. Для получения дополнительной информации об этом наборе данных смотрите Наборы Данных изображения.
Архитектура Сети Define задает архитектуру для сверточной нейронной сети для классификации глубокого обучения. В этом примере выбор сети обучаться зависит от значения гиперпараметра Network
.
Укажите, что Опции обучения задают
объект для эксперимента. Пример обучает сеть в течение 10 эпох с помощью алгоритма, заданного trainingOptions
Solver
запись в гипертаблице параметров.
Раздел Metrics задает дополнительные функции, которые оценивают результаты эксперимента. Этот пример не включает пользовательских метрических функций.
Когда вы запускаете эксперимент, Experiment Manager обучает сеть, заданную функцией настройки шесть раз. Каждое испытание использует различную комбинацию гиперзначений параметров. По умолчанию Experiment Manager запускает одно испытание за один раз. Если у вас есть Parallel Computing Toolbox™, можно запустить несколько испытаний одновременно. Для лучших результатов, прежде чем вы запустите свой эксперимент, начинают параллельный пул со стольких же рабочих сколько графические процессоры. Для получения дополнительной информации смотрите Использование Experiment Manager, чтобы Обучить нейронные сети параллельно.
Чтобы запустить один суд над экспериментом за один раз, в панели инструментов Experiment Manager, нажимают Run.
Чтобы запустить несколько испытаний одновременно, нажмите Use Parallel и затем Запуск. Если нет никакого текущего параллельного пула, Experiment Manager запускает тот с помощью кластерного профиля по умолчанию. Experiment Manager затем выполняет несколько одновременных испытаний, в зависимости от количества параллельных доступных рабочих.
Таблица результатов показывает точность и потерю для каждого испытания.
В то время как эксперимент запускается, нажмите Training Plot, чтобы отобразить учебный график и отследить прогресс каждого испытания.
Чтобы найти лучший результат для вашего эксперимента, отсортируйте таблицу результатов точностью валидации.
Укажите на столбец Точности Валидации.
Кликните по треугольному значку.
Выберите Sort в порядке убывания.
Испытание с самой высокой точностью валидации появляется наверху таблицы результатов.
Чтобы отобразить матрицу беспорядка для этого испытания, выберите верхнюю строку в таблице результатов и нажмите Confusion Matrix.
В панели Браузера Эксперимента щелкните правой кнопкой по имени проекта и выберите Close Project. Experiment Manager закрывает все эксперименты и результаты, содержавшиеся в проекте.
Experiment Manager | googlenet
| resnet18
| trainingOptions
| trainNetwork