Введение

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

За последние несколько десятилетий потребление энергии росло в геометрической прогрессии из-за легкого доступа к огромным нетронутым источникам невозобновляемой энергии, таким как уголь и нефть под землей. Однако большая часть отходов, образующихся после использования сырой энергии, по-прежнему содержит значительное количество потенциальной энергии или «потраченной впустую» энергии, которую можно было бы восстановить, но вместо этого она попадает на свалки или предприятия по переработке отходов. Если эти источники были огромными по объему, разбросанными по всему миру, почему мы должны рассматривать возможность восстановления этих энергий, учитывая, что затраты на сбор значительно более доступны, чем их восстановление из произведенных отходов?

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

Цель

Цель этого проекта - спрогнозировать потребление энергии при Т + 96 (на один день вперед) Здания-126 на основе только информации о температуре рядом со зданием, чтобы владельцы здания могли принять информативное решение для повышения эффективности здания. энергопотребление.

Наша модель будет прогнозировать потребление энергии при ежедневном потреблении энергии в здании в будущем (т.е. T + 1 день), при условии, что наборы данных будут с 15-минутными интервалами, с 24 июля 2014 года, 12:30 вечера, до 26 мая 2016 года. 20:15. Это также значительно упростит вычислительную мощность от использования слишком больших наборов данных (например, еженедельно будет использовать окно из 672 точек данных) для обучения нашей модели прогнозирования, чтобы сэкономить время. Наша модель будет использовать структуру нейронной сети для обеспечения точного и надежного прогноза дневного потребления энергии в здании-126. Единица энергии, используемая в этих наборах данных, будет выражаться в мегаваттах (МВт), и хотя это единица измерения мощности, мы будем использовать термины «энергия» и «мощность» как синонимы.

Анализ набора данных

Рядом со зданием находились четыре метеостанции, которые обеспечивают записи температуры окружающей среды (т. Е. Wx1, wx2, wx3 и wx4), ​​и одна запись о потреблении энергии в здании-126, предоставляемая для анализа. Мы попытались извлечь данные о температуре вместе с данными об энергии, и мы решили использовать объединенные данные о средней температуре wx1 и wx2, поскольку они имеют лучшую целостность. Извлечение данных будет обсуждаться в следующем разделе, но давайте просто возьмем данные температуры wx1 + wx2 в качестве набора данных, используемого для обучения нейронной сети.

Основываясь на рисунке 1 выше, мы можем видеть, что есть две тенденции пика потребления энергии. В течение 4 месяцев с декабря по март потребление энергии стабилизируется на максимальном уровне примерно 6500 МВт (обведено красным) по сравнению с пиком энергии в период с июня по октябрь на уровне около 5000 МВт ( обведено зеленым). Это может быть связано с зимним сезоном, когда температура ниже 0 градусов по Цельсию (как показано на рисунке 2 выше), система отопления может быть включена на 24/7 для поддержания рабочих процессов. В период с июня по октябрь пик также связан с системой охлаждения, необходимой в летний период, когда температура обычно выше, и для предотвращения перегрева рабочих процессов. Весенний и осенний сезоны, как правило, потребляют меньше энергии, так как окружающая температура не очень сильно влияет на рабочие процессы по сравнению с экстремальными погодными условиями в течение летнего и зимнего сезонов.

Тем не менее, мы также можем видеть, что из рисунка 1 потребление энергии, зарегистрированное до 24 ноября 2014 года, было очень низким, так что оно стало «выбросом» для нашего обучения модели. Поэтому мы решили исключить набор данных, начиная с 24 ноября 2014 г. по 26 мая 2016 г. Кривая изменения энергопотребления и температуры представлена ​​на рисунках 3 и 4 ниже соответственно.

Поскольку это общие тенденции, охватывающие три года, мы увеличили объем еженедельного и дневного потребления, как показано на рисунках 5 и 6 соответственно. Мы пропускаем месячный тренд, поскольку он имеет высокую степень сходства с годовым трендом.

Из недельного тренда мы видим повторяющуюся модель каждую неделю, при которой в будние дни обычно наблюдается высокое потребление энергии, хотя потребление энергии не всегда одинаковое (показано розовым оттенком), в то время как в выходные дни потребление энергии кажется более низким. ниже будних дней (заштриховано красным). Однако 8 декабря отмечается государственный праздник, который показывает, что потребление энергии ниже, чем в обычные будние дни, что обозначено зеленой стрелкой. В целом, общая тенденция еженедельного потребления энергии будет аналогична приведенному выше графику, но ниже в дни государственных праздников.

