В этом примере показано, как создать эксперимент глубокого обучения для сравнения различных конфигураций предварительной обработки данных и сетевой глубины для регрессии последовательности к последовательности. В этом примере Диспетчер экспериментов используется для обучения сетей долговременной памяти (LSTM), которые предсказывают оставшийся срок службы (RUL) двигателей. В эксперименте используется набор данных моделирования деградации турбовентиляторного двигателя, описанный в [1]. Дополнительные сведения об обработке этого набора данных для регрессии последовательности к последовательности см. в разделе Регрессия последовательности к последовательности с использованием глубокого обучения.
RUL фиксирует количество рабочих циклов, которые может выполнить двигатель до отказа. Чтобы узнать больше из данных последовательности, когда механизмы близки к отказу, выполните предварительную обработку данных путем отсечения ответов при заданном пороге. Эта операция предварительной обработки позволяет сети сосредоточиться на поведении данных предиктора, близком к отказу, рассматривая экземпляры с более высокими значениями RUL как равные. Например, этот рисунок показывает первое наблюдение ответа и соответствующий отсеченный ответ с порогом 150.

При обучении сети глубокого обучения способ предварительной обработки данных и количество уровней в сети могут повлиять на поведение обучения и производительность сети. Выбор глубины сети LSTM предполагает балансировку скорости и точности. Например, более глубокие сети могут быть более точными, но для обучения и сближения требуется больше времени [2].
По умолчанию при выполнении встроенного обучающего эксперимента для регрессии Диспетчер экспериментов вычисляет среднеквадратичную ошибку потерь и корня (RMSE) для каждого испытания в эксперименте. В этом примере сравнивается производительность сети в каждой пробной версии с использованием пользовательской метрики, специфичной для набора данных проблемы. Дополнительные сведения об использовании пользовательских метрических функций см. в разделе Оценка экспериментов глубокого обучения с использованием метрических функций.
Сначала откройте пример. Диспетчер экспериментов загружает проект с предварительно настроенным экспериментом. Чтобы открыть эксперимент, в обозревателе экспериментов дважды щелкните имя эксперимента (SequenceRegressionExperiment).

Встроенные обучающие эксперименты состоят из описания, таблицы гиперпараметров, функции настройки и коллекции метрических функций для оценки результатов эксперимента. Дополнительные сведения см. в разделе Настройка встроенного учебного эксперимента.
Поле Описание содержит текстовое описание эксперимента. В этом примере приводится следующее описание:
Sequence-to-sequence regression to predict the remaining useful life (RUL) of engines. This experiment compares network performance when changing data thresholding level and LSTM layer depth.
В таблице гиперпараметров указана стратегия (Exhaustive Sweep) и значения гиперпараметров для использования в эксперименте. При выполнении эксперимента Диспетчер экспериментов просматривает значения гиперпараметров и несколько раз обучает сеть. Каждое испытание использует различную комбинацию значений гиперпараметров, указанных в таблице гиперпараметров. В этом примере используются два гиперпараметра:
'Threshold' устанавливает все данные ответа, превышающие пороговое значение, равными пороговому значению. Для предотвращения получения однородных данных об откликах используйте пороговые значения, превышающие или равные 150.
'LSTMDepth' указывает количество уровней LSTM, используемых в сети. Укажите этот гиперпараметр как целое число от 1 до 3.
Функция настройки настраивает данные обучения, сетевую архитектуру и параметры обучения для эксперимента. Чтобы проверить функцию настройки, в разделе Функция настройки (Setup Function) щелкните Изменить (Edit). Функция настройки открывается в редакторе MATLAB.
В этом примере функция настройки имеет три раздела.
Загрузка и предварительная обработка данных загружает и извлекает набор данных моделирования деградации турбовентиляторного двигателя из https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/ [3]. Этот раздел функции настройки также отфильтровывает признаки постоянного значения, нормализует данные предиктора, чтобы они имели нулевое среднее значение и единичную дисперсию, отсекает данные ответа, используя значение гиперпараметра «Порог», и случайным образом выбирает обучающие примеры, которые будут использоваться для проверки.
Define Network Architecture определяет архитектуру сети LSTM для регрессии последовательности к последовательности. Сеть состоит из уровней LSTM со 128 скрытыми блоками, за которыми следует полностью соединенный уровень размером 100 и уровень отсева с вероятностью отсева 0,5. Количество уровней LSTM равно 'LSTMDepth' значение из таблицы гиперпараметров.
Задать параметры обучения (Specify Training Options) - определение параметров обучения для эксперимента. Поскольку для сходимости более глубоких сетей требуется больше времени, количество эпох устанавливается равным 300, чтобы гарантировать сходимость всех глубин сети. В этом примере проверяется сеть каждые 30 итераций. Начальная скорость обучения составляет 0,01 и падает в 0,2 раза каждые 15 эпох. С возможностью обучения 'ExecutionEnvironment' установить в значение 'auto', эксперимент выполняется на GPU, если он доступен. В противном случае программное обеспечение использует ЦП. Поскольку в этом примере сравниваются глубины сети и поезда для многих эпох, использование графического процессора значительно увеличивает время обучения. Для использования графического процессора требуется Toolbox™ параллельных вычислений и поддерживаемое устройство графического процессора. Дополнительные сведения см. в разделе Поддержка графического процессора по выпуску (Панель инструментов параллельных вычислений).
В разделе «Метрики» указаны дополнительные функции, позволяющие оценить результаты эксперимента. Experiment Manager оценивает эти функции каждый раз, когда он заканчивает обучение сети. Чтобы проверить метрическую функцию, выберите имя метрической функции и нажмите кнопку Изменить. Функция метрики открывается в редакторе MATLAB.
Прогнозирование RUL двигателя требует тщательного рассмотрения. Если прогноз занижает значение RUL, то техническое обслуживание двигателя может быть запланировано до необходимости. Если предсказание завышает RUL, двигатель может отказать во время работы, что приводит к высоким затратам или проблемам безопасности. Чтобы смягчить эти сценарии, этот пример включает метрическую функцию MeanMaxAbsoluteError идентифицирует сети, которые недооценивают или завышают RUL.
MeanMaxAbsoluteError metric вычисляет максимальную абсолютную ошибку, усредненную по всему обучающему набору. Эта метрика вызывает predict выполнение последовательности прогнозов RUL из обучающего набора. Затем, после вычисления максимальной абсолютной ошибки между каждым обучающим ответом и предсказанной последовательностью ответа, функция вычисляет среднее значение всех максимальных абсолютных ошибок. Эта метрика определяет максимальные отклонения между фактическими и прогнозируемыми откликами.
При выполнении эксперимента Диспетчер экспериментов девять раз обучает сеть, определенную функцией настройки. В каждом испытании используется различная комбинация значений гиперпараметров. По умолчанию Experiment Manager запускает по одной пробной версии. При наличии Toolbox™ Parallel Computing можно выполнять несколько пробных версий одновременно. Чтобы получить наилучшие результаты, перед запуском эксперимента запустите параллельный пул с таким количеством работников, как GPU. Дополнительные сведения см. в разделе Использование диспетчера экспериментов для обучения сетей параллельной поддержке и поддержке графического процессора по выпуску (панель инструментов параллельных вычислений).
Чтобы запустить одну пробную версию эксперимента за один раз, на панели инструментов Диспетчера экспериментов нажмите кнопку Выполнить.
Чтобы запустить несколько пробных версий одновременно, щелкните Использовать параллельное, а затем Выполнить. Если текущий параллельный пул отсутствует, диспетчер экспериментов запускает его с использованием профиля кластера по умолчанию. Затем Experiment Manager выполняет несколько одновременных испытаний в зависимости от количества доступных параллельных работников.
В таблице результатов отображаются значения метрических функций для каждого испытания.

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

