САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Математико-механический факультет Кафедра информационно-аналитических систем Валейко Михаил Сергеевич Использование искусственных нейронных сетей для прогнозирования потребления электроэнергии Курсовая работа Научный руководитель: к. ф.-м. н., доцент Графеева Н. Г. Санкт-Петербург 2015 SAINT-PETERSBURG STATE UNIVERSITY Mathematics & Mechanics Faculty Chair of Information Analytical Systems Mikhail Valeyko Using Artificial Neural Networks for Electricity Consumption Forecasting Course Work Scientific supervisor: associate professor Natalia Grafeeva Saint-Petersburg 2015 Оглавление Введение 4 1. Постановка задачи 5 2. Решение задачи 2.1. Топология нейронной сети 2.2. Обучение нейронной сети . 2.3. Оценка прогноза . . . . . . 2.4. Программная реализация 6 6 6 7 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Заключение 10 Список литературы 11 3 Введение Задача прогнозирования в электроэнергетике играет особую роль. Качественный прогноз электропотребления позволяет обеспечить оптимальное распределение нагрузки энергосистемы, установить баланс производства и потребления электрической энергии, а также решать другие технологические и экономические проблемы в этой области. [8] Существует множество моделей и методов прогнозирования. У каждой модели имеются свои особенности, достоинства и недостатки. Выбор подходящей модели зависит от конкретной задачи, а также от типа данных и их количества. В данной работе для решения задачи прогнозирования энергопотребления рассмотрены нейросетевые методы, которые отличаются своей способностью устанавливать нелинейные связи между будущими и фактическими значениями, хорошей масштабируемостью. [10] 4 1. Постановка задачи Целью данной работы является исследование применимости искусственных нейронных сетей [9] для прогнозирования потребления электроэнергии. В качестве данных использовалась статистика энергопотребления группы промышленных филиалов за 2009-2010 года. Для достижения поставленной цели были сформулированы следующие задачи: 1. Ознакомиться с нейросетевыми методами прогнозирования. 2. Построить модель нейронной сети, соответствующую исходным данным. 3. Получить результаты прогноза. 4. Оценить точность прогнозирования построенной модели. 5 2. Решение задачи Исходные данные представляют собой временной ряд [5], состоящий из значений почасового энергопотребления за двухгодичный период. Экспертная оценка, необходимая для обучения нейронной сети с учителем [3], содержится в исходных данных и выделяется при их обработке. 2.1. Топология нейронной сети Выбор топологии нейронной сети зависит от исходных данных и типа решаемой задачи. Для прогнозирования временных рядов в качестве базовой подходит архитектура многослойного персептрона. [4] На вход нейронной сети подается 48 значений - данные энергопотребления за двое предыдущих суток, на выходе получаем 24 значения, соответствующие прогнозу на сутки вперед. В ходе экспериментального подбора характеристик сети скрытый слой стал содержать 48 нейронов. Конечная архитектура, используемая для прогнозирования, выглядит следующим образом: Рис. 1: Архитектура нейронной сети Скрытый и выходной слои нейронной сети имеют сигмоидальную функцию активации (1), которая применима для обучения нейронной сети методом обратного распространения ошибки. 1 S(x) = (1) 1 + e−αx 2.2. Обучение нейронной сети Обучение многослойного персептрона проходило методом обратного распространения ошибки [2], который является модификацией классического метода градиентно6 го спуска. Основная идея этого метода состоит в распространении сигналов ошибки от выходов сети к её входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. В качестве обучающего множества были взяты данные за 2009 год, в качестве тестового - данные за 2010 год. Обучение нейронной сети содержало 200 циклов по 5 эпох в каждом, что заняло около 6 минут. Ниже представлена зависимость среднеквадратичной ошибки (RMSE) (2) от цикла обучения: Рис. 2: Среднеквадратичная ошибка √∑ n t=1 (yt RM SE = − yet )2 , n где yt - фактическое значение, yet - спрогнозированное значение. (2) 2.3. Оценка прогноза Для оценки результатов прогнозирования временных рядов используется средняя абсолютная ошибка в процентах (MAPE): n 1∑ yt − yet M AP E = n t=1 yt (3) Величина M AP E на тестовом множестве составила ≈ 4.73%, что в целом показывает корректность полученной модели. 7 На Рис. 3 представлен график фактических и спрогнозированных значений за каждый день 2010 года, на котором можно наглядно увидеть точность прогноза. Рис. 3: Фактические и спрогнозированные значения Дата Фактическое значение, кВт·ч 2010-Jan-01 7493132 2010-Jan-02 7552815 2010-Jan-03 7446387 2010-Jan-04 7295303 2010-Jan-05 7055941 2010-Jan-06 7173325 2010-Jan-07 7772075 2010-Jan-08 7493506 2010-Jan-09 7412717 2010-Jan-10 7928519 2010-Jan-11 8038506 2010-Jan-12 7886858 2010-Jan-13 7819759 2010-Jan-14 7896423 Спрогнозированное значение, кВт·ч 7632247.46 7739228.02 7810887.19 7296067.76 7273612.88 7222200.09 7473590.29 7760484.04 7763528.19 7722912.22 7906358.22 7715955.18 7643281.05 7711145.79 Абсолютная ошибка, % 1.85 2.46 4.89 0.01 3.08 0.68 3.84 3.56 4.73 2.59 1.64 2.16 2.25 2.34 Таблица 1: Абсолютная ошибка за первые две недели 8 2.4. Программная реализация Вся программная реализация работы была выполнена на языке Python 2.7 с использованием следующих библиотек: • pandas [7] - для работы с данными • PyBrain [1] - для работы с нейронными сетями • matplotlib [6] - для построения графиков 9 Заключение В ходе работы были решены следующие задачи: 1. Рассмотрены нейросетевые методы прогнозирования. 2. Построена модель нейронной сети, соответствующая исходным данным. 3. Получены результаты прогноза. 4. Оценена точность прогнозирования построенной модели. Для оценки точности использовалась средняя абсолютная ошибка в процентах (3). Её величина составила ≈ 4.73%. Исходя из полученных прогноза и оценки построенной модели, можно сделать вывод, что искусственные нейронные сети являются хорошим инструментом для прогнозирования энергопотребления, и их использование в этой области вполне оправдывает себя. 10 Список литературы [1] PyBrain. –– 2009. –– URL: http://pybrain.org/. [2] Wikipedia. Backpropagation // Wikipedia, the free encyclopedia. –– 2015. –– URL: http://en.wikipedia.org/wiki/Backpropagation. [3] Wikipedia. Multilayer perceptron // Wikipedia, the free encyclopedia. –– 2015. –– URL: http://en.wikipedia.org/wiki/Multilayer_perceptron. [4] Wikipedia. Supervised learning // Wikipedia, the free encyclopedia. –– 2015. –– URL: http://en.wikipedia.org/wiki/Supervised_learning. [5] Wikipedia. Time series // Wikipedia, the free encyclopedia. –– 2015. –– URL: http: //en.wikipedia.org/wiki/Time_series. [6] matplotlib. –– 2015. –– URL: http://matplotlib.org/. [7] pandas. –– 2015. –– URL: http://pandas.pydata.org/. [8] Соловьева И.А., Дзюба А.П. Прогнозирование электропотребления с учетом факторов технологической и рыночной среды. –– Научный диалог, 2013. [9] Хайкин Саймон. Нейронные сети. Полный курс. –– Вильямс, 2006. [10] Чучуева И.А. Модель прогнозирования временных рядов по выборке максимального подобия. –– Московский Государственный Технический Университет имени Н. Э. Баумана, 2012. 11