Еженедельные тенденции могли дать нам достаточно информации для обучения наших моделей прогнозированию. Однако наборы данных с 15-минутным интервалом могут быть слишком большими для обучения и занимать много времени. Итак, мы попытались более пристально взглянуть на дневной тренд, который изображен на рисунке 6 ниже.

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

Что касается данных о погоде, то нет никаких особых событий или закономерностей, которые мы могли бы получить на основе еженедельных данных о погоде. Однако ежедневные данные представляют собой картину (рис. 7), где температура обычно повышается днем ​​и понижается с ночи до утра, что довольно очевидно.

Автокорреляция

Автокорреляция определяется как степень сходства между запаздывающими временными рядами и текущими временными рядами на последовательном временном интервале. Например, когда мы хотим узнать, насколько похожа точка данных на 30 минут в будущем по сравнению с точками данных в текущее время, то есть t = 0, что дает значения -1 ‹x‹ 1, где x - значение автокорреляции. Используя функцию автокорреляции в модуле statsmodels, мы смогли построить кривую автокорреляции для наших наборов данных (среднее слияние wx1 + wx2), как показано на рисунке 8 ниже.

Из приведенной выше кривой автокорреляции мы можем видеть, что положительная корреляция потребления энергии остается положительно коррелированной до точки данных ~ 3600, где есть провал в отрицательную корреляцию данных. Это означает, что если мы попытаемся использовать точки данных, которые не коррелированы или отрицательно коррелированы, мы можем получить неточные результаты, что также означает более плохие прогнозы. Это важно учитывать, особенно для больших наборов данных, таких как данные о потреблении энергии и температуре. Мы можем делать более точные прогнозы после фильтрации данных с некоррелированными функциями и обучать наши модели с помощью сильно коррелированных функций.

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

Выбор набора данных

Как упоминалось ранее, в рамках этого проекта мы получили от Schneider Electric данные о четырех изменениях температуры метеостанции, а также один рекорд энергопотребления Здания-126. Мы попытались отобразить тестовые потери отдельных метеостанций, то есть wx1, wx2, wx3 и wx4. Они показали аналогичные закономерности на полученной кривой потерь при тестировании. Следовательно, мы попытались использовать отдельные данные и объединили данные в простую сеть, чтобы увидеть, какие данные могут дать лучшие результаты для прогноза. Оказалось, что сплавление wx1 и wx2 показывает немного лучшие потери при тестировании по сравнению с другими комбинациями. Мы можем увидеть сравнение тестовых потерь для wx1 и слияния (wx1 и wx2) в качестве репрезентативных наборов данных (см. Таблицу 1 ниже). Это сравнение аналогично другим наборам данных, в которых предохранитель wx1 и wx2 немного лучше примерно на 0,01. Слияние данных также было выполнено для подтверждения отсутствующих значений путем взятия средней температуры из значений wx1 и wx2.

Решив использовать эти данные, мы попытались передать их в более сложную сеть и попробовали несколько способов улучшить их (рисунок 11). Однако очень поразительно видеть, что обученная модель была переобучена, и мы решили использовать модифицированный набор данных (см. Рисунок 3). Проблема переобучения была решена хорошо (рис. 12). Более подробная информация о том, как мы достигаем этого и как продвигаться дальше, будет обсуждаться в следующем разделе.

Основываясь на кривой автокорреляции, полученной выше, мы видим, что набор данных сильно коррелирован до первых 3600 точек данных. Таким образом, мы попытались использовать возможности, которые находятся в пределах этого диапазона окна. Поскольку набор данных в 3600 точек все еще очень велик, мы попытались ограничить окно менее одной неделей, то есть T-672. Мы также решили использовать Т-96, чтобы согласовать модели, наблюдаемые на рисунке 3 анализа данных.

Предварительная обработка данных

После получения набора данных путем объединения wx1 и wx2 мы нормализовали набор данных, используя среднее значение и стандартное отклонение. Формула нормализации приведена ниже:

После нормализации стойкость набора данных составила 0,371115. Эти предварительно обработанные данные затем будут случайным образом разделены на обучающую и тестовую наборы на 70% и 30% соответственно.

Возможности

Мы попробовали использовать несколько основных функций:

· Прогноз температуры на Т + 96.

· День недели по Т + 96.

· Среднее, MIN, SD, MAX при T: 0: -96.

· DIFF при T: 0: -48

Основываясь на тренде суточных данных на рисунке 6, мы можем видеть, что потребление энергии показывает общую повторяющуюся модель для каждого 24-часового интервала. Напоминая, что указанные точки данных находятся в 15-минутном интервале, мы решили использовать окно T-96 в качестве наших входных функций, но для DIFF мы используем 48 (12-часовой интервал), так как это дает лучший результат, чем 96 ( 24-часовой интервал).

