Строительные блоки для современных моделей

Очень общее определение

Говоря о временных рядах, люди часто имеют тенденцию делать это очень практичным способом, ориентированным на данные: если вы попытаетесь найти какое-то определение, вы можете найти такие выражения, как серия точек данных, проиндексированных (или перечисленных, или графически) в временной порядок (Википедия), набор данных, собранных в последовательные моменты времени или в течение последовательных периодов времени (Британская энциклопедия), последовательность точек данных, которые появляются в последовательном порядке в течение некоторого периода времени. (Инвестопедия).

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

Единственные величины, которые, как мне кажется, не имеют смысла в качестве временных рядов, — это фундаментальные физические константы: старая добрая скорость света c, гравитационная постоянная G, фундаментальный электрический заряд e…такие ребята, как они, действительно никогда не меняются, вообще.

Я хочу потратить на это еще пару предложений, потому что мне нужно донести мысль: мы не можем говорить о временных рядах и инструментах для работы с ними под предлогом полноты.

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

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

Проблема прогнозирования

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

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

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

Эти ряды могут помочь как при выводе, так и при обучении, и к ним нужно относиться иначе, чем к другим: во-первых, они не требуют прогнозирования.

Еще одно соглашение об именах, о котором стоит упомянуть, относится ко времени: ряды начинаются в условное начальное время t=0, затем мы используем T для обозначения разделения между прошлым (t=0 до T) и будущим (t>T) или обучением и тестированием. ; h указывает горизонт прогнозирования, т. е. сколько единиц времени в будущем нам нужно, чтобы прогноз был достигнут (от t=T+1 до t=T+h).

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

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

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

Мы называем такие многозначные рядымногомерными, в отличие от более распространенных одномерных рядов. Здесь мы заимствуем статистический жаргон: в статистике многомерное распределение вероятностей — это такое распределение, которое зависит от более чем одной случайной величины.

Классификация

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

Критерии на основе данных

  • Доступностьковариатов или статических функций.
  • Размер точки данных: одно- или многомерный.

Проблемные критерии

  • Тип прогноза,точечный или вероятностный (квантили).
  • Размер горизонта, т. е. количество прогнозируемых временных шагов за один проход.

Классические техники

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

Базовые показатели

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

Мы называем эти методы простыми; они концептуально важны, потому что они уже говорят нам, что наличие асимметричных данных (стрела времени, идущая вперед по сравнению с единообразием, например, табличных данных, где каждая выборка обрабатывается одинаково) добавляет уровень сложности, требуя от нас сделать некоторые предположения:

  • Будет ли будущее выглядеть так, как сейчас?
  • Имеет ли значение, как выглядело прошлое? Как далеко назад мы должны смотреть?
  • Является ли процесс, лежащий в основе результатов, таким же, каким он был раньше и каким он будет позже?

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

Если мы по какой-то причине не знаем о каком-то предпочтительном семействе функций для поиска, мы просто выберем оптимальную функцию по отношению к данным. Это, однако, снова вызывает некоторые сомнения:

  • Ожидаем ли мы, что последние тенденции будут продолжаться бесконечно?
  • Повторятся ли прошлые пики и долины?
  • Имеет ли вообще смысл ряд достигать тех значений, которые предсказывает регрессия в будущем?

Методы разложения

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

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

В самом классическом из этих методов, декомпозиции Season-Trend-Remainder, мы ищем медленно меняющуюся гладкую базовую линию (тренд), затем обращаемся к быстро повторяющимся компонентам (сезонности) и, наконец, рассматриваем остальную часть сигнала как случайную. шум (остаток).

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

Методы САРИМАКС

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

Буквы, составляющие аббревиатуру SARIMAX, представляют собой аналитические блоки, которые мы можем объединить в уравнения модели:

  • Сезонный, если временной ряд имеет периодический компонент;
  • (Вектор), если временной ряд является многомерным;
  • Авторегрессивный, если временной ряд зависит от его предыдущих значений;
  • Интегрировано, если временной ряд нестационарен (например, имеет тренд);
  • Скользящее среднее, если временной ряд зависит от предыдущих ошибок прогноза;
  • экзогенные переменные, если есть ковариаты для использования.

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

Методы глубокого обучения

Во многих недавних обзорных статьях [2][3][4] показано, как после слишком длительного периода общего отсутствия интереса со стороны практиков модели машинного обучения и особенно нейронные сети становятся все более важными в дискурсе прогнозирования временных рядов.

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

Разумная эффективность глубокого обучения

