Глубокое обучение с помощью прогнозирования AutoML

В этой статье рассматриваются методы глубокого обучения для прогнозирования временных рядов в AutoML. Инструкции и примеры для обучения моделей прогнозирования в AutoML можно найти в статье Настройка AutoML для прогнозирования временных рядов .

Глубокое обучение оказало значительное влияние на различные области, от моделирования языка до свертывание белка, среди многих других. Прогнозирование временных рядов также извлекло выгоду из последних достижений в технологии глубокого обучения. Например, модели глубокой нейронной сети (DNN) занимают видное место в наиболее производительных моделях из четвертой и пятой итераций громкого конкурса прогнозирования Макридакиса.

В этой статье мы расскажем о структуре и работе модели TCNForecaster в AutoML, чтобы лучше всего применить эту модель к вашему сценарию.

Введение в TCNForecaster

TCNForecaster — это темпоральная сверточная сеть, или TCN, которая имеет архитектуру DNN, специально разработанную для данных временных рядов. Модель использует исторические данные для целевого количества, а также связанные признаки для создания вероятностных прогнозов целевого объекта до указанного горизонта прогноза. На следующем рисунке показаны основные компоненты архитектуры TCNForecaster:

Схема основных компонентов TCNForecaster AutoML.

TCNForecaster имеет следующие компоненты main:

  • Слой предварительного смешивания , который смешивает входные временные ряды и данные признаков в массив сигнальных каналов , которые будет обрабатывать сверточная стек.
  • Стек расширенных слоев свертки , который последовательно обрабатывает массив каналов; Каждый слой в стеке обрабатывает выходные данные предыдущего слоя для создания нового массива каналов. Каждый канал в этом выходе содержит смесь сигналов сверток, фильтруемых из входных каналов.
  • Коллекция головных единиц прогноза , которые объединяют выходные сигналы из слоев свертки и создают прогнозы целевого количества из этого скрытого представления. Каждая головная единица создает прогнозы до горизонта для квантили распределения прогнозов.

Расширенный причинно-следственный сверток

Центральная операция TCN — это расширенная причинная свертка по временному измерению входного сигнала. Интуитивно свертка смешивает значения из ближайших точек времени во входных данных. Пропорции в смеси являются ядром, или весами, свертки, в то время как разделение между точками в смеси является расширение. Выходной сигнал формируется из входных данных путем скольжения ядра во времени вдоль входных данных и накопления смеси в каждой позиции. Причинно-следовая свертка — это свертка, в которой ядро смешивает только входные значения в прошлом относительно каждой точки вывода, не позволяя выходным данным "заглядывать" в будущее.

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

Схема с накоплением расширенных слоев свертки.

Пунктирные линии показывают пути по сети, которые заканчиваются на выходных данных за раз $t$. Эти пути охватывают последние восемь точек во входных данных, иллюстрируя, что каждая выходная точка является функцией восьми относительно последних точек во входных данных. Длина журнала или "оглядывайся назад", которую сверточная сеть использует для прогнозирования, называется рецептивным полем и полностью определяется архитектурой TCN.

Архитектура TCNForecaster

Основой архитектуры TCNForecaster является стек сверточных слоев между предварительной смесью и головками прогноза. Стек логически делится на повторяющиеся блоки , которые, в свою очередь, состоят из остаточных ячеек. Остаточная ячейка применяет причинно-следственные свертки при множестве дилатации вместе с нормализацией и нелинейной активацией. Важно отметить, что каждая остаточная ячейка добавляет свои выходные данные к своим входным данным с помощью так называемого остаточного соединения. Было показано, что эти подключения приносят пользу обучению DNN, возможно, потому, что они упрощают более эффективный поток информации по сети. На следующем рисунке показана архитектура сверточных слоев для примера сети с двумя блоками и тремя остаточными ячейками в каждом блоке:

Схема, показывающая структуру блоков и ячеек для сверточных слоев TCNForecaster.

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

Параметр Описание
$n_{b}$ Количество блоков в сети; также называется глубиной
$n_{c}$ Количество ячеек в каждом блоке
$n_{\text{ch}}$ Количество каналов в скрытых слоях

Рецептивное поле зависит от параметров глубины и задается формулой .

$t_{\text{rf}} = 4n_{b}\left(2^{n_{c}} - 1\right) + 1.$

Мы можем дать более точное определение архитектуры TCNForecaster с точки зрения формул. Пусть $X$ является входным массивом, в котором каждая строка содержит значения признаков из входных данных. Мы можем разделить $X$ на числовые и категориальные массивы признаков, $X_{\text{num}}$ и $X_{\text{cat}}$. Затем TCNForecaster задается формулами.

Уравнения, описывающие операции TCNForecaster.

где $W_{e}$ — матрица внедрения для категориальных признаков, $n_{l} = n_{b}n_{c}$ — общее число остаточных ячеек, $H_{k}$ обозначает скрытые выходные данные слоя, а $f_{q}$ — это выходные данные прогноза для заданных квантили распределения прогнозов. Чтобы помочь понять, измерения этих переменных приведены в следующей таблице:

Переменная Описание Измерения
$X$ Входной массив $n_{\text{input}} \times t_{\text{rf}}$
$H_{i}$ Выходные данные скрытого слоя для $i=0,1,\ldots,n_{l}$ $n_{\text{ch}} \times t_{\text{rf}}$
$f_{q}$ Прогноз выходных данных для квантильного $q$ $h$

