Podręcznik

4. Prognozowanie obciążeń 24-godzinnych w systemie elektroenergetycznym z użyciem zespołu sieci neuronowych

4.2. Sieci neuronowe użyte w predykcji szeregu czasowego

Ważnym elementem najnowszego podejścia do prognozowania jest jednoczesne użycie wielu sieci neuronowych, wykonujących to samo zadanie przy użyciu identycznego zbioru danych pomiarowych, z którego losuje się zbiór uczący dla każdego członka zespołu [36]. Przy użyciu niezależnych predyktorów działających w oparciu o różne zasady działania i zastosowania różniących się zbiorów uczących można spodziewać się niezależnych od siebie wyników predykcji. Oznacza to, że błędy predykcji popełnione przez poszczególne układy predykcyjne będą miały różne rozkłady. Stąd uwzględnienie wszystkich wyników na raz w jednym wspólnym układzie integrującym stwarza realną szansę na kompensację pewnych błędów i w efekcie polepszenie dokładności działania całego systemu predykcyjnego.

Wybór poszczególnych predyktorów powinien uwzględniać jak największe zróżnicowane sposobu działania każdego z nich, aby wyniki predykcji były jak najbardziej niezależne od siebie. Stosować można różne rodzaje predyktorów, w tym sieć perceptronu wielowarstwowego (MLP), sieć radialną RBF, sieć Support Vector Machine (SVM), sieci rekurencyjne oraz sieć Kohonena. Pierwsze trzy predyktory należą do sieci trenowanych z nauczycielem wykorzystując w swym działaniu własność uniwersalnego aproksymatora. Sieć Kohonena jest siecią samoorganizującą i działa poprzez grupowanie danych w przestrzeni wielowymiarowej. Spośród pierwszych trzech rodzajów sieci MLP wykorzystuje sigmoidalną funkcję aktywacji neuronów, realizując aproksymację globalną. Sieć SVM o jądrze gaussowskim jest typową siecią o działaniu lokalnym, natomiast sieci rekurencyjne Elmana lub LSTM są z natury sieciami typu rekurencyjnego o całkowicie odmiennym sposobie przetwarzania danych.

Powyższe rozwiązania należą do klasycznych układów płytkich (o małej liczbie parametrów). W ostatnich latach do grona rozwiązań dołączyły sieci głębokie, takie jak sieć rekurencyjna LSTM, liczne rozwiązania sieci konwolucyjnych CNN czy autoenkoder. Powstał w ten sposób szeroki wachlarz wyboru indywidualnych predyktorów, zwiększając prawdopodobieństwo niezależności wyników predykcji każdego z nich (podstawowy warunek poprawnego działania zespołu).


14.2.1 Model predykcji przy użyciu sieci jednokierunkowej z nauczycielem

Zastosowanie modeli płytkich wymaga oddzielnego etapu przygotowania atrybutów wejściowych dla sieci predykcyjnej (cech diagnostycznych procesu) na podstawie danych pomiarowych. Jest to bardzo ważny element rozwiązania decydujący o właściwym działaniu systemu. Ten etap rozwiązania może stosować bądź rozwiązanie eksperckie (wybór cech na podstawie wiedzy eksperta ludzkiego) bądź maszynowe, na przykład z zastosowaniem transformacji PCA lub autoenkodera.

Przyjmijmy, że predykcja dotyczyć będzie obciążenia  \hat{P}(d,h)  w dniu d i godzinie h. Proponowany model nieliniowy uzależnia prognozę od typu dnia (zmienna t), pory roku, (zmienna s), wybranej liczby rzeczywistych obciążeń z dni i godzin poprzednich   \hat{P}(d-i,h-j)  oraz od samych parametrów sieci neuronowej reprezentowanych przez wektor \mathbf{w}. Ogólna postać modelu może być wyrażona wzorem [46]


