Experiment Manager

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

Описание

Приложение Experiment Manager позволяет вам создать эксперимент глубокого обучения, чтобы обучить нейронные сети под различными начальными условиями и сравнить результаты. Например, можно использовать эксперименты глубокого обучения для:

  • Развернитесь через область значений гиперзначений параметров или используйте Байесовую оптимизацию, чтобы найти оптимальные опции обучения. Байесова оптимизация требует Statistics and Machine Learning Toolbox™.

  • Сравните результаты использования различных наборов данных, чтобы обучить сеть.

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

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

Experiment Manager организует ваши эксперименты и приводит к проекту.

  • Можно сохранить несколько экспериментов в том же проекте.

  • Каждый эксперимент содержит набор results в течение каждого раза, когда вы запускаете эксперимент.

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

По умолчанию Experiment Manager запускает одно испытание за один раз. Если у вас есть Parallel Computing Toolbox™, можно сконфигурировать эксперимент, чтобы запустить несколько испытаний одновременно. Выполнение эксперимента параллельно позволяет вам использовать MATLAB®, в то время как обучение происходит.

Панель Experiment Browser отображает иерархию экспериментов и приводит к проекту. Например, этот проект имеет два эксперимента, каждый из которых имеет несколько наборов результатов. Чтобы открыть настройку для эксперимента и просмотреть его результаты, дважды кликните имя эксперимента или набор результатов.

Experiment Browser showing two experiments. Experiment1 has four results. Experiment2 has two results.

Experiment Manager app

Откройте приложение Experiment Manager

  • Панель инструментов MATLAB: На вкладке Apps, под Machine Learning and Deep Learning, кликают по значку приложения.

  • Командная строка MATLAB: Войти experimentManager.

Примеры

развернуть все

В этом примере показано, как использовать функцию настройки эксперимента по умолчанию, чтобы обучить сеть классификации изображений широкими гиперпараметрами. Для большего количества примеров решения задач классификации изображений с Experiment Manager смотрите, Создают Эксперимент Глубокого обучения для Классификации и Использование Experiment Manager, чтобы Обучить нейронные сети параллельно. Для получения дополнительной информации об альтернативной стратегии к широким гиперпараметрам смотрите Гиперпараметры Эксперимента Мелодии при помощи Байесовой Оптимизации.

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

В качестве альтернативы можно сконфигурировать эксперимент сами путем выполнения этих шагов.

1. Открытый Experiment Manager.

2. Нажмите New> Project и выберите местоположение и имя для нового проекта. Experiment Manager открывает новый эксперимент в проекте. Панель Эксперимента отображает описание, гиперпараметры, функцию настройки и метрики, которые задают эксперимент.

3. В поле Description введите описание эксперимента:

Classification of digits, using various initial learning rates.

4. Под Гиперпараметрами замените значение myInitialLearnRate с 0.0025:0.0025:0.015. Проверьте, что Стратегия установлена в Exhaustive Sweep.

5. Под Функцией Setup нажмите Edit. Функция настройки открывается в редакторе MATLAB. Функция настройки задает обучающие данные, сетевую архитектуру и опции обучения для эксперимента. По умолчанию шаблон для функции настройки имеет три раздела.

  • Данные изображения загрузки задают хранилища данных изображений, содержащие данные об обучении и валидации для эксперимента. Эксперимент использует набор данных Цифр, который состоит из 10 000 28 28 пиксельные полутоновые изображения цифр от 0 до 9, категоризированный цифрой, которую они представляют. Для получения дополнительной информации об этом наборе данных смотрите Наборы Данных изображения.

  • Архитектура Сети Define задает архитектуру для простой сверточной нейронной сети для классификации глубокого обучения.

  • Укажите, что Опции обучения задают trainingOptions объект для эксперимента. По умолчанию шаблон загружает значения для опции обучения 'InitialLearnRate' от myInitialLearnRate запись в гипертаблице параметров.

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

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

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

