Временные ряды – это последовательные наблюдения некоторой величины в фиксированные моменты времени
(цены акций, спрос на продукцию, потребление электроэнергии и т.д.). Их основная цель – прогнозировать будущие
значения, используя информацию о прошлом.
Традиционные методы прогнозирования
До появления глубинного обучения для временных рядов активно использовались статистические модели:
- AR, MA, ARMA, ARIMA – учитывают автокорреляцию и стационарность.
- GARCH – моделирует изменчивость (волатильность) финансовых рядов.
- Экспоненциальное сглаживание (ETS) – простое, но часто эффективное.
Эти модели работают хорошо, когда ряд обладает линейными зависимостями и небольшим уровнем шума.
Однако они часто не способны захватить нелинейные и длительные зависимости, характерные для современных
данных.
Почему нейронные сети?
Искусственные нейронные сети (ИНС) обладают рядом преимуществ:
- Умение аппроксимировать нелинейные функции (см. работа Feng Lin et al.).
- Возможность работать с многомерными рядами (мультивариантные данные).
- Автоматическое извлечение признаков без ручного инженерного труда.
- Гибкость: от простых многослойных перцептронов (MLP) до рекуррентных и трансформеров.
Основные архитектуры нейронных сетей для временных рядов
Прямое распространение (MLP)
Самый простой вариант – скользящее окно, где несколько прошлых точек подаются на вход MLP.
Подходит для короткосрочного прогнозирования, но не учитывает порядок следования.
Рекуррентные нейронные сети (RNN)
RNN «запоминают» состояние предыдущих шагов, что делает их естественным выбором для последовательных данных.
Однако классические RNN страдают от исчезающего градиента.
LSTM и GRU
Long Short‑Term Memory (LSTM) и Gated Recurrent Unit (GRU) решают проблему исчезающего градиента
за счёт наличия ячейк‑состояния и специальных ворот. На практике LSTM часто используют
для:
- Финансовых рядов (USD/RUB, акции).
- Прогноза спроса в розничной торговле.
- Прогноза потребления электроэнергии.
Пример из журнала «Молодой учёный» показывает, как LSTM предсказывает курс доллара к рублю
(даты – ) с дневным таймфреймом.
NARX (Nonlinear Autoregressive with Exogenous inputs)
Нелинейная авторегрессионная сеть с внешними входами позволяет включать дополнительные факторы
(погода, макроэкономические индикаторы). Часто используется в многошаговом прогнозе.
Трансформеры
С появлением нейросетевых трансформеров (2024‑й год) стало возможным учитывать глобальные
зависимости без рекуррентных связей. Они особенно хороши в задачах с большим объёмом данных
и сезонными эффектами (пример – прогноз электроэнергии).
Практический пример: прогноз курса USD/RUB с помощью LSTM
Ниже – пошаговый план построения модели в Keras с использованием
TimeSeriesGenerator (см. Machine Learning Mastery).
- Подготовка данных
- Скачать исторические цены закрытия (CSV, столбцы:
date, close). - Нормализовать данные (MinMaxScaler).
- Разбить на обучающую (80 %) и тестовую (20 %) выборки.
- Скачать исторические цены закрытия (CSV, столбцы:
- Создание генератора
from tensorflow.keras;preprocessing.sequence import TimeseriesGenerator look_back = 30 # используем 30 дней batch_size = 32 train_gen = TimeseriesGenerator(train_scaled, train_scaled, length=look_back, batch_size=batch_size) test_gen = TimeseriesGenerator(test_scaled, test_scaled, length=look_back, batch_size=batch_size) - Определение модели
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout model = Sequential([ LSTM(64, activation='tanh', input_shape=(look_back, 1), return_sequences=False), Dropout(0.2), Dense(1) ]) model.compile(optimizer='adam', loss='mse') model.summary - Обучение
history = model.fit(train_gen, epochs=50, validation_data=test_gen, verbose=1) - Оценка качества
- MAE, RMSE на тестовой выборке.
- Визуализация предсказаний vs реальных цен.
Как оценивать модель
Для временных рядов важны метрики, учитывающие масштаб:
- MAE (Mean Absolute Error) – средняя абсолютная ошибка.
- RMSE (Root Mean Squared Error) – чувствительна к большим отклонениям.
- MAPE (Mean Absolute Percentage Error) – процентная ошибка, удобна для финансовых данных.
Кроме того, рекомендуется проверять стабильность предсказаний на разных отрезках времени
(скользящее окно кросс‑валидации).
Частые ошибки и рекомендации
Самое главное помнить, что:
- Данные должны быть стационарными или их необходимо преобразовать
(разность, логарифм, скользящее среднее). - Переподгонка (overfitting) – частый враг. Используйте dropout, раннюю остановку
(EarlyStopping) и проверяйте модель на валидационных данных. - Размер окна (look_back) сильно влияет на качество. Экспериментируйте: от 7 до 60 дней
в зависимости от характера ряда. - Сезонность лучше моделировать явно (добавив индексы месяца, дня недели) или
применив трансформер с позиционными эмбеддингами. - Объём данных – LSTM требует достаточно длинных последовательностей.
При малом объёме лучше использовать простые MLP или классические модели ARIMA.
Перспективы и новые направления
Сейчас активно исследуются гибридные подходы:
- Сочетание ARIMA + LSTM (модель ARIMA предобрабатывает линейную часть, LSTM – нелинейную).
- Трансформеры с внешними регрессорами (weather, macro‑indicators).
- Генеративные модели (GAN, VAE) для создания синтетических временных рядов,
используемых в обучении.
Нейронные сети, особенно рекуррентные (LSTM, GRU) и трансформер‑основанные,
предоставляют мощный инструментарий для прогноза временных рядов. При правильной подготовке
данных, выборе архитектуры и контроле переобучения они способны превзойти традиционные
статистические модели в сложных, нелинейных и многомерных задачах – от финансовых рынков до
энергетических систем.
Помните, что успех модели зависит от качества данных и правильного экспериментального подхода:
постоянно проверяйте гиперпараметры, анализируйте ошибки и комбинируйте модели, если это необходимо;