\hat{P}(d, h)=f[\mathbf{w}, t, s, P(d, h-1), \ldots, P(d, h-H), P(d-1, h, \ldots, P(d-D, h-H)] (14.1)


W równaniu tym H i D reprezentują odpowiednio liczbę godzin i dni wstecz branych pod uwagę w modelu (wielkości uzależnione od wiedzy eksperta). Typ dnia koduje się zwykle binarnie w postaci zero-jedynkowej. Pora roku w naszym klimacie może być zakodowana w postaci 2 bitów (każda kombinacja 0 i 1 oznacza jedną porę roku),  \hat{P}(d,h)  reprezentuje wynik prognozy, natomiast  P(d-i,h-j)  wartości rzeczywistych obciążeń z przeszłości. Wszystkie dane muszą być znormalizowane. Zwykle wystarczy każdą kolumnę danych (cechę prognostyczną) podzielić przez największą wartość z tej kolumny. W ten sposób wszystkie kolumny będą reprezentować dane zawarte w przedziale [0, 1]. Jeśli prognoza dotyczy małego obszaru (np. rejonu energetycznego) w modelu tym można dodać jeszcze zmienną temperaturową, pod warunkiem, że tego typu dane są dostępne.

W przyjętym tu modelu matematycznym celowo została pominięta temperatura, gdyż proponowany model prognozy dotyczy globalnych wielkości obciążenia w skali kraju. Przy dużej zmienności temperatury, zwłaszcza zimą, trudno byłoby ustalić jaką temperaturę należy przyjąć w obliczeniach. Można ją łatwo dołączyć do parametrów branych pod uwagę w prognozie dotyczącej małego obszaru kraju, np. małego rejonu energetycznego. Model matematyczny prognozy zostanie wówczas wzbogacony o dodatkową zmienną przy podobnym podejściu do samej prognozy.

Szczególna struktura zastosowanego predyktora zależy od aktualnie wybranej sieci. W przypadku MLP stosującej funkcję sigmoidalną neuronów wystarczy zwykle użycie co najwyżej dwu warstw ukrytych (najczęściej jedna warstwa ukryta wystarcza) [46]. Liczba wejść sieci zależy od zastosowanego modelu predykcji, natomiast liczba wyjść jest równa liczbie prognozowanych obciążeń godzinowych (w przypadku prognozy na 24 godziny naprzód jest to liczba 24).

W przypadku zastosowania sieci RBF jako predyktora stosowana jest tylko jedna warstwa ukryta o gaussowskiej funkcji aktywacji [24], przy czym liczba neuronów ukrytych, ze względu na lokalny charakter funkcji aktywacji, jest dużo większa niż w przypadku sieci MLP. Struktura wejścia i wyjścia takiej sieci jest identyczna jak w sieci MLP.

W przypadku sieci rekurencyjnej Elmana [46] stosuje się jedną warstwę ukrytą o sigmoidalnej funkcji aktywacji posiadającej sprzężenie zwrotne z wejściem sieci, co oznacza odpowiednie zwiększenie wymiaru wejściowego sieci. Liczba zewnętrznych wejść i wyjść sieci jest identyczna jak w MLP. Uczenie obu rodzajów sieci odbywa się poprzez minimalizację różnic między wartościami historycznymi (znanymi) obciążeń a ich predykcją przy pomocy algorytmów gradientowych, na podstawie bazy danych uczących dotyczących obciążeń z przeszłości. Najczęściej używanym algorytmem jest algorytm Levenberga-Marquardta (przy małej liczbie wag) lub gradientów sprzężonych (przy bardzo dużej liczbie wag).

Sieć SVM jest specyficzną strukturą sieciową o jednym neuronie wyjściowym [59]. Z tego powodu należy zastosować w rozwiązaniu 24 takie sieci zasilane tymi samymi sygnałami wejściowymi, każda specjalizująca się w prognozie na określoną godzinę doby. Najczęściej stosowaną funkcją jądra jest funkcja gaussowska [59]. Uczenie sieci SVM prowadzone na zbiorze danych uczących identycznych jak dla MLP jest wyjątkowo efektywne ze względu na sformułowanie problemu uczenia jako zadania programowania kwadratowego. Jest ono wielokrotnie szybsze niż w przypadku sieci MLP i Elmana.

W ogólności proces prognozowania obciążenia przy zastosowaniu sieci neuronowej trenowanej z nauczycielem składa się z następujących etapów:

  • wybór danych uczących i składników wektorów wejściowych na podstawie których będzie dokonywana prognoza

  • dobór rodzaju i architektury sieci neuronowej odpowiedzialnej za predykcję

  • trening sieci neuronowej przy zastosowaniu wybranego algorytmu uczącego

  • weryfikacja działania sieci na zbiorze danych weryfikujących i przeprowadzenie ewentualnie dalszego douczenia sieci

  • użycie sieci jako predyktora obciążenia godzinnego w fazie odtworzeniowej (właściwy etap użytkowania)

  • ewentualna adaptacja sieci po upływie pewnego okresu, na przykład roku.


14.2.2 Model predykcji przy użyciu sieci Kohonena

W przypadku zastosowania w prognozowaniu sieci Kohonena wykorzystuje się jej zdolność grupowania danych w przestrzeni wielowymiarowej [46]. Dla uniknięcia problemu zróżnicowania poziomu obciążeń w różnych latach należy przeprowadzić specjalną normalizację danych, transformującą obciążenia godzinowe rzeczywiste  P(d,h)  w tak zwane profile obciążeń godzinowych  p(d,h)  definiowane wzorem


  p(d, h)=\frac{P(d, h)-P_m(d)}{\sigma(d)}   (14.2)


Pm(d) oznacza wartość średnią obciążenia dnia  d , natomiast  \sigma(d)  jest odchyleniem standardowym obciążeń godzinowych tego dnia. Zbiór 24 profili godzinowych tworzy wektor profilu obciążenia dla dnia  d ,


 \hat{\mathbf{p}}(d)=[\hat{p}(d, 1), \hat{p}(d, 2), \ldots, \hat{p}(d, 24)]^T (14.3)


definiowany dla każdego dnia roku. Sieć Kohonena jest trenowana w taki sposób, aby ograniczona liczba neuronów centralnych reprezentowała wektory profilowe z najmniejszym błędem kwantyzacji. W uczeniu wykorzystuje się algorytm Kohonena lub gazu neuronowego [46]. W wyniku tego każdy wektor profilowy z bazy danych jest przypisany do jednego wybranego neuronu zwycięzcy. Jest to neuron zwycięzca o wagach najlepiej dopasowanych do uśrednionych wag wektorów profilowych tworzących dany klaster. Reprezentuje on określoną klasę. Charakterystyczne jest, że sąsiednie wektory mają zbliżone charakterystyki profilowe. Na rys. 14.2 przedstawiono wektory profilowe 49 neuronów wytrenowanych na danych PSE z kilku ostatnich lat. Widoczne są bliskie sobie zgrupowania danych o podobnych wektorach profilowych. Potwierdza to znany w energetyce fakt podobnych profili obciążenia dla dni roboczych i zbliżone do siebie profile dla dni świątecznych.

Rys. 14.2 Ilustracja wektorów profilowych 49 neuronów samoorganizujących trenowanych na danych PSE


Podobieństwo wag neuronów położonych blisko siebie jest zrozumiałe biorąc pod uwagę mechanizm sąsiedztwa w algorytmach samoorganizacji. Oznacza to, że ten sam dzień roku w różnych latach, przy drobnych różnicach w obciążeniach godzinnych, może pobudzać różne neurony położone blisko siebie i tworzące rodzaj klastrów, grupujących podobne sobie klasy.

Nanosząc wagi neuronów zwycięzców na płaszczyznę (x, y) i przypisując każdemu z nich odpowiednie rodzaje dni, dla których zwyciężały, można zauważyć wspólne rejony obszaru charakterystyczne dla obciążeń świątecznych i osobno dla dni roboczych

Znajomość tablicy rozkładów zwycięstw poszczególnych neuronów sieci pozwala stosunkowo prosto przewidzieć profile obciążenia godzinnego dla dowolnego dnia roku z dowolnym wyprzedzeniem czasowym (znacznie ogólniejsza metoda predykcji w porównaniu z sieciami trenowanymi z nauczycielem). Przy predykcji profili tworzy się tablicę przynależności każdego dnia roku do obszaru dominacji określonego neuronu, z zaznaczeniem liczby zwycięstw neuronu dla wszystkich dni z przeszłości. Przykładowa tablica dotycząca wtorków w lipcu na przestrzeni ostatnich 5 lat przedstawiona jest poniżej (w symulacji użyto 100 neuronów, uporządkowanych w tablicy 10×10).

Tabela 14.4 BRAK PODPISU

Miesiąc

Dzień tygodnia

Neuron zwycięzca

Liczba zwycięstw

Maj

środa

56

6

Maj

środa

54

7

Maj

środa

57

5

Maj

środa

65

4

Maj

środa

47

3


Dla wyznaczenia przewidywanego profilu obciążenia aktualnego dnia (np. środa) w danym miesiącu (np. maju) przyjmuje się uśrednione wartości wag neuronów zwycięzców do których przynależał w przeszłości dany typ dnia. Jeśli liczbę zwycięstw i-tego neuronu odpowiadającą d-temu dniu oznaczymy w postaci  k_{di} , a odpowiednie wektory wagowe klasy przez \mathbf{w}_i, to przewidywany wektor profilowy dnia d-tego estymuje się według wzoru [46]


\hat{\mathbf{p}}(d)=\frac{\sum_{i=1}^n k_{d i} \mathbf{w}_i}{\sum_{i=1}^n k_{d i}} (14.4)


w którym  k_{di} = 0, jeśli określony neuron nigdy nie zwyciężył w danej klasyfikacji. Przykładowo dla danych przedstawionych w tabeli 14.1 wektor profilowy dla wszystkich śród w maju będzie określony wzorem


\mathbf{p}( środa, maj )=\frac{1}{25}\left(6 \mathbf{w}_{56}+7 \mathbf{w}_{54}+5 \mathbf{w}_{57}+4 \mathbf{w}_{65}+3 \mathbf{w}_{47}\right) (14.5)

Po określeniu wektora profilowego rzeczywiste obciążenie odpowiadające poszczególnym godzinom danego dnia oblicza się na podstawie wzoru (14.2), który tutaj przepiszemy w postaci


\hat{P}(d, h)=\hat{\sigma}(d) \hat{p}(d, h)+\hat{P}_m(d) (14.6)


We wzorze tym wielkości prognozowane oznaczone są symbolem  \hat{} . Wynika z niego, że dla uzyskania pełnej prognozy należy dodatkowo dokonać predykcji wartości średniej i odchylenia standardowego dla każdego dnia, dla którego tworzona jest prognoza. Predykcja taka może być wykonana poprzez zastosowanie analizy statystycznej wartości średnich i wariancji z przeszłości bądź przy zastosowaniu specjalnej sieci perceptronowej wytrenowanej tylko do tego celu (oddzielna sieć jednowyjściowa dla predykcji wartości średniej i oddzielana dla wariancji).

Predykcja wartości średniej i odchylenia standardowego dla konkretnego dnia przy zastosowaniu sieci MLP odbywa się w identyczny sposób jak prognoza obciążenia 24-godzinnego, z tym, że tym razem sieć ma jeden neuron wyjściowy, którego sygnał oznacza bądź wartość średnią bądź odchylenie standardowe (w zależności od prognozowanej zmiennej) prognozowane na następny dzień [46]. Wielkości wejściowe dla takich sieci są analogiczne jak dla obciążeń 24-godzinnych, z tym, że zmienne historyczne dotyczą wielkości prognozowanych (wartości średniej bądź odchylenia standardowego).

14.2.3 Prognozowanie z zastosowaniem sieci LSTM

Sieć LSTM wykorzystuje w predykcji informacje o powiązaniu sygnałów podlegających prognozie z wartościami z najbliższej przeszłości [47]. Na tej podstawie dokonywana jest prognoza. Biorąc pod uwagę ciągłość zmian szeregu czasowego reprezentującego wielkości obciążeń godzinnych sieć taka jest z natury działania dobrze przystosowana do zadania predykcji. Wielkości wejściowe sieci zawierają składowe 24-wymiarowego znanego wzorca obciążeń x(d-1) z dnia poprzedzającego predykcję. W przypadku znanych danych temperaturowych możliwe jest zwiększenie tego wymiaru poprzez dołączenie ich do wektora wejściowego.

Na etapie uczenia wektor wejściowy jest skojarzony z wektorem x(d) zadanym na wyjściu dla dnia podlegającego predykcji, tworząc parę uczącą  (\mathbf{x}(d-1), \mathbf{x}(d))  używaną w procesie uczenia sieci. Hiperparametry sieci (liczba komórek LSTM, wybór algorytmu uczącego, liczba cykli uczących, próg gradientu kończący uczenie, wartości wstępne współczynnika uczenia, itp.) są ustalane przez użytkownika przy zastosowaniu wstępnego uczenia na danych spoza zbioru uczącego.

Po wytrenowaniu sieci i zamrożeniu wartości parametrów sieć poddaje się testowaniu na danych nie uczestniczących w uczeniu. W procesie tworzenia wektora wyjściowego \mathbf{y}(d) dla dnia d na wejście sieci podawany jest wektor znanych wartości z dnia poprzedniego  \mathbf{x}(d-1) i na tej podstawie przy znanych parametrach sieci tworzona jest aktualna prognoza.

Analizując rozkłady obciążeń rocznych można łatwo zauważyć znaczące różnice w nietypowych okresach roku, na przykład w okresie Bożego Narodzenia i Nowego Roku. Dla takiego okresu należy stworzyć oddzielny model, generujący prognozę wyłącznie dla tego okresu. Problemem w tym przypadku jest bardzo mała populacja danych, które mogą być użyte w uczeniu (od tego zależy zdolność generalizacji modelu). Przykłady zastosowania sieci LSTM oraz zespołu zbudowanego z tych sieci można znaleźć w pracach [47].