Статья опубликована в рамках: LI Международной научно-практической конференции «Вопросы технических и физико-математических наук в свете современных исследований» (Россия, г. Новосибирск, 25 мая 2022 г.)
Наука: Технические науки
Секция: Энергетика и энергетические техника и технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ПРОГНОЗИРОВАНИЕ ЭЛЕКТРИЧЕСКОЙ НАГРУЗКИ С ПОМОЩЬЮ РЕКУРРЕНТНЫХ НЕЙРОННЫХ СЕТЕЙ
PREDICTION OF ELECTRICAL LOAD USING RECURRENT NEURAL NETWORKS
Andrey Skopintsev
Electrician of the 3rd category, Orenburg Territorial Grid Company
Russia, Orenburg
Anastasia Chernova
Candidate of Science, Associate Professor of the Department of Electrical and Thermal Power Engineering, Orenburg State University
Russia, Orenburg
АННОТАЦИЯ
В настоящее время известно множество методов прогнозирования применительно к энергетике. Традиционно модели предсказания были основаны на методах математической статистики. В последние десятилетия широкую популярность приобретают методы прогнозирования нагрузок с использованием так называемых нетрадиционных методов: экспертные системы, искусственные нейронные сети. В статье рассмотрен метод прогнозирования нагрузки на основе искусственных нейронных сетей с помощью модели RNN LSTM. В результате была получена обученная нейронная сеть, позволяющая прогнозировать нагрузку, сделан вывод о возможности применения данной модели нейронной сети для задач прогнозирования, однако отмечены повышенные требования к вычислительным ресурсам.
ABSTRACT
Currently, many forecasting methods are known in relation to energy. Traditionally, prediction models have been based on methods of mathematical statistics. In recent decades, load forecasting methods using so-called non-traditional methods have become widely popular: expert systems, artificial neural networks. The article discusses load prediction methods based on artificial neural networks using the RNN LSTM model. As a result, a trained neural network was obtained that allows predicting the load, a conclusion was made about the possibility of using this neural network model for forecasting tasks, however, increased requirements for computing resources were noted.
Ключевые слова: прогнозирование, электрическая нагрузка, рекуррентная нейронная сеть, временной ряд.
Keywords: prediction of electrical load, artificial neural networks.
В настоящее время известно множество методов прогнозирования применительно к энергетике. Традиционно модели предсказания были основаны на методах математической статистики, среди которых, в свою очередь, различают модели на основе временных рядов и модели на основе регрессии. В работе [5] рассмотрены методы краткосрочного прогнозирования нагрузок. Отмечены основные группы факторов, влияющие на потребление энергии в системе: экономические, временные, погодные и случайные. В последние десятилетия широкую популярность приобретают методы прогнозирования нагрузок с использованием так называемых нетрадиционных методов: экспертные системы, искусственные нейронные сети. Данные методы характеризуются возможностью работы при неполной входной информации, а также следует отметить помехоустойчивость моделей, скорость работы, отсутствие высоких требований к вычислительным ресурсам [2].
Для задачи прогнозирования нагрузки предприятия ввиду ее цикличности и стационарности следует использовать методы прогнозирования временных рядов, которые насчитывают в настоящий момент более 100 моделей [1].
Наиболее популярными и широко используемыми являются классы нейросетевых и авторегрессионных моделей. Существенным недостатком авторегрессионного класса является большое число свободных параметров, идентификация которых неоднозначна, трудоемка. Основным недостатком нейросетевых моделей являются недоступность промежуточных вычислений, выполняющихся в «черном ящике», и сложность интерпретации результатов моделирования. Слабой стороной данного класса моделей является сложность выбора алгоритма обучения нейронной сети.
В статье рассматриваются возможность и реализация прогнозирования нагрузки с помощью такой модели рекуррентных нейронных сетей, как RNN LSTM. Она является хорошо изученным методом прогнозирования, который также применятся для распознавания образов, прогнозирования широкого класса временных рядов: биржевых котировок, цены, генерации текста, расшифровки генома, а также в алгоритмах обработки естественного языка [6]. Основной отличительной особенностью сетей типа RNN LSTM является то, что они принимают к учету как время, так и последовательность наступления событий, говорят, что эти сети имеют временное измерение. LSTM-сеть считается универсальной, пригодной для решения различного класса задач. При достаточном числе узлов сети она может выполнить любое вычисление при условии нахождения заданной матрицы весов. Особенно хорошо данный подход работает для решения задач классификации, обработки и прогнозирования временных рядов, если важные события разделены временными лагами с неопределенной продолжительностью и границами.
В архитектуре сети LSTM используется понятие ячейки памяти – вычислительного узла, который заменяет традиционный скрытый слой в RNN. Каждая такая ячейка памяти содержит узел, имеющий рекуррентные грани, замкнутые на самих себя, имеющих фиксированный вес (рисунок 1 [8]).
Рисунок 1. Схема ячейки памяти сети LSTM
Рассмотрим ее основные элементы и их назначение.
Узел входа: gc – узлы, которые активируются стандартным образом от входного слоя x(t) каждый конкретный временной шаг и со скрытого слоя на предыдущем шаге h(t-1). Как правило, применятся функция гиперболического тангенса (tanh), или сигмоида.
Входной фильтр: фильтры – отличительная особенность сетей LSTM. Является узлом сигмоидальной функции, который, подобно входному узлу, активируется от текущей точки данных x(t) так же, как от скрытого слоя на предыдущем шаге. Свое название узел имеет благодаря тому, что выполняет умножение значения другого узла. Значение на входном фильтре ic умножается на значение входного узла.
Внутреннее состояние: ключевым элементом каждой ячейки памяти является узел sc, имеющий линейную функцию активации. Данный узел является присоединенным к самому себе рекуррентным ребром с фиксированным весом.
Фильтр забывания – fc введен Герсом в работе [4]. Предоставляют механизм, с помощью которого сеть имеет возможность стирания ранее записанной информации о внутреннем состоянии. Является особенно полезным в случае реализации сетей, функционирующих в непрерывном режиме. С использованием узла забывания внутреннее состояние ячейки памяти имеет вид:
(1)
где ⊙ — поэлементное произведение.
Выходной фильтр – величина vc, в конечном счете получаемая на выходном слое сети, является значением произведения внутреннего состояния sc, умноженным на величину выходного фильтра oc.
Реализация предложенного алгоритма прогнозирования временных рядов предлагается с использованием средств языка программирования Python 3.8 и встроенных библиотек языка. Исходным программным средством разработки является комплекс обеспечения виртуального окружения Anaconda [3]. Дополнительно предлагается использовать следующие библиотеки языка Python: pandas; numpy; Keras; tensorflow; scikit-learn; pyaml; matplotlib.
Использование сторонних программных библиотек позволяет исключить создание типовых, уже реализованных сторонними разработчиками функций, а также применять наиболее оптимизированные вычислительные средства, сокращая время на прототипирование и создание моделей прогнозирования.
После того как виртуальное окружение создано, подгружены необходимые пакеты, осуществляется создание программы на языке Python для выполнения прогнозирования временных рядов методом LSTM.
Для этого на первом этапе осуществляется чтение исходного набора данных, переформатирование в формат с датой, группировка и сортировка по дате.
На втором этапе для подачи данных на вход сети LSTM необходимо выполнить преобразование исходного временного ряда в матричный вид в соответствии с алгоритмом функционирования сети. Строится программная функция создания матриц X, Y из исходного временного ряда, содержащего последовательные отсчеты исходной величины. На выходе функция возвращает данные в виде, пригодном для подачи на вход нейронной сети.
Нейросеть имеет скрытый LSTM-слой (который также служит входным слоем) и выходной слой. На третьем этапе определяется конфигурация сети и задаются основные параметры: число нейронов для слоя LSTM равно 50, число временных окон ряда для одновременной подачи на вход равно 3. Далее осуществляется вызов целевой функции потерь для минимизации методом наименьших квадратов.
Далее для построения основного класса программы, реализующего модель прогнозирования на основе сети LSTM, выделяется главная переменная для моделирования и прогнозирования, создаются обучающие и тестовые выборки, и в результате обучения происходит сохранение обученной модели в класс.
После написания кода программа может быть запущена как в среде PyCharm, так и через консоль в режиме ранее созданного виртуального окружения. Исходные данные по электрической нагрузке получены из открытых источников на портале сообщества по машинному обучению Kaggle [7].
В результате запускается программа, мы видим графическое отображение в консоли результатов обучения и прогона модели в течение 10 эпох (рисунок 2).
Рисунок 2. Вывод программы при выполнении обучения сети и минимизации целевой функции ошибок
По окончании работы программы наблюдаем график временного ряда (рисунок 3), где синим цветом обозначены исходные данные, а оранжевым – спрогнозированные значения. Визуально временной ряд спрогнозирован верно – можем констатировать, что построенная модель удовлетворяет задаче прогнозирования на заданной временной выборке данных.
Рисунок 3. Выводимый график прогнозируемого и исходного временного ряда по окончании работы программы
В ходе выполнения программы следует отметить высокую нагрузку на центральный процессор и значительное время выполнения (рисунок 4). На основании этого следует дать рекомендацию по реализации указанного алгоритма прогнозирования с использованием технологий высокопроизводительных параллельных вычислений на GPU с использованием библиотек Nvidia CUDA, которая позволяет разрабатывать программы на языках высокого уровня, использующие ресурсы графического процессора с большим числом вычислительных блоков для быстрого умножения матриц и операций с нейронными сетями.
Рисунок 4. Иллюстрация нагрузки на центральный процессор
Таким образом, выполнено экспериментальное исследование метода прогнозирования электрической нагрузки. Дан краткий обзор методов прогнозирования временных рядов, приведена классификация, описаны достоинства и недостатки основных классов методов. В качестве рассматриваемого подробно выбран метод долгой краткосрочной памяти на основе рекуррентных нейронных сетей – Long Short-Term Memory (LSTM). Кратко описан механизм работы нейронной сети, дана математическая модель ячейки, приведены ссылки на первоисточники изобретателей алгоритма. Предложена реализация рассматриваемого метода прогнозирования с использованием средств языка программирования Python с помощью среды разработки Anaconda. Использовались дополнительные библиотеки, широко применяемые для задач анализа данных и машинного обучения – tensorflow, pandas, keras, numpy, matplotlib.
Проведено экспериментальное исследование разработанной программы на открытых исходных данных о потреблении электрической нагрузки. Вывод программы содержал графическое представление прогнозируемых данных. На основе анализа полученных результатов сделан вывод о достаточной точности разработанной модели прогнозирования. Недостатком модели является низкая производительность, в качестве рекомендации приведено использование программирования высокопроизводительных параллельных вычислений на графическом процессоре с помощью библиотек NVIDIA Cuda.
Список литературы:
- Тихонов Э.Е. Методы прогнозирования в условиях рынка : учебн. пособие. – Невинномысск, 2006. – 221 с.
- Шумилова Г.П., Готман Н.Э., Старцева Т.Б. Прогнозирование электрических нагрузок при оперативном управлении электроэнергетическими системами на основе нейросетевых структур. – Екатеринбург : УрО РАН, 2008. – 85 c.
- Anaconda | Individual Edition // Anaconda / [Электронный ресурс]. – Режим доступа: https://www.anaconda.com/products/individual (дата обращения: 25.09.2021).
- Gers F.A., Schmidhuber J., Cummins F. Learning to Forget: Continual Prediction with LSTM // Neural Computation. – 2000. – № 10 (12). – P. 2451–2471.
- Gross G., Galiana F. Short-term load forecasting // Proceedings of the IEEE. – 1987. – Vol. 75, № 12. – P. 1558–1573.
- Hochreiter S., Schmidhuber J. Long Short-Term Memory // Neural Computation. – 1997. – № 8 (9). – P. 1735–1780.
- Kaggle: Your Machine Learning and Data Science Community / [Электронный ресурс]. – Режим доступа: https://www.kaggle.com/ (дата обращения: 25.09.2021).
- Lipton Z.C. Deep Learning and the Triumph of Empiricism / [Электронный ресурс]. – Режим доступа: https://www.kdnuggets.com/2015/07/deep-learning-triumph-empiricism-overtheoretical-mathematical-guarantees.html (дата обращения: 25.09.2021).
дипломов
Оставить комментарий