Обучение

Для обучения нашей модели нейронной сети мы использовали следующие гиперпараметры:

• Размер нейронной сети 32, 64 и 128, так как проигрыш в тесте варьируется для каждого теста.

• Общее количество итераций для обучения составляет 10 000, чтобы предотвратить преждевременную остановку.

• Введите 54 размера в зависимости от количества используемых функций.

• Используемым типом решателя был «Адам», который предназначен для сглаживания градиентной траектории и стабилизации уменьшения потерь в поездах и тестах. Метод «SGD» не сработал, поскольку он имеет тенденцию обходить минимальный градиент потерь вместо самой точки минимума, что в некоторых случаях не очень хорошо.

• Сатуратор был использован для ускорения процесса достижения минимального градиента.

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

Результат для простой сети

Выходя за рамки настойчивости

Итак, как же нам добиться того, чтобы настойчивость не использовалась в качестве ориентира? Что ж, посмотрите на эти многочисленные функции, которые мы использовали ниже:

  • Используемый метод регуляризации - выпадение и «L2». Dropout будет случайным образом выбирать узлы для отключения, чтобы веса были хорошо распределены в узлах нейронной сети. «L2», с другой стороны, способствует ускорению снижения тестовых потерь. Результат можно увидеть на рисунке ниже.

  • Также были включены данные о различиях, что помогло еще больше улучшить модель. Мы пытались использовать регуляризацию и разницу, а затем наблюдали за результатом. Модель показывает себя лучше всего при использовании dropout 0,2, затухания 10–4, а для разностных характеристик мы используем 48 с 8 зазорами.

  • Импульс и сила. Импульс - это разность первого порядка, а сила - разность второго порядка. Это будет эффективно только тогда, когда используются оба входа. Мы решили не включать силу и импульс, потому что результат не лучше предыдущего.

Задержка, которую мы получили, похожа на предыдущую, но с одной разницей, поэтому вы можете обратиться к рисунку 18.

  • Масштабирование ввода и автоэнкодер. Масштабирование ввода ограничивает данные с помощью сатуратора tanh, чтобы уменьшить выбросы в наборе данных. Однако выбросы не были столь значительными в этом наборе данных, чтобы мы могли позволить ограничению быть ложным, чтобы ускорить работу сети (см. Таблицу 6). Автоэнкодер также использовался для уменьшения входных размеров, чтобы нейронная сеть была обучена игнорировать шум в наборе данных. Автоэнкодер, который мы пытаемся использовать, состоит из трех слоев, причем входной и выходной уровни должны быть одинакового размера. В этом случае (таблица 7) таблица показывает, что лучшая конфигурация использует 4 узких места, но, поскольку она также не дает действительно хорошего результата, мы решили не использовать автоэнкодер.

Таблица показывает, что нет большой разницы, использовать зажим или нет, поэтому мы просто установим зажим как ложный.

Кривая запаздывания также не показывает большой разницы с рисунком 18 с запаздыванием около ~ 0,62.

  • Потеря силы и импульса может помочь уменьшить задержку, потому что различия являются зашумленными. Мы попробовали это, потому что хотели уменьшить задержку, но похоже, что здесь нет особой разницы. У него все еще такое же отставание, как и у предыдущего.

XGBoost

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

Основываясь на описанной выше функции, мы делаем некоторые сравнения между потерей теста с использованием нейронной сети и с использованием XGBoost. Из результата видно, что в этом случае использование нейронной сети приводит к лучшим потерям в тестах. Мы можем увидеть их в таблице и на рисунках ниже.

Заключение

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

Некоторые альтернативные издержки были вовлечены в решение, какая прогностическая модель лучше всего подходит для этого проекта. Если бы мы выбрали модель с лучшим лагом, мы получили бы худшую потерю теста. С другой стороны, если бы мы предпочли лучший проигрыш в тестах, нам пришлось бы пожертвовать нашей моделью из-за плохого лага. Задержка также остается на уровне T + 96, потому что существует высокая корреляция с текущими данными. Это подтвердилось, когда мы попытались настроить точку прогноза на T + 95, а также на пиковые значения задержки на T + 95 (рисунок 24).

В целом, мы можем использовать эту модель прогнозирования для оценки энергопотребления на Т + 96 в разные сезоны в рабочие дни, чтобы мы могли эффективно управлять потребляемыми энергоресурсами.

Авторы Эндрю Вираатмаджа, Кристофер, Элизия Хо, Леонардо Ирвин Пратама и Майкл Тегу Лаксана.