Таблица результатов показывает точность и потерю для каждого испытания.

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

Нажмите Confusion Matrix, чтобы отобразить матрицу беспорядка для данных о валидации в каждом завершенном испытании.

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

Чтобы проверить производительность отдельного испытания, экспортируйте обучивший сеть или учебную информацию для испытания. На панели инструментов Experiment Manager выберите Export> Trained Network или Export> Training Information, соответственно. Для получения дополнительной информации смотрите сеть и информацию.

Чтобы закрыть эксперимент, в панели Браузера Эксперимента, щелкают правой кнопкой по имени проекта и выбирают Close Project. Experiment Manager закрывает все эксперименты и результаты, содержавшиеся в проекте.

В этом примере показано, как сконфигурировать эксперимент, чтобы обучить сеть регрессии изображений широкими гиперпараметрами. Для другого примера решения задачи регрессии с Experiment Manager смотрите, Создают Эксперимент Глубокого обучения для Регрессии.

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

В качестве альтернативы можно сконфигурировать эксперимент сами путем выполнения этих шагов.

1. Открытый Experiment Manager.

2. Нажмите New> Project и выберите местоположение и имя для нового проекта. Experiment Manager открывает новый эксперимент в проекте. Панель Эксперимента отображает описание, гиперпараметры, функцию настройки и метрики, которые задают эксперимент.

3. В поле Description введите описание эксперимента:

Regression to predict angles of rotation of digits, using various initial learning rates.

4. Под Гиперпараметрами замените значение myInitialLearnRate с 0.001:0.001:0.006. Проверьте, что Стратегия установлена в Exhaustive Sweep.

5. Под Функцией Setup нажмите Edit. Функция настройки открывается в редакторе MATLAB.

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

function [XTrain,YTrain,layers,options] = Experiment1_setup1(params)
  • Измените раздел Load Image Data функции настройки, чтобы задать данные об обучении и валидации для эксперимента как 4-D массивы. В этом эксперименте данные об обучении и валидации каждый состоит из 5 000 изображений от набора данных Цифр. Каждое изображение показывает цифру от 0 до 9, вращаемый определенным углом. Значения регрессии соответствуют углам вращения. Для получения дополнительной информации об этом наборе данных смотрите Наборы Данных изображения. Обязательно удалите весь существующий код в этом разделе функции настройки.

[XTrain,~,YTrain] = digitTrain4DArrayData;
[XValidation,~,YValidation] = digitTest4DArrayData;
  • Измените раздел Define Network Architecture функции настройки, чтобы задать сверточную нейронную сеть для регрессии. Обязательно удалите весь существующий код в этом разделе функции настройки.

layers = [
    imageInputLayer([28 28 1])
    convolution2dLayer(3,8,'Padding','same')
    batchNormalizationLayer
    reluLayer
    averagePooling2dLayer(2,'Stride',2)
    convolution2dLayer(3,16,'Padding','same')
    batchNormalizationLayer
    reluLayer
    averagePooling2dLayer(2,'Stride',2)
    convolution2dLayer(3,32,'Padding','same')
    batchNormalizationLayer
    reluLayer
    convolution2dLayer(3,32,'Padding','same')
    batchNormalizationLayer
    reluLayer
    dropoutLayer(0.2)
    fullyConnectedLayer(1)
    regressionLayer];
  • Измените раздел Specify Training Options функции настройки, чтобы использовать данные о валидации в 4-D массивах XValidation и YValidation. Этот раздел функции настройки загружает значения для опции обучения 'InitialLearnRate' от myInitialLearnRate запись в гипертаблице параметров.

options = trainingOptions('sgdm', ...
    'MaxEpochs',5, ...
    'ValidationData',{XValidation,YValidation}, ...
    'ValidationFrequency',30, ...
    'InitialLearnRate',params.myInitialLearnRate);

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

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

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