В таблице результатов значение MeanMaxAbsoliveError количественно определяет, насколько сеть недооценивает или чрезмерно предсказывает значение RUL. Значение Validation RMSE количественно определяет, насколько хорошо сеть обобщает невидимые данные. Чтобы найти наилучший результат для эксперимента, отсортируйте таблицу результатов и выберите пробную версию с наименьшими значениями MeanMaxAbsolityError и Validation RMSE.
Укажите столбец Validation RMSE или MeanMaxAbsolityError.
Щелкните значок треугольника.
Выберите Сортировка в порядке возрастания.

Если ни одно испытание не сводит к минимуму оба значения, попробуйте отдать предпочтение испытанию, которое хорошо ранжируется для каждого значения. Например, в этих результатах пробная версия 3 имеет наименьшее значение Validation RMSE и второе наименьшее значение MeanMaxAbsolityError.
Чтобы записать наблюдения о результатах эксперимента, добавьте аннотацию.
В таблице результатов щелкните правой кнопкой мыши ячейку Validation RMSE лучшей пробной версии.
Выберите «Добавить аннотацию».
На панели Аннотации (Annotations) введите данные наблюдений в текстовое поле.
Повторите предыдущие шаги для ячейки MeanMaxAbsolityError.

Чтобы проверить производительность вашего лучшего исследования, экспортируйте обученную сеть и отобразите предсказанную последовательность ответа для нескольких случайно выбранных тестовых последовательностей.
Выберите лучшую пробную версию в своем эксперименте.
На панели инструментов Диспетчера экспериментов щелкните Экспорт (Export).
В диалоговом окне введите имя переменной рабочего пространства для экспортируемой сети. Имя по умолчанию: trainedNetwork.
Использовать экспортированную сеть и Threshold значение сети как входов в функцию помощника helperPlot. Например, в окне команд MATLAB введите:
helperPlot(trainedNetwork,150)
Функция строит график истинных и прогнозируемых последовательностей ответа невидимых тестовых данных.

В обозревателе экспериментов щелкните правой кнопкой мыши имя проекта и выберите «Закрыть проект». Менеджер экспериментов закрывает все эксперименты и результаты, содержащиеся в проекте.
Саксена, Абхинав, Кай Гебель, Дон Симон и Нил Эклунд. «Моделирование распространения повреждений для моделирования обкатки авиационного двигателя на отказ». Международная конференция 2008 года по прогностике и управлению здоровьем (2008): 1-9.
Юзефович, Рафал, Войцех Заремба, и Илья Сутскевер. «Эмпирическое исследование повторяющихся сетевых архитектур». Материалы 32-й Международной конференции по машинному обучению (2015 год): 2342-2350.
Саксена, Абхинав, Кай Гебель. «Набор данных моделирования деградации турбовентиляторного двигателя». Хранилище данных NASA Ames Prognostics, https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/, Исследовательский центр NASA Ames, Моффетт Филд, Калифорния.