Fedot

View the Project on GitHub ITMO-NSS-team/FEDOT.Docs

Для разделения гидродинамического процесса на масштабы может быть использован итеративный подход для выделения различных масштабов. Подход состоит в последовательном применении обучении LSTM сети и вычитания результатов её предсказания из исходного временного ряда. Из-за особенностей данной архитектуры на первой итерации из нестационарного временного ряда можно выделить нелинейный тренд. Следующая итерация даёт некоторое подобие сезонной компоненты.

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

Для примера были взят временной ряд высоты волнения в точке, полученный в результате моделирования Арктического региона с помощью модели NEMO. Для предсказания значений в следующий момент времени была использована LSTM модель. Её архитектура показана на рис. 1.

drawing Рисунок 1 – Архитектура нейронной сети.

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

В начале модели используются Conv1d-слои для того, чтобы найти шаблоны во временном ряде (например, кривизну). Также был добавлен слой добавляющий шум из нормального распределения к входным данным - данная техника помогает избежать переобучения модели. Последний слой TimeDistributed преобразует полученные “фичи” из предыдущих слоёв к выходному значению. Внутри него используется слой Dropout - который также помогает избежать переобучения.

Модель была обучена на тренировочной выборке с помощью оптимизатора Ranger.

В качестве примера показаны два масштаба разложения. Первый из них – трендовая составляющая. Пример выделенного тренда показан на рис. 2 и рис. 3.

drawing

Рисунок 2 – Слева: выделенная трендовая компонента (оранжевый) на фоне оригинального временного ряда (полный набор данных); справа: разность выделенного тренда и исходного временного ряда – сезонная компонента.

drawing

Рисунок 3 – Слева: выделенная трендовая компонента (оранжевый) на фоне оригинального временного ряда (часть набора данных); справа: разность выделенного тренда и исходного временного ряда – сезонная компонента.

После обучения модель тренда была протестирована на валидационной выборке. Вся валидационная выборка, предсказания и их разница – сезонная компонента показана на рис. 4.

drawing

Рисунок 4 – Сверху вниз: полученная модель тренда, валидационная выборка и их разница.

Итоговая модель тренда имеет среднеквадратичную ошибку равную 0.01 м на валидационной выборке.

Модель для сезонной компоненты была получена аналогично. Результаты предсказания на валидационной выборке показаны на рис. 5 и рис. 6.

drawing

Рисунок 5 - Результат предсказания модели сезонной компоненты (оранжевый) на валидационной выборке целиком (синий).

drawing

Рисунок 6 - Результат предсказания модели сезонной компоненты (оранжевый) на части валидационной выборки (синий).

Итоговая модель сезонной компоненты имеет среднеквадратичную ошибку равную 0.03 м на валидационной выборке.

Реализация данной модели во фреймворке Федот: drawing

Прогнозы, выполненные с различной заблаговременностью:

drawing

Пример оптимизации прогностической модели:

drawing