Таблица результатов показывает среднеквадратическую ошибку (RMSE) и потерю для каждого испытания.

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

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

Чтобы проверить производительность отдельного испытания, экспортируйте обучивший сеть или учебную информацию для испытания. На вкладке Experiment Manager выберите Export> Trained Network или Export> Training Information, соответственно. Для получения дополнительной информации смотрите сеть и информацию.

Чтобы закрыть эксперимент, в панели Браузера Эксперимента, щелкают правой кнопкой по имени проекта и выбирают Close Project. Experiment Manager закрывает все эксперименты и результаты, содержавшиеся в проекте.

В этом примере показано, как настроить эксперимент с помощью приложения Experiment Manager.

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

В поле Description введите описание эксперимента.

Под Hyperparameters выберите стратегию использовать для вашего эксперимента.

  • Чтобы развернуться через область значений гиперзначений параметров, установите Strategy на Exhaustive Sweep. В гипертаблице параметров задайте значения гиперпараметров, используемых в эксперименте. Можно задать гиперзначения параметров как скаляры или векторы с числовым, логическим, или представить значения в виде строки. Например, это допустимые технические требования гиперпараметра:

    • 0.01

    • 0.01:0.01:0.05

    • [0.01 0.02 0.04 0.08]

    • ["sgdm" "rmsprop" "adam"]

    Когда вы запускаете эксперимент, Experiment Manager обучает сеть с помощью каждой комбинации гиперзначений параметров, заданных в таблице.

  • Чтобы использовать Байесовую оптимизацию, чтобы найти оптимальные опции обучения, установите Strategy на Bayesian Optimization. В гипертаблице параметров задайте эти свойства гиперпараметров, используемых в эксперименте:

    • Range — Вводит двухэлементный вектор, который дает нижнюю границу и верхнюю границу действительного - или гиперпараметр с целочисленным знаком, или массив строк или массив ячеек, который перечисляет возможные значения категориального гиперпараметра.

    • Ввод Выберите real (гиперпараметр с действительным знаком), integer (гиперпараметр с целочисленным знаком), или categorical (категориальный гиперпараметр).

    • Transform — Выберите none (никакое преобразование) или log (логарифмическое преобразование). Для log, гиперпараметром должен быть real или integer и положительный. Гиперпараметр ищется и моделируется на логарифмическом масштабе.

    Когда вы запускаете эксперимент, Experiment Manager ищет лучшую комбинацию гиперпараметров. Каждое испытание в эксперименте использует новую комбинацию гиперзначений параметров на основе результатов предыдущих испытаний. Чтобы задать длительность вашего эксперимента, под Bayesian Optimization Options, вводят максимальное время (в секундах) и максимальное количество испытаний, чтобы запуститься. Байесова оптимизация требует Statistics and Machine Learning Toolbox. Для получения дополнительной информации смотрите Гиперпараметры Эксперимента Мелодии при помощи Байесовой Оптимизации.

Setup Function конфигурирует обучающие данные, сетевую архитектуру и опции обучения для эксперимента. Входом к функции настройки является struct с полями от гипертаблицы параметров. Выход функции настройки должен совпадать с входом trainNetwork функция. Эта таблица приводит поддерживаемые подписи для функции настройки.

Цель экспериментаПодпись функции Setup
Обучите сеть для проблем классификации изображений с помощью datastore изображений imds сохранить входные данные изображения.
function [imds,layers,options] = Experiment_setup(params)
...
end
Обучите сеть с помощью datastore ds.
function [ds,layers,options] = Experiment_setup(params)
...
end
Обучите сеть для классификации изображений и проблем регрессии с помощью числовых массивов X сохранить переменные предикторы и Y сохранить категориальные метки или числовые ответы.
function [X,Y,layers,options] = Experiment_setup(params)
...
end
Обучите сеть для классификации последовательностей и проблем регрессии с помощью sequences сохранить последовательность или предикторы timeseries и Y сохранить ответы.
function [sequences,Y,layers,options] = Experiment_setup(params)
...
end
Обучите сеть для классификации и проблем регрессии с помощью таблицы tbl хранить числовые данные или пути к файлам к данным.
function [tbl,layers,options] = Experiment_setup(params)
...
end
Обучите сеть для классификации и проблем регрессии с помощью responseNames задавать переменные отклика в tbl.
function [tbl,responseNames,layers,options] = Experiment_setup(params)
...
end