В таблице $n_{\text{input}} = n_{\text{features}} + 1$, количество переменных прогнозора или признаков плюс целевое количество. Руководители прогнозов формируют все прогнозы до максимального горизонта, $h$, за один проход, поэтому TCNForecaster является прямым прогнозистом.

TCNForecaster в AutoML

TCNForecaster — это необязательная модель в AutoML. Чтобы узнать, как использовать его, см. статью Включение глубокого обучения.

В этом разделе мы расскажем, как AutoML создает модели TCNForecaster с вашими данными, включая объяснения предварительной обработки, обучения и поиска моделей.

Действия по предварительной обработке данных

AutoML выполняет несколько шагов предварительной обработки данных для подготовки к обучению модели. В следующей таблице эти шаги описаны в порядке их выполнения:

Шаг Описание
Заполнение отсутствующих данных Вменение отсутствующих значений и пропусков в наблюдениях и необязательное заполнение или удаление коротких временных рядов
Создание функций календаря Дополнить входные данные функциями, производными от календаря , такими как день недели и( при необходимости) праздники для определенной страны или региона.
Кодирование категориальных данных Строки кодирования меток и другие категориальные типы; включает все столбцы идентификаторов временных рядов.
Целевое преобразование При необходимости примените функцию естественного логарифма к целевому объекту в зависимости от результатов определенных статистических тестов.
Нормализация Z-оценка нормализует все числовые данные; нормализация выполняется для каждого компонента и группы временных рядов в соответствии со столбцами идентификаторов временных рядов.

Эти шаги включены в конвейеры преобразования AutoML, поэтому они автоматически применяются при необходимости во время вывода. В некоторых случаях обратная операция шага включается в конвейер вывода. Например, если AutoML применил преобразование $\log$ к целевому объекту во время обучения, необработанные прогнозы экспоненциируются в конвейере вывода.

Обучение

TCNForecaster следует рекомендациям по обучению DNN, общим для других приложений на изображениях и языке. AutoML делит предварительно обработанные обучающие данные на примеры , которые перемешаны и объединены в пакеты. Сеть обрабатывает пакеты последовательно, используя обратное распространение и стохастический градиентный спуск для оптимизации весов сети по отношению к функции потерь. Для обучения может потребоваться много проходов через полные обучающие данные; каждый проход называется эпохой.

В следующей таблице перечислены и описаны входные параметры и параметры для обучения TCNForecaster:

Входные данные для обучения Описание Значение
Данные для проверки Часть данных, которые хранятся в процессе обучения, чтобы направлять оптимизацию сети и устранять проблемы с установкой. Предоставляется пользователем или автоматически создается на основе обучающих данных, если они не предоставлены.
Основная метрика Метрика, вычисленная на основе прогнозов медиана-значений на основе проверочных данных в конце каждой эпохи обучения; используется для ранней остановки и выбора модели. Выбирается пользователем; нормализованная среднеквадратическая погрешность или нормализованная средняя абсолютная погрешность.
Эпоха обучения Максимальное число эпох для оптимизации веса сети. 100; автоматическая логика ранней остановки может завершить обучение в меньшем количестве эпох.
Раннее прекращение терпения Количество эпох, ожидаемых первичного улучшения метрик перед остановкой обучения. 20
Функция потерь Целевая функция для оптимизации веса сети. Квантильные потери в среднем за 10, 25, 50, 75 и 90-й процентиль прогнозов.
Размер пакета Число примеров в пакете. Каждый пример имеет измерения $n_{\text{input}} \times t_{\text{rf}}$ для входных данных и $h$ для выходных данных. Определяется автоматически на основе общего числа примеров в обучающих данных; максимальное значение 1024.
Измерения внедрения Размеры пробелов внедрения для категориальных признаков. Автоматически устанавливается четвертый корень числа уникальных значений в каждом признаке с округлением до ближайшего целого числа. Пороговые значения применяются при минимальном значении 3 и максимальном значении 100.
Сетевая архитектура* Параметры, управляющие размером и формой сети: глубина, количество ячеек и количество каналов. Определяется поиском модели.
Весовые коэффициенты сети Параметры, управляющие смешения сигналов, категориальные внедрения, вес ядра свертки и сопоставления с прогнозируемыми значениями. Случайным образом инициализируется, а затем оптимизирована по отношению к функции потерь.
Скорость обучения* Определяет, сколько весовой коэффициент сети может быть скорректирован в каждой итерации градиентного спуска; динамическое уменьшение близкой конвергенции. Определяется поиском модели.
Коэффициент отсева* Управляет степенью регуляризации отсева, применяемой к весовым коэффициентам сети. Определяется поиском модели.

Входные данные, помеченные звездочкой (*), определяются поиском гиперпараметров, описанным в следующем разделе.

AutoML использует методы поиска модели для поиска значений для следующих гиперпараметров:

  • Глубина сети или количество сверточных блоков;
  • Число ячеек на блок,
  • Количество каналов в каждом скрытом слое,
  • Коэффициент отсева для регуляризации сети,
  • Скорость обучения.

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

Поиск модели состоит из двух этапов:

  1. AutoML выполняет поиск по 12 "ориентирам" моделей. Ориентировые модели являются статическими и выбираются для разумного охвата пространства гиперпараметров.
  2. AutoML продолжает поиск в пространстве гиперпараметров с помощью случайного поиска.

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

Дальнейшие действия