Этот пример показов, как обучить нейронную сеть для глубокого обучения для регрессии с помощью Диспетчера экспериментов. В этом примере вы используете регрессионую модель, чтобы предсказать углы поворота рукописных цифр. Пользовательская метрическая функция определяет долю предсказаний угла в пределах допустимого запаса ошибки от истинных углов. Для получения дополнительной информации об использовании регрессионной модели см. Раздел «Train сверточной нейронной сети для регрессии».
Сначала откройте пример. Experiment Manager загружает проект с помощью предварительно сконфигурированного эксперимента, который можно просмотреть и запустить. Чтобы открыть эксперимент, в панели Experiment Browser дважды кликните имя эксперимента (RegressionExperiment
).
Встроенные обучающие эксперименты состоят из описания, таблицы гиперпараметров, функции настройки и набора метрических функций для оценки результатов эксперимента. Для получения дополнительной информации см. раздел «Настройка встроенного обучающего эксперимента».
Поле Description содержит текстовое описание эксперимента. В данном примере описанием является:
Regression model to predict angles of rotation of digits, using hyperparameters to specify: - the number of filters used by the convolution layers - the probability of the dropout layer in the network
Раздел «Гиперпараметров» задает стратегию (Exhaustive Sweep
) и значения гиперзначений параметров для использования в эксперименте. Когда вы запускаете эксперимент, Experiment Manager обучает сеть с помощью каждой комбинации значений гиперзначений параметров, заданных в таблице гиперпараметра. Этот пример использует два гиперпараметра:
Probability
устанавливает вероятность выпадающего слоя в нейронной сети. По умолчанию значения для этого гиперпараметра заданы как [0.1 0.2]
.
Filters
указывает количество фильтров, используемых первым слоем свертки в нейронной сети. В последующих слоях свертки количество фильтров кратно этому значению. По умолчанию значения этого гиперпараметра заданы как [4 6 8]
.
Функция Setup настраивает обучающие данные, сетевую архитектуру и опции обучения для эксперимента. Чтобы просмотреть функцию настройки, в разделе Setup Function, нажмите Edit. Функция настройки откроется в MATLAB ® Editor.
Вход функции настройки представляет собой структуру с полями из таблицы гиперпараметров. Функция настройки возвращает четыре выхода, которые вы используете для обучения сети к проблемам регрессии изображений. Функция настройки состоит из трех разделов.
Load Training Data определяет данные обучения и валидации для эксперимента как 4-D массивы. Каждый набор обучающих и валидационных данных содержит 5000 изображений цифр от 0 до 9. Значения регрессии соответствуют углам поворота цифр.
Define Network Architecture определяет архитектуру сверточной нейронной сети для регрессии.
Задайте опции обучения задает
объект для эксперимента. Пример обучает сеть на 30 эпох. Первоначально скорость обучения составляет 0,001 и падает в 0,1 раза после 20 эпох. Программное обеспечение обучает сеть на обучающих данных и вычисляет корневую среднюю квадратичную невязку (RMSE) и потерю на данных валидации с регулярными интервалами во время обучения. Данные валидации не используются для обновления весов сети.trainingOptions
Раздел Metrics задает дополнительные функции, которые оценивают результаты эксперимента. Experiment Manager оценивает эти функции каждый раз, когда завершает обучение сети. Чтобы просмотреть метрическую функцию, выберите имя метрической функции и нажмите Edit. Метрическая функция открывается в РЕДАКТОРА MATLAB.
Этот пример включает метрическую функцию Accuracy
который определяет процент предсказаний угла в пределах допустимого запаса по ошибке от истинных углов. По умолчанию функция использует порог в 10 степени.
Когда вы запускаете эксперимент, Experiment Manager обучает сеть, заданную функцией настройки, шесть раз. В каждом испытании используется разная комбинация значений гиперзначений параметров. По умолчанию Experiment Manager запускает по одной пробной версии за раз. Если у вас есть Parallel Computing Toolbox™, можно запустить несколько испытаний одновременно. Для достижения наилучших результатов, прежде чем вы запустите свой эксперимент, запустите параллельный пул с таким количеством работников, как графические процессоры. Для получения дополнительной информации смотрите Использование Experiment Manager для обучения сетей в параллельных и графический процессор поддержке по Релизу (Parallel Computing Toolbox).
Чтобы запустить по одной пробной версии эксперимента за раз, на панели инструментов Experiment Manager нажмите кнопку Запустить.
Чтобы запустить несколько испытаний одновременно, щелкните Использовать Параллель (Use Parallel) и затем Запуск. Если текущий параллельный пул отсутствует, Experiment Manager запускает его с помощью профиля кластера по умолчанию. Затем Experiment Manager выполняет несколько одновременных испытаний, в зависимости от количества доступных параллельных работников.
Таблица результатов отображает RMSE и потери для каждого испытания. В таблице также отображается точность пробной версии, определяемая пользовательской метрической функцией Accuracy
.
Во время выполнения эксперимента нажмите Training Plot, чтобы отобразить график обучения и отследить прогресс в каждом испытании.
Чтобы найти лучший результат для своего эксперимента, отсортируйте таблицу результатов по точности.
Укажите столбец «Точность».
Щелкните значок треугольника.
Выберите Сортировка в порядке убывания.
Пробная версия с наивысшей точностью появится в верхней части таблицы результатов.
Чтобы проверить эффективность отдельной пробной версии, экспортируйте обученную сеть и отобразите прямоугольный график невязок для каждого класса цифр.
Выберите пробную версию с самой высокой точностью.
На панели инструментов Experiment Manager нажмите кнопку Экспорт.
В диалоговом окне введите имя переменной рабочей области для экспортированной сети. Имя по умолчанию trainedNetwork
.
Используйте экспортированную сеть как вход в функцию plotResiduals
. Для образца в Командном Окне MATLAB введите:
plotResiduals(trainedNetwork)
Функция создает прямоугольный график для каждой цифры. Классы цифр с самой высокой точностью имеют среднее значение, близкое к нулю, и небольшое отклонение.
Чтобы записать наблюдения о результатах эксперимента, добавьте аннотацию.
В таблице результатов щелкните правой кнопкой мыши камеру «Точность» лучшего пробного варианта.
Выберите «Добавить аннотацию».
На панели аннотации введите свои наблюдения в текстовое поле.
Для получения дополнительной информации см. Раздел «Сортировка, фильтрация и аннотация результатов эксперимента».
На панели браузера экспериментов щелкните правой кнопкой мыши имя проекта и выберите «Закрыть проект». Experiment Manager закрывает все эксперименты и результаты, содержащиеся в проекте.