Ключевые слова:прогнозирование временных рядов, искусственные нейронные сети, АСУ ТП.
Авторы:
Олейников В.С. - Старший преподаватель СПбПУ
Федотовских Е.А., Коновалов К.Д. - Студенты СПбПУ.
В настоящее время искусственные нейронные сети используются для предсказаний технологического параметра или массива параметров в различных сферах. Одна из таких сфер – автоматизированные пункты теплоснабжения зданий. Такие объекты работают по принципу подачи тепла на жилые объекты и объекты инфраструктуры в зависимости от наружной температуры, что является экономически выгодным.
Но при управлении теплоснабжением необходимо учитывать инертность подачи тепла, а значит иметь предсказания температуры на некоторое время вперед. Для системы, рассматриваемой в данной статье инертность составляет примерно полчаса, поэтому будем рассматривать предсказания температуры на это время вперед.
В качестве данных для обучения модели были предоставлены значения наружной температуры (далее avg_value), собранные с датчика на одном из объектов в течение 2 месяцев каждые 4 минуты (всего 21960 элементов). Перед обучением было заполнены пропуски NaN методом интерполяции, удалены выбросы, а также преобразовано время из формата строки в формат даты для более удобной работы в будущем.
Для предсказания температуры (решения задачи прогнозирования временных рядов) будем использовать модель рекуррентной нейронной сети на блоках LSTM, так как значения в соседние моменты времени взаимосвязаны друг с другом последовательно. Один из главных параметров обучения window_size – количество последовательных данных элементов, взятых в качестве фич для предсказания элемента window_size+s, где s – то, на сколько элементов вперед будем предсказывать. Так как инертность системы составляет около получаса, оптимальным будет взять s=7, так как временные интервалы между измерениями составляют 4 минуты.
Также при создании датасетов (в данном случае тренировочного и валидационного) и модели обучения можно менять такие параметры:
batch_size – количество элементов при обучении, после которых происходит изменение весов модели.
use_scaler – нормализация данных (bool). Выполняется для приведения данных к ограниченному промежутку (в данном случае [-1 1]).
shuffle – перемешивание выборок данных в датасете перед обучением(bool). Используется, чтобы все выборки имели более равный вклад в обучение.
lstm_units – количество дискретных временных интервалов ячейки LSTM. Другими словами, количество выходов при прямом распространении
return_sequences – использовать всю полученную последовательность выходов равных lstm_units или только последнюю (bool).
Для того, чтобы избежать переобучения был использован метод EarlyStopping с параметром patience=3. Это значит, что если после 3 эпох обучения подряд среднеквадратическая ошибка на валидационном датасете не уменьшалась, обучение прекращается. Поэтому количество эпох не влияет на обучение и установлено в значение 100.
В качестве оптимизатора выбран Adam, а метрикой качества, по которой будем оценивать модели, стала средняя абсолютная ошибка предсказания.
Главной целью является отыскание параметров, при которых достигается максимальное качество модели. Для этого была реализована функция Grid_search, которая создает датасеты, обучает модели и запоминает параметры и показатели качества по спискам заранее заданных параметров, описанных выше.
Запустим Grid_Search с таким набором параметров. Всего будет создано и обучено 2*2*2*2*2*3=96 моделей.
Получившаяся таблица параметров и соответствующих им метрик.
Для того, чтобы было более понятно, в какую сторону двигаться, построим гистограммы по параметрам и средним ошибками при этих параметрах.
Как видно из гистограмм, ошибка намного меньше если параметр return_sequences=False, немного уменьшает ошибку use_scaler=False, а параметр window_size влияет на ошибку пропорционально – чем больше он, тем больше ошибка. Но слишком сильно уменьшать его нет смысла, так как можно полностью убрать влияние предыдущих значений температуры на предсказываемое.
Запустим Grid_Search с новым набором параметров. Всего будет создано и обучено 3*3*2*3=54 моделей.
Выведем только те 3 варианта, в которых ошибка минимальна.
Как можно видеть, наилучшим набором параметров является batch_size =16, lstm_units =32, use_scaler =False, shuffle=True, return_sequences=False и window_size=10.
Сохраним модель с такими параметрами и построим графики зависимости среднеквадратичкской и абсолютной ошибок от количества эпох для тренировочного и валидационного датасетов.
Далее запустим метод predict для валидационного датасета, который не учувствовал в обучении, поэтому в данном случае он может являеться тестовым. Выведем кривые предсказаний и реальные значения на одном графике.
Как можно видеть графики практически повторяют друг друга. Для наглядности построим график разницы между предсказанным значением и реальным. Среднее значение абсолютной ошибки получилось 0.052 после округления до 3 знаков после запятой.
В результате была получена модель рекуррентной нейронной сети, которая предсказывает значения температуры через время равное 32 минутам по предыдущим 10 значениям (40 минут) с большой точностью. Средняя ошибка предсказаний в 0.052 полностью удовлетворяет необходимым показаниям точности.
Список литературы
1. Девяткин Александр Витальевич, Извин Андрей Валерьевич, Зыков Дмитрий Артурович ПРИМЕНЕНИЕ МЕТОДА ГРУППОВОГО УЧЕТА АРГУМЕНТОВ В ПРОГНОЗИРОВАНИИ ВРЕМЕННЫХ РЯДОВ // E-Scio. 2020. №5 (44). URL: https://cyberleninka.ru/article/n/primenenie-metoda-gruppovogo-ucheta-argumentov-v-prognozirovanii-vremennyh-ryadov (дата обращения: 25.11.2021).
2. Федотов М.В., Грачев В.В. ПРЕДИКТИВНАЯ АНАЛИТИКА ТЕХНИЧЕСКОГО СОСТОЯНИЯ СИСТЕМ ТЕПЛОВОЗОВ С ИСПОЛЬЗОВАНИЕМ НЕЙРОСЕТЕВЫХ ПРОГНОЗНЫХ МОДЕЛЕЙ // БРНИ. 2021. №3. URL: https://cyberleninka.ru/article/n/prediktivnaya-analitika-tehnicheskogo-sostoyaniya-sistem-teplovozov-s-ispolzovaniem-neyrosetevyh-prognoznyh-modeley (дата обращения: 25.11.2021).
3. Видмант Олег Сергеевич Прогнозирование финансовых временных рядов с использованием рекуррентных нейронных сетей LSTM // Общество: политика, экономика, право. 2018. №5.