Примечание

Experiment Manager не поддерживает параллельное выполнение, когда вы устанавливаете опцию обучения 'ExecutionEnvironment' к 'multi-gpu' или 'parallel' или включите опции обучения 'DispatchInBackground'. Для получения дополнительной информации смотрите Использование Experiment Manager, чтобы Обучить нейронные сети параллельно.

Раздел Metrics задает функции, чтобы оценить результаты эксперимента. Входом к метрической функции является struct с тремя полями:

  • trainedNetwork SeriesNetwork объект или DAGNetwork объект, возвращенный trainNetwork функция. Для получения дополнительной информации смотрите, Обучил сеть.

  • trainingInfo struct содержа учебную информацию, возвращенную trainNetwork функция. Для получения дополнительной информации смотрите Учебную информацию.

  • parameters struct с полями от гипертаблицы параметров.

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

Если ваш эксперимент использует Байесовую оптимизацию, выберите метрику, чтобы оптимизировать из списка Optimize. В списке Direction укажите, что вы хотите к Maximize или Minimize эта метрика. Experiment Manager использует эту метрику, чтобы определить лучшую комбинацию гиперпараметров для вашего эксперимента. Можно выбрать стандартную метрику обучения или валидации (такую как точность, RMSE или потеря) или пользовательскую метрику из таблицы.

В этом примере показано, как сравнить результаты выполнения эксперимента.

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

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

  1. Укажите на заголовок столбца, по которому вы хотите отсортировать.

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

  3. Выберите Sort in Ascending Order или Sort in Descending Order.

    Results table showing drop down menu for the Validation Accuracy column.

Чтобы отфильтровать испытания от таблицы результатов, используйте панель Filters.

  1. На панели инструментов Experiment Manager выберите Filters.

    Панель Filters показывает гистограммы для числовых метрик в таблице результатов. Чтобы удалить гистограмму из панели Filters, в таблице результатов, открывают выпадающее меню для соответствующего столбца и снимают флажок Show Filter.

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

    Histogram for Validation Loss, with filter sliders set to 1.45 and 1.55.

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

    Results table showing only trials with Validation Loss between 1.45 and 1.55.

  3. Чтобы восстановить все испытания в таблице результатов, закройте панель Experiment Result и вновь откройте результаты панели Experiment Browser.

В этом примере показано, как смотреть настройку эксперимента, который привел к данному результату.

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

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

На первой панели Experiment Result щелкните по ссылке View Experiment Source. Experiment Manager открывает панель Experiment Source, которая содержит определение эксперимента, которое произвело первый набор результатов. Щелкните по ссылке в нижней части панели, чтобы открыть функцию настройки, что вы использовали первый раз, когда вы запустили эксперимент. Можно скопировать эту функцию настройки, чтобы повторно выполнить эксперимент с помощью простой сети классификации.

На второй панели Experiment Result щелкните по ссылке View Experiment Source. Experiment Manager открывает панель Experiment Source, которая содержит определение эксперимента, которое произвело второй набор результатов. Щелкните по ссылке в нижней части панели, чтобы открыть функцию настройки, что вы использовали второй раз, когда вы запустили эксперимент. Можно скопировать эту функцию настройки, чтобы повторно выполнить эксперимент с помощью передачи обучения.

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

Связанные примеры

Советы

Чтобы визуализировать, создайте, и обучите сеть без широких гиперпараметров, попробуйте приложение Deep Network Designer.

Смотрите также

| |

Введенный в R2020a