exponenta event banner

Создание эксперимента глубокого обучения для регрессии

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

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

Сначала откройте пример. Диспетчер экспериментов загружает проект с предварительно настроенным экспериментом, который можно проверить и запустить. Чтобы открыть эксперимент, в панели «Обозреватель экспериментов» дважды щелкните имя эксперимента (RegressionExperiment).

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

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

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) и значения гиперпараметров для использования в эксперименте. При выполнении эксперимента Диспетчер экспериментов обучает сеть с использованием каждой комбинации значений гиперпараметров, указанных в таблице гиперпараметров. В этом примере используются два гиперпараметра:

  • Probability устанавливает вероятность отсева слоя в нейронной сети. По умолчанию значения для этого гиперпараметра указаны как [0.1 0.2].

  • Filters указывает количество фильтров, используемых первым слоем свертки в нейронной сети. В последующих слоях свертки число фильтров кратно этому значению. По умолчанию значения этого гиперпараметра указаны как [4 6 8].

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

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

  • Load Training Data определяет данные обучения и проверки для эксперимента как массивы 4-D. Каждый набор обучающих и валидационных данных содержит 5000 изображений цифр от 0 до 9. Значения регрессии соответствуют углам поворота цифр.

  • Define Network Architecture определяет архитектуру сверточной нейронной сети для регрессии.

  • Задание параметров обучения определяет trainingOptions объект для эксперимента. Пример обучает сеть 30 эпохам. Уровень обучения первоначально составляет 0,001 и падает в 0,1 раза после 20 эпох. Программное обеспечение обучает сеть данным обучения и вычисляет среднеквадратичную ошибку (RMSE) и потери данных проверки через регулярные интервалы во время обучения. Данные проверки не используются для обновления весов сети.

В разделе «Метрики» указаны дополнительные функции, позволяющие оценить результаты эксперимента. Experiment Manager оценивает эти функции каждый раз, когда он заканчивает обучение сети. Чтобы проверить метрическую функцию, выберите имя метрической функции и нажмите кнопку Изменить. Функция метрики открывается в редакторе MATLAB.

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

Запустить эксперимент

При выполнении эксперимента Диспетчер экспериментов обучает сеть, определенную функцией настройки, шесть раз. В каждом испытании используется различная комбинация значений гиперпараметров. По умолчанию Experiment Manager запускает по одной пробной версии. При наличии Toolbox™ Parallel Computing можно выполнять несколько пробных версий одновременно. Чтобы получить наилучшие результаты, перед запуском эксперимента запустите параллельный пул с таким количеством работников, как GPU. Дополнительные сведения см. в разделе Использование диспетчера экспериментов для обучения сетей параллельной поддержке и поддержке графического процессора по выпуску (панель инструментов параллельных вычислений).

  • Чтобы запустить одну пробную версию эксперимента за один раз, на панели инструментов Диспетчера экспериментов нажмите кнопку Выполнить.

  • Чтобы запустить несколько пробных версий одновременно, щелкните Использовать параллельное, а затем Выполнить. Если текущий параллельный пул отсутствует, диспетчер экспериментов запускает его с использованием профиля кластера по умолчанию. Затем Experiment Manager выполняет несколько одновременных испытаний в зависимости от количества доступных параллельных работников.

Таблица результатов отображает RMSE и потери для каждого испытания. В таблице также отображается точность пробной версии, определяемая функцией пользовательской метрики. Accuracy.

Во время выполнения эксперимента щелкните Обучающий график (Training Plot), чтобы отобразить обучающий график и отслеживать ход выполнения каждого испытания.

Оценка результатов

Чтобы найти наилучший результат для эксперимента, отсортируйте таблицу результатов по точности.

  1. Указать на столбец Точность (Accuracy).

  2. Щелкните значок треугольника.

  3. Выберите Сортировка в порядке убывания.

Испытание с самой высокой точностью отображается в верхней части таблицы результатов.

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

  1. Выберите пробную версию с максимальной точностью.

  2. На панели инструментов Диспетчера экспериментов щелкните Экспорт (Export).

  3. В диалоговом окне введите имя переменной рабочего пространства для экспортируемой сети. Имя по умолчанию: trainedNetwork.

  4. Использовать экспортированную сеть в качестве входных данных функции plotResiduals. Например, в окне команд MATLAB введите:

plotResiduals(trainedNetwork)

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

Чтобы записать наблюдения о результатах эксперимента, добавьте аннотацию.

  1. В таблице результатов щелкните правой кнопкой мыши ячейку Точность наилучшего испытания.

  2. Выберите «Добавить аннотацию».

  3. На панели Аннотации (Annotations) введите данные наблюдений в текстовое поле.

Дополнительные сведения см. в разделе Сортировка, фильтрация и аннотирование результатов эксперимента.

Близкий эксперимент

На панели «Обозреватель экспериментов» щелкните правой кнопкой мыши имя проекта и выберите «Закрыть проект». Менеджер экспериментов закрывает все эксперименты и результаты, содержащиеся в проекте.

См. также

Приложения

Функции

Связанные темы