Программа развития электросетевой компании «Россети» (rosseti14.kerrygun.ru/strategic-report/prospects-of-development) предусматривает переход к интеллектуальным сетям (Smart Grid), которые обладают качественно новыми характеристиками надежности, эффективности, доступности, управляемости и позволяют учитывать конкретные запросы клиентов в каждый момент времени. Для реализации этой программы, компании требуется, в частности, выйти на среднемировые показатели всех этих характеристик. Один из способов их достижения — точное прогнозирование потребления электроэнергии и построение профилей клиентов, что влияет и на технологические процессы компании, и на ее экономическую эффективность.
Прогнозирование играет ключевую роль при формировании баланса элекроэнергии в энергосистеме, влияя на выбор режимных параметров и расчетных электрических нагрузок. Баланс производства и потребления электроэнергии — это основа технологической устойчивости энергосистемы, его нарушение сказывается на качестве электроэнергии (происходит деградация частоты и напряжения в сети), что снижает эффективность работы оборудования. Кроме того, правильный прогноз позволяет обеспечить оптимальное распределение нагрузки между объектами энергосистемы. Это дает возможность управлять стоимостью покупки электроэнергии путем регулирования загрузки оборудования, переводя, например, основные объемы генерации электроэнергии в часы и зоны оптового рынка энергии с наименьшей ценой.
Особую актуальность задача прогнозирования потребления электроэнергии приобрела после появления в России оптового рынка электроэнергии: цена ошибки в прогнозах может оказаться очень высокой, так как снижается качество управления электроснабжением и ухудшается экономичность сложных режимов энергосистемы. За отклонения фактических почасовых показателей от прогнозных на участников накладываются штрафные санкции, что увеличивает стоимость электроэнергии: занижение прогноза приводит к необходимости запуска обычно дорогостоящих аварийных электростанций, а завышение — к увеличению издержек на поддержку в рабочем состоянии излишних мощностей.
Для прогнозирования электропотребления и построения профилей клиентов используются различные методы, обычно основанные на анализе ретроспективной динамики электропотребления и действующих на него факторов, выявлении статистической связи между признаками и на построении моделей. До недавнего времени самыми распространенными методами прогнозирования были однофакторные прогнозы по временным рядам, основанные на регрессионных методах. Однако такие прогнозы неспособны учитывать влияние на потребление электроэнергии таких нерегулярных факторов, как погодные явления, колебания цен на топливо, поломки оборудования, поэтому на практике следует применять многофакторное прогнозирование, позволяющее строить прогноз с точностью, значительно превышающей точность по временным рядам.
Среди всех многофакторных подходов особо выделяется метод на базе искусственных нейронных сетей, позволяющий устанавливать связи между выходными характеристиками системы и входными факторами [1]. Такие связи позволяют вычислить будущие значения параметров и достаточно точно кластеризовать группы объектов, например группы потребителей электроэнергии. Кроме того, нейронные сети хорошо масштабируются и справляются с так называемым проклятием размерности, не позволяющим моделировать линейные зависимости при большом количестве переменных.
Каждая сеть состоит из нейронов (элементарных процессоров), получающих и передающих сигналы (рис. 1). Все процессоры соединены в сеть связями (синапсами), имеющими определенный вес. Пороговое значение выходного сигнала нейрона используется при вычислении сигнала активации, равного разности между взвешенной суммой входных значений (сигналов) и пороговым значением. В случае нулевого порога сигнал активации равен взвешенной сумме входных значений. Функция активации нейрона, или передаточная функция, преобразует сигнал активации для получения на выходе сигнала нейрона.
Рис. 1. Компоненты нейрона |
Все данные перед подачей на входы нейронной сети преобразуются к числовому виду, сеть их обрабатывает и на выходе выдает числовые данные, которые при необходимости могут быть подвергнуты обратному преобразованию, например в категориальные данные.
Выбор подходящей сети зависит от конкретной задачи, а также от типа данных и их объема. Имеется множество классификаций сетей (рис. 2), но для решения типичных для рынка электроэнергии задач лучше всего применять многослойный персептрон (задача прогнозирования потребления энергии) и сети Кохонена (задача построения клиентского профиля потребления электроэнергии).
Рис. 2. Классификация нейронных сетей |
Многослойный (многоуровневый) персептрон [2] представляет собой совокупность связанных нейронов, организованных в слои: входной слой, на который поступает вектор входных сигналов X; выходной слой, который выдает результат расчетов сети в виде вектора Y; скрытые слои, выполняющие преобразования. Входной слой не производит вычислений и лишь распределяет вектор X на следующий слой, выполняя роль приемника информации. Обычно, если скрытых слоев больше двух, все они имеют одинаковое количество нейронов. Каждый слой рассчитывает преобразование от линейной комбинации сигналов предыдущего слоя. Многослойная нейронная сеть может формировать на выходе произвольную многомерную функцию при соответствующем выборе количества слоев, диапазона изменения сигналов и параметров нейронов. Самое главное — многослойные нейронные сети являются универсальными аппроксиматорами функций. За счет поочередного расчета линейных комбинаций и нелинейных преобразований достигается аппроксимация произвольной многомерной функции при соответствующем выборе параметров сети. Именно свойства нейронных сетей в аппроксимации лежат в основе решения задач прогнозирования потребления электроэнергии.
Многослойный персептрон не программируется в обычном смысле, и для решения конкретной задачи выполняется процесс его обучения путем подбора множества его коэффициентов W. Изначально эти коэффициенты инициализируются начальными значениями и на вход сети подается вектор входных сигналов X, а затем с помощью функции активации вычисляется вектор выходных значений Y, который сравнивается с известными значениями Y_test, полученными, например, опытным путем. После этого вычисляется отклонение расчетного значения от заданного, и в случае, если оно больше заданного, происходит изменение коэффициентов W и процесс повторяется. Если отклонение меньше заданного, то сеть считается обученной и фиксируются текущие значения коэффициентов W. В дальнейшем обученная сеть может использоваться при расчетах (аппроксимации) выходного вектора Y.
Такой подход называется обучением «с учителем», а для сетей Кохонена, применяемых при построении клиентского профиля потребления электроэнергии, используется настройка сети «без учителя» — при отсутствии заранее известного выходного вектора Y.
В реальном мире имеется множество параметров, влияющих на расход электроэнергии и определяющих размерность вектора входных сигналов X, причем не все они одинаково сказываются на энергопотреблении. Например, можно предположить, что электрическая нагрузка на прогнозируемом периоде зависит от следующих параметров (предикторов): нагрузка в последнюю неделю; день недели; количество рабочих дней; длительность светового дня; температура воздуха; облачность; конец месяца; график технического обслуживания оборудования потребителей; продолжительность отопительного периода; тип клиента; отрасль экономики. Как среди всего множества параметров выделить наиболее значимые?
Большинство значимых параметров для прогнозирования потребления относится к так называемым циклическим параметрам: cуточные, недельные зависимости; месячные, квартальные, годовые; выходные/рабочие дни и т. д. А другая значимая группа параметров определяется по функциональным характеристикам: метеорологические условия; тип клиента; отрасль экономики; характеристики помещений и т. д. Кроме того, сегодня принято выделять еще и факторы рыночной среды (www.gkhprofi.ru/news.php?id=69), влияющие на потребление: объемы и цены «рынка на сутки вперед»; объемы и цены «балансирующего рынка»; предложение и спрос рынка и т. п.
Сеть (слой, карта) Кохонена — это однослойная нейронная сеть, предназначенная для решения задачи кластеризации и построенная по принципу WTA (Winner Takes All — победитель получает все). Сети Кохонена относятся к самоорганизующимся искусственным нейронным сетям, которые позволяют выявлять кластеры входных векторов, обладающих некоторыми общими свойствами. По значениям входных параметров потребления электроэнергии необходимо определить, к какому кластеру относится потребитель, причем заранее неизвестно количество классов, что и отличает задачи кластеризации от задачи классификации.
В конечном состоянии сети количество ее нейронов совпадает с числом кластеров, которые сеть выделяет из входных данных. Для задачи построения клиентского профиля электропотребления заранее неизвестно количество кластеров (характерных профилей клиентов). В процессе обучения сети определяется необходимое количество нейронов с помощью алгоритма «расширяющегося нейронного газа» (Growing Neural Gas) [3]. Аналогия с газом возникает из-за того, что при обучении сети Кохонена может использоваться специальная функция соседства, по внешнему виду напоминающая функцию распределения частиц по скоростям в идеальном газе при заданной температуре.
Сеть Кохонена обучается «без учителя» — ключевую роль в ее обучении играет функция конкуренции. В каждом цикле обучения эта функция выбирает нейрон-победитель, который и служит центром кластера данных, а само обучение состоит в циклическом повторении следующих шагов: множество коэффициентов W инициализируется начальными значениями (например, случайными); на вход сети подается вектор входных сигналов X и определяется выход Y для каждого нейрона; с использованием функции конкуренции определяется нейрон-победитель (веса которого в наименьшей степени отличаются от соответствующих компонентов входного вектора); по определенному правилу корректируются веса нейрона-победителя. Если обучение не завершено, процесс повторяется, а выходом из цикла является либо исчерпание заданного счетчика циклов обучения (как, например, в пакете MATLAB Neural Network Toolbox), либо достижение малой величины функционала ошибки. В случае «расширяющегося нейронного газа» данный алгоритм модифицируется путем добавления шагов, связанных с добавлением нейронов, и перестройки связей между ними [3]. Добавление нейрона в сеть означает появление нового кластера — новой группы потребителей, имеющих сходный профиль потребления электроэнергии.
Возможности нейронных сетей реализованы во множестве различных программных продуктов: соответствующие библиотеки имеются для таких языков программирования, как Cи/C++, Pascal, Java, Scala, Python, R и Visual Basic. Разработчики и пользователи решений на базе нейронных сетей проявляют особое внимание к продуктам на основе открытых технологий, поскольку возникает синергетический эффект от совместного развития открытых технологий работы с Большими Данными и инструментов категории Open Source, применяемых в научном сообществе и вобравших в себя достижения фундаментальных наук. В таблице перечислены библиотеки для языка Python, ориентированные на работу с искусственными нейронными сетями.
№ | Название | Описание |
---|---|---|
1 | Theano | Фундаментальная библиотека с математическими объектами, в том числе и с нейронными сетями (https://github.com/Theano/Theano). Совместима с Python 2 и Python 3. |
2 | TensorFlow | Фундаментальная библиотека для работы с нейронными сетями (https://www.tensorflow.org). Совместима с Python 2 и Python 3. |
3 | Keras | Высокоуровневая библиотека с поддержкой сетей прямого распространения и с обратными связями (https://keras.io). Совместима с Python 2 и Python 3. |
4 | Lasagne | Ограниченная по функциональности библиотека, требующая явного программирования построения сети, циклов обучения и т. д. (https://github.com/Lasagne/Lasagne). Совместима с Python 2 и Python 3. |
5 | Neon | Поддерживает оба типа сетей: прямого распространения и с обратными связями (http://neon.nervanasys.com/index.html). Совместима с Python 2 и Python 3. |
6 | Kayak | Библиотека Гарвардского университета с поддержкой всех типов нейронных сетей (https://github.com/HIPS/Kayak). |
8 | Blocks | Инструментальная среда поверх библитеки Theano для разработки моделей на основе нейронных сетей (http://blocks.readthedocs.io/en/latest). |
9 | Chainer | Инструментальная среда для работы со всеми типами ннйронных сетей (http://chainer.org). Только для Python 2.7. |
10 | NuPIC | Инструментальная среда для решения задач, связанных с нейронными сетями (http://numenta.org). |
Библиотеки для нейронных сетей хорошо интегрируются с аналитическими хранилищами данных, построенными, например, на основе Hadoop, — при работе с нейронными сетями на таких больших объемах данных, как сведения о потребителях электроэнергии региона, важно иметь возможность использовать распределенную вычислительную среду. Однако процесс обучения трудно разделить на множество независимых друг от друга работающих параллельно подзадач, что затрудняет масштабирование. В этой связи интересна разработка Университета Беркли (http://arxiv.org/pdf/1511.06051v4.pdf), результатом которой стало создание инструментальной среды SparkNet, позволяющей строить нейронные сети в рамках среды Spark. Кроме того, данный инструмент позволяет использовать графические процессоры для обучения нейронных сетей, что позволяет добиться более высокой производительности.
***
Как показали исследования возможности применения нейронных сетей в компании «Россети», в ряде случаев удается получить точность прогнозирования электропотребления на уровне 96–97%. Это существенно выше, чем позволяют традиционные методы. В контексте задач, стоящих сегодня перед компанией «Россети», можно утверждать, что системы на основе искусственных нейронных сетей вполне способны обеспечить решение задачи прогнозирования энергопотребления в промышленном масштабе и в конечном счете это позволит повысить надежность, безопасность и качество предоставления услуг по энергоснабжению потребителей. Построение точных профилей потребления и повышение точности прогнозирования дают возможность учитывать индивидуальные потребности клиентов и предлагать новые сервисы, что непосредственно влияет на прибыли компании.
Потенциал применения нейронных сетей не ограничивается только прогнозированием и профилированием — нейронные сети могут применяться для анализа технического состояния и оценки надежности энергогенерирующего оборудования, диагностики и локализации аварийных ситуаций, прогнозирования цен на электроэнергию, оптимизации распределения нагрузки и для решения других технологических и экономических задач, стоящих перед электроэнергетическими компаниями.
Литература
- Саймон Хайкин. Нейронные сети: полный курс. — М.: Вильямс, 2008. — С.1103. ISBN: 5845908906.
- Жианчанг Мао, Энил Джейн. Введение в искусственные нейронные сети // Открытые системы.СУБД. — 1997. — № 4. — С. 16–24. URL: http://www.osp.ru/os/1997/04/179189 (дата обращения: 18.12.2016).
- Sledge I. J., Keller J. M. Growing neural gas for temporal clustering // 19th International Conference on Pattern Recognition (ICPR'08), December 8–11, 2008, Tampa, Florida, USA. IEEE Computer Society 2008. — P.1–4.
Максим Панов ( PanovMV@moesk.ru ) — зам. технического директора, компания «Энергоучет» (ПАО «МОЭСК», ПАО «Россети»); Игорь Хмелев (igor.khmelev@teradata.com ) — архитектор решений, Александр Смирнов ( Alexander.Smirnov@Thinkbiganalytics.com ) — Hadoop-евангелист, Think Big, Teradata (Россия).