Experiment Manager

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

Описание

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

  • Развернитесь через область значений гиперзначений параметров, чтобы обучить глубокую сеть.

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

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

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

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

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

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

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

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

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

Experiment Manager app

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

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

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

Примеры

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

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

Откройте пример, чтобы загрузить проект с предварительно сконфигурированным экспериментом, который можно смотреть и запустить. Чтобы открыть эксперимент, в Браузере Эксперимента, дважды кликают имя эксперимента (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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. В Гипертаблице параметров замените значение myInitialLearnRate с 0.001:0.001:0.006.

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 нажмите Run. Experiment Manager обучает сеть, заданную функцией настройки шесть раз. Каждое испытание использует одну из скоростей обучения, заданных в гипертаблице параметров. Таблица результатов показывает среднеквадратическую ошибку (RMSE) и потерю для каждого испытания.

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

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

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

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

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

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

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

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

  • 0.01

  • 0.01:0.01:0.05

  • [0.01 0.02 0.04 0.08]

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

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
Обучите сеть для классификации и проблем регрессии с помощью responseName задавать переменные отклика в tbl.
function [tbl,responseName,layers,options] = Experiment_setup(params)
...
end

Примечание

Experiment Manager не поддерживает 'multi-gpu' или 'parallel' значения для опции обучения 'ExecutionEnvironment'.

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

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

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

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

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

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

Когда вы запускаете эксперимент, 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