В этом примере показано, как обучить нейронную сеть для глубокого обучения регрессии при помощи Experiment Manager. В этом примере вы используете модель регрессии, чтобы предсказать углы вращения рукописных цифр. Пользовательская метрическая функция определяет часть угловых предсказаний в приемлемом допуске на погрешность от истинных углов. Для получения дополнительной информации об использовании модели регрессии смотрите, Обучают Сверточную нейронную сеть Регрессии.
Во-первых, откройте пример. Experiment Manager загружает проект с предварительно сконфигурированным экспериментом, который можно смотреть и запустить. Чтобы открыть эксперимент, в Браузере Эксперимента, дважды кликают имя эксперимента (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
Гипертаблица параметров содержит имена и значения гиперпараметров, используемых в эксперименте. Когда вы запускаете эксперимент, развертки Experiment Manager через гиперзначения параметров, и обучает сеть многократно. Каждое испытание использует различную комбинацию гиперзначений параметров, заданных в таблице. Этот пример использует два гиперпараметра:
Probability
устанавливает вероятность слоя уволенного в нейронной сети. По умолчанию значения для этого гиперпараметра заданы как [0.1 0.2]
.
Filters
указывает на количество фильтров, используемых первым слоем свертки в нейронной сети. В последующих слоях свертки количество фильтров является кратным этому значению. По умолчанию значения этого гиперпараметра заданы как [4 6 8]
.
Функция Setup конфигурирует обучающие данные, сетевую архитектуру и опции обучения для эксперимента. Чтобы смотреть функцию настройки, под Функцией Setup, нажимают Edit. Функция настройки открывается в редакторе MATLAB.
В этом примере входом к функции настройки является struct
с полями от гипертаблицы параметров. Функция настройки возвращает четыре выходных параметра, которые вы используете, чтобы обучить сеть для проблем регрессии изображений. Функция настройки имеет три раздела.
Данные изображения загрузки задают данные об обучении и валидации для эксперимента как 4-D массивы. Наборы данных обучения и валидации каждый содержит 5 000 изображений цифр от 0 до 9. Значения регрессии соответствуют углам вращения цифр.
Архитектура Сети Define задает архитектуру для сверточной нейронной сети для регрессии.
Укажите, что Опции обучения задают
объект для эксперимента. Пример обучает сеть в течение 30 эпох. Скорость обучения первоначально 0.001 и понижается фактором 0,1 после 20 эпох. Программное обеспечение обучает сеть на обучающих данных и вычисляет среднеквадратическую ошибку (RMSE) и потерю на данных о валидации равномерно во время обучения. Данные о валидации не используются, чтобы обновить сетевые веса.trainingOptions
Раздел Metrics задает дополнительные функции, которые оценивают результаты эксперимента. Experiment Manager выполняет эти функции каждый раз, когда он закончил обучать сеть. Чтобы смотреть метрическую функцию, выберите имя метрической функции и нажмите Edit. Метрическая функция открывается в редакторе MATLAB.
Этот пример включает метрическую функцию Accuracy
это определяет процент угловых предсказаний в приемлемом допуске на погрешность от истинных углов. По умолчанию функция использует порог 10 градусов.
Во вкладке Experiment Manager нажмите Run. Experiment Manager обучает сеть, заданную функцией настройки шесть раз. Каждое испытание использует различную комбинацию гиперпараметров. Таблица результатов показывает RMSE и потерю для каждого испытания. Таблица также показывает точность испытания, как определено пользовательской метрической функцией Accuracy
.
В то время как эксперимент запускается, нажмите Training Plot, чтобы отобразить учебный график и отследить прогресс каждого испытания.
Чтобы найти лучший результат для вашего эксперимента, отсортируйте таблицу результатов точностью.
Укажите на столбец Точности.
Кликните по треугольному значку.
Выберите Sort в порядке убывания.
Испытание с самой высокой точностью появляется наверху таблицы результатов.
Чтобы проверить производительность отдельного испытания, экспортируйте обучивший сеть и отобразите диаграмму остаточных значений для каждого класса цифры.
Выберите испытание с самой высокой точностью.
На вкладке Experiment Manager нажмите Export.
В диалоговом окне введите имя переменной рабочей области для экспортируемой сети. Именем по умолчанию является trainedNetwork
.
Создайте остаточную диаграмму путем вызова plotResiduals
функция. Используйте экспортируемую сеть в качестве входа к функции. Например, в Окне Команды MATLAB, введите plotResiduals(trainedNetwork)
.
В Браузере Эксперимента щелкните правой кнопкой по имени проекта и выберите Close Project. Experiment Manager сохраняет ваши результаты и закрывает все эксперименты, содержавшиеся в проекте.
Experiment Manager | trainNetwork
| trainingOptions