Спроектируйте и запустите эксперименты, чтобы обучить и сравнить нейронные сети для глубокого обучения
Приложение Experiment Manager позволяет вам создать эксперимент глубокого обучения, чтобы обучить нейронные сети под различными начальными условиями и сравнить результаты. Например, можно использовать эксперименты глубокого обучения для:
Развернитесь через область значений гиперзначений параметров, чтобы обучить глубокую сеть.
Сравните результаты использования различных наборов данных, чтобы обучить сеть.
Протестируйте различные глубокие сетевые архитектуры путем многократного использования того же набора обучающих данных в нескольких сетях.
Experiment Manager обеспечивает инструменты визуализации, такие как учебные графики и матрицы беспорядка, фильтры, чтобы уточнить ваши результаты эксперимента и способность задать пользовательские метрики, чтобы оценить ваши результаты. Чтобы улучшить воспроизводимость, каждый раз, когда вы запускаете эксперимент, Experiment Manager, хранит копию определения эксперимента. Можно получить доступ к прошлым определениям эксперимента, чтобы отслеживать комбинации гиперпараметра, которые приводят к каждому из результатов.
Experiment Manager организует ваши эксперименты и приводит к проекту (MATLAB).
Можно сохранить несколько experiments в том же проекте.
Каждый эксперимент содержит набор results в течение каждого раза, когда вы запускаете эксперимент.
Каждый набор результатов состоит из одного или нескольких trials, соответствующий различной комбинации гиперпараметров.
Панель Experiment Browser отображает иерархию экспериментов и приводит к проекту. Например, этот проект имеет два эксперимента, каждый из которых имеет несколько наборов результатов. Чтобы открыть настройку для эксперимента и просмотреть его результаты, дважды кликните имя эксперимента или набор результатов.
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 и потеря) для каждого испытания. Чтобы сравнить результаты эксперимента, можно использовать метрики обучения и валидации, чтобы отсортировать испытания фильтра и таблица результатов.
Чтобы отсортировать испытания в таблице результатов, используйте выпадающее меню в столбце, соответствующем метрике обучения или валидации.
Укажите на заголовок столбца, по которому вы хотите отсортировать.
Кликните по треугольному значку.
Выберите Sort in Ascending Order или Sort in Descending Order.
Чтобы отфильтровать испытания от таблицы результатов, используйте панель Filters.
На вкладке Experiment Manager выберите Filters.
Панель Filters показывает гистограммы для числовых метрик в таблице результатов. Чтобы удалить гистограмму из панели Filters, в таблице результатов, открывают выпадающее меню для соответствующего столбца и снимают флажок Show Filter.
Настройте ползунки под гистограммой для метрики обучения или валидации, которой вы хотите отфильтровать.
Таблица результатов показывает только испытания с метрическим значением в выбранной области значений.
Чтобы восстановить все испытания в таблице результатов, закройте панель 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.
Deep Network Designer | trainNetwork
| trainingOptions
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.