В нынешнем виде мы знаем, что многие типы нейронных сетей являются универсальными аппроксиматорами любой (разумно определенной) функции при условии, что они снабжены достаточным количеством данных и памяти [5][6][7].

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

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

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

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

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

Таким образом, ключевым преимуществом глубокого обучения является не его универсальность, а скорее его универсальность и модульность: возможность легко играть с сетью, расширяя ее, компонуя, и перепрограммирование его узлов имеет решающее значение для поиска правильной модели-кандидата для конкретной проблемы.

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

Все эти функции делают Deep Learning идеальным преемником классических методов, продолжая тенденцию роста сложности и специализации моделей, но также значительно повышая универсальность и универсальность.

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

Строительные блоки

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

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

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

Неудивительно, что существует множество ресурсов, охватывающих более технические и математические детали; например, Dive Into Deep Learning [15] очень всеобъемлющий и должен охватывать все основные понятия и определения.

Сверточные нейронные сети

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

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

В более общем плане CNN полезна, когда наши данные под рукой:

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

Легко увидеть, как классификация изображений подходит для этой техники:

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

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

Например, рассмотрим проблему правильного соотнесения известных картин с их художником или направлением в искусстве, к которому они принадлежат: не очевидно, что шаблоны соседних пикселей могут помочь в классификации, поскольку, например, обнаружение объекта может быть полезным для некоторых (ренессанс художники сделали много портретов), но не для других (как это поможет с более современными жанрами?) [16].

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

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

Таким образом обеспечивается инвариантность перевода: сеть учится связывать локальные шаблоны с желаемым результатом, независимо от положения шаблона внутри тензора.

См. здесь [11] для отличного и более подробного объяснения.

Но можем ли мы успешно применить CNN в настройках временных рядов?

Что ж, несомненно, должны выполняться два необходимых условия, упомянутых в начале:

  • временной ряд, естественно, представляет собой упорядоченный одномерный массив, и
  • обычно близкие по времени точки образуют интересные закономерности (тренды, пики, колебания).

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

Более того, мы можем обмануть CNN, чтобы она изучила различные структуры, изменив ее входные ряды с помощью хорошо известных методов манипулирования временными рядами.

Например, путем субдискретизации серии мы можем заставить сверточный слой обнаруживать закономерности в разных временных масштабах; применяя преобразования в частотной области, мы можем заставить его изучать гладкие, очищенные от шума паттерны [12].

Рекуррентные нейронные сети

Если CNN нашли свое место в приложениях Computer Vision, где изображения и видео являются наиболее распространенными форматами данных, рекуррентные нейронные сети кажутся особенно подходящими для приложений временных рядов.

Тем не менее, самые поразительные успехи RNN, возможно, приходятся на область обработки естественного языка в таких задачах, как машинный перевод или распознавание речи [17].

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

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

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

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

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

В целях прогнозирования временных рядов выходные узлы рекуррентного слоя можно обучить для изучения прогнозирования на n шагов вперед для любого выбора n, чтобы упорядоченные выходные данные представляли полный путь прогноза; однако чаще всего RNN — это просто модуль в более сложной архитектуре.

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

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

В простой RNN скрытые состояния связаны с входными узлами и друг с другом с помощью классических функций активации и линейных скалярных произведений; ряд различных более сложных разновидностей, таких как LSTM и GRU, появился в ответ на несколько известных ограничений, таких как исчезающие градиенты[18][19] .

Короче говоря, эффект исчезающего градиента возникает во время обратного распространения, когда составление малых производных с правилом произведения в длинной цепочке вычислений может привести к бесконечно малым обновлениям параметров некоторых узлов, эффективно останавливая алгоритм обучения [20].

Механизмы внимания

Механизмы внимания родились в контексте НЛП для задачи нейронного машинного перевода, где идея единой глобальной модели, способной перевести любое предложение с данного языка, требовала более сложной техники, чем те, которые были доступны в то время [22].

AM часто встречаются в архитектурах кодер-декодер, где они позволяют собирать наиболее важную информацию.

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

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

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

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

Это в основном то, что делает AM: он берет любую часть входных данных (иногда называемую запросом) и рассматривает все возможные пары ввода-вывода (называемые ключами и значениями). соответственно) при условии наличия самого запроса.

В процессе модель вычисляет показатели внимания, которые показывают важность запроса как контекста для каждого ключа.

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

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

Остаточные сети

Остаточные сети — это аксессуары к существующим модулям, обеспечивающие так называемое пропускное соединение: входные данные передаются параллельно с вычислениями, которые происходят с ними в блоке, а затем две версии объединяются на выходе. (обычно с добавлением или вычитанием, с различными эффектами).

