Выберите строения обучения для регрессии между последовательностями

В этом примере показано, как создать эксперимент глубокого обучения для сравнения различных строений предварительной обработки данных и глубины сети для регрессии «последовательность-последовательность». В этом примере вы используете Experiment Manager для обучения сетей долгой краткосрочной памяти (LSTM), которые предсказывают оставшийся срок полезного использования (RUL) двигателей. В эксперименте используется набор данных моделирования деградации Engine Turbofan, описанный в [1]. Для получения дополнительной информации об обработке этого набора данных для регрессии от последовательности к последовательности, смотрите Регрессия от последовательности к последовательности с использованием глубокого обучения.

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

Когда вы обучаете нейронную сеть для глубокого обучения, то, как вы обрабатываете данные и количество слоев в сети, может повлиять на поведение обучения и эффективность сети. Выбор глубины сети LSTM включает в себя балансировку скорости и точности. Например, более глубокие сети могут быть более точными, но требуют больше времени, чтобы обучаться и сходиться [2].

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

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

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

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

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

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

  • 'Threshold' устанавливает все данные отклика выше порога значения равными порогами значению. Чтобы предотвратить однородные данные отклика, используйте пороговые значения, большие или равные 150.

  • 'LSTMDepth' указывает количество слоев LSTM, используемых в сети. Задайте этот гиперпараметр как целое число от 1 до 3.

Функция Setup настраивает обучающие данные, сетевую архитектуру и опции обучения для эксперимента. Чтобы просмотреть функцию настройки, в разделе Setup Function, нажмите Edit. Функция настройки откроется в РЕДАКТОРА MATLAB.

В этом примере функция настройки состоит из трех разделов.

  • Загрузка и предварительная обработка данных загружает и извлекает набор данных моделирования деградации Engine из https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/ [3]. Этот раздел функции настройки также отфильтровывает постоянные оцененные признаки, нормализует данные предиктора, чтобы иметь нулевое среднее и единичное отклонение, обрезает данные отклика при помощи значения гиперпараметра 'Threshold' и случайным образом выбирает обучающие примеры, которые будут использоваться для валидации.

  • Define Network Architecture определяет архитектуру для сети LSTM для регрессии от последовательности к последовательности. Сеть состоит из слоев LSTM с 128 скрытыми модулями, далее следует полностью соединенный слой размера 100 и слой отсева с вероятностью отсева 0,5. Количество слоев LSTM равняется 'LSTMDepth' значение из таблицы гиперпараметров.

  • Настройка опций обучения определяет опции обучения для эксперимента. Поскольку для сближения более глубоких сетей требуется больше времени, количество эпох устанавливается равным 300, чтобы обеспечить сходимость всех глубин сетей. Этот пример проверяет сеть каждые 30 итераций. Начальная скорость обучения составляет 0,01 и падает в множителе 0,2 каждые 15 эпох. С опцией обучения 'ExecutionEnvironment' установлено на 'auto'эксперимент запускается на графическом процессоре, если он доступен. В противном случае программное обеспечение использует центральный процессор. Поскольку этот пример сравнивает глубины сетей и обучает для многих эпох, использование графический процессор значительно ускоряет время обучения. Для использования графический процессор требуется Parallel Computing Toolbox™ и поддерживаемый графический процессор. Для получения дополнительной информации смотрите Поддержку GPU by Release (Parallel Computing Toolbox).

Раздел Metrics задает дополнительные функции, которые оценивают результаты эксперимента. Experiment Manager оценивает эти функции каждый раз, когда завершает обучение сети. Чтобы просмотреть метрическую функцию, выберите имя метрической функции и нажмите Edit. Метрическая функция открывается в РЕДАКТОРА MATLAB.

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

The MeanMaxAbsoluteError metric вычисляет максимальную абсолютную ошибку, усредненную по всему набору обучающих данных. Эта метрика вызывает predict функция для создания последовательности RUL- предсказаний из набора обучающих данных. Затем, после вычисления максимальной абсолютной ошибки между каждым обучающим ответом и предсказанной последовательностью отклика, функция вычисляет среднее значение всех максимальных абсолютных ошибок. Эта метрика определяет максимальные отклонения между фактическим и предсказанным откликами.

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

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

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

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

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

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

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

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

  1. Укажите на столбец Validation RMSE или MeanMaxAbsoluteError.

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

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

Если ни одно испытание не минимизирует оба значения, рассмотрите выбор испытанию, которое хорошо оценивается для каждого значения. Например, в этих результатах пример 3 имеет наименьшее значение Validation RMSE и второе наименьшее значение MeanMaxAbsoluteError.

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

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

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

  3. На панели аннотации введите свои наблюдения в текстовое поле.

  4. Повторите предыдущие шаги для камеры MeanMaxAbsoluteError.

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

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

  2. На панели инструментов Experiment Manager нажмите кнопку Экспорт.

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

  4. Используйте экспортированную сеть и Threshold значение сети как входы в вспомогательную функцию helperPlot. Для образца в Командном Окне MATLAB введите:

helperPlot(trainedNetwork,150)

Это графики функций истинные и предсказанные последовательности откликов невидимых тестовых данных.

Закройте эксперимент

В Диспетчере экспериментов щелкните правой кнопкой мыши имя проекта и выберите «Закрыть проект». Experiment Manager закрывает все эксперименты и результаты, содержащиеся в проекте.

Ссылки

  1. Саксена, Абхинав, Кай Гебель, Дон Симон и Нил Эклунд. «Моделирование распространения повреждений для самолетов Engine Симуляции отказа». 2008 Международная конференция по прогнозированию и управлению здоровьем (2008): 1-9.

  2. Юзефович, Рафал, Войцех Заремба, и Илья Суцкевер. «Эмпирическое исследование повторяющихся архитектур сетей». Материалы 32-й Международной конференции по машинному обучению (2015): 2342-2350.

  3. Саксена, Абхинав, Кай Гебель. «Набор данных моделирования деградации Engine». NASA Ames Prognostics Data Repository, https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/, Исследовательский центр НАСА Эймса, Моффетт-Филд, Калифорния.

См. также

Приложения

Функции

Похожие темы