В случае сложения, например, введение соединения с пропуском эффективно делает его таким, что пропущенный блок переключается с изучения некоторого исходного преобразования f(x) на его остаток, f(x)- Икс.

Впервые они были введены путем применения их к CNN [21], но в настоящее время они практически везде, поскольку они обеспечивают явные преимущества, не добавляя слишком много вычислений или сложности.

На первый взгляд, RN — это очень простая концепция; хотя, возможно, не очевидно, чего он достигает, поэтому давайте теперь разберем их сильные стороны.

  • Облегчение распространения информации: как упоминалось ранее, длинные цепочки вычислений могут страдать от исчезающих градиентов; остаточное соединение обеспечивает дополнительный член градиента, который не содержит цепного произведения производных, заданного пропущенным блоком.
  • Избегание насыщения точности: было показано [21], что добавление остаточных блоков помогает смягчить этот эффект, заключающийся в блокировании обычных улучшений, происходящих от добавления большего количества »).
  • Предоставление переключателей включения/выключения: тот факт, что пропущенный блок изучает невязку f(x)-x, открывает новую возможность для модели, а именно установить все параметры блока так, чтобы f(x) =0, а общий выход равен x. Это, конечно, идентификация, означающая, что комбинированный блок фактически отключен.
  • Разложение входных данных: еще один эффект изучения остатков заключается в том, что если вы умело собираете остаточные блоки последовательно («каскадные» блоки), то можно заставить n-й блок изучить результат удаления предыдущего. n-1 блоков на входе. Другими словами, каждый блок изучает небольшую часть желаемого результата, которую можно восстановить, сложив части вместе в конце. Более того, мы можем адаптировать каждый каскадный блок для изучения разных частей, чтобы эффективно достигать известных декомпозиций временных рядов, таких как STR или преобразование Фурье [9].

Заключение

Надеюсь, на данный момент ясно, что Deep Learning находится на успешном пути в отношении прогнозирования временных рядов.

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

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

Надеюсь, вам понравилась эта статья! Пожалуйста, не стесняйтесь оставлять комментарии или отзывы.

Если хотите, подпишитесь на меня, чтобы не пропустить мои следующие публикации.

Вы также можете найти меня в LinkedIn или через мою компанию xtream.

[1] Р. Дж. Хайндман и др., Прогнозирование: принципы и практика, 2-е издание (2018).

[2] Б. Лим и др., Прогнозирование временных рядов с помощью глубокого обучения: обзор (2020).

[3] К. Бенидис и др., Глубокое обучение для прогнозирования временных рядов: учебник и обзор литературы (2018).

[4] Р. Масини и др., Достижения в области машинного обучения для прогнозирования временных рядов (2021).

[5] К. Хорник и др., Многослойные сети с прямой связью — универсальные аппроксиматоры (1989).

[6] З. Лу и др., Выразительная сила нейронных сетей: взгляд с высоты (2017).

[7] Д. Чжоу и др., Универсальность глубоких сверточных нейронных сетей (2018).

[8] М. Бронштейн и др., Глубокое геометрическое обучение: сетки, группы, графики, геодезические и датчики (2021).

[9] Б. Н. Орешкин и др., N-BEATS: анализ расширения нейронной базы для прогнозирования интерпретируемых временных рядов (2019).

[10] Б. Лим и др., Трансформаторы временного слияния для интерпретируемого прогнозирования многогоризонтных временных рядов (2021).

[11] https://www.jeremyjordan.me/convolutional-neural-networks/.

[12] З. Куи и др., Многомасштабные сверточные нейронные сети для классификации временных рядов (2016).

[13] Автор fdeloche — собственная работа, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=60109157

[14] Автор fdeloche — собственная работа, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=60149410 и https://commons.wikimedia.org/w/ index.php?curid=60466441

[15] А. Чжан и др., Погружение в глубокое обучение (2020).

[16] В. Чжао и др., Сравните эффективность моделей в художественной классификации (2021).

[17] И. Суцкевер и др., Последовательное обучение с помощью нейронных сетей (2014).

[18] С. Хохрайтер и др., Долгая кратковременная память (1997).

[19] К. Чо и др., О свойствах нейронного машинного перевода: подходы кодирования-декодера (2014).

[20] С. Хохрайтер и др., Градиентный поток в рекуррентных сетях: сложность изучения долгосрочных зависимостей (2003).

[21] К. Хе и др., Глубокое остаточное обучение для распознавания изображений (2015).

[22] Бахданау и др.,Нейронный машинный перевод путем совместного обучения выравниванию и переводу (2014).