Praca
Transkrypt
Praca
Wydział Podstawowych Problemów Techniki kierunek studiów: Matematyka specjalność: Matematyka finansowa i ubezpieczeniowa Praca dyplomowa - magisterska SZTUCZNA INTELIGENCJA KONTRA MODELE STATYSTYCZNE CZY SIECI NEURONOWE POTRAFIĄ LEPIEJ PROGNOZOWAĆ CENY ENERGII? Andrzej Motyka Promotor: dr inŜ. Rafał Weron ....................... imię i nazwisko Wrocław 2008 ocena ....................... podpis Sztuczna inteligencja kontra modele statystyczne 2 Spis treści Wstęp .......................................................................................................................................... 3 Rozdział 1. Sztuczne sieci neuronowe ....................................................................................... 5 1.1. Biologiczne sieci neuronowe .......................................................................................... 5 1.2. Budowa sztucznego neuronu ........................................................................................... 5 1.3. Funkcje aktywacji ........................................................................................................... 6 1.4. Architektury sieci neuronowych ..................................................................................... 7 1.5. Metody uczenia sieci neuronowych ................................................................................ 8 1.6. Algorytm propagacji wstecznej ....................................................................................... 9 Rozdział 2. Dane ...................................................................................................................... 12 2.1. Zbiór Kalifornia 1999-2000 .......................................................................................... 12 2.2. Zbiór Nord Pool 1998-1999 .......................................................................................... 14 2.3. Zbiór Nord Pool 2003-2004 .......................................................................................... 15 Rozdział 3. Modele .................................................................................................................. 16 3.1. Modele sieci neuronowych ............................................................................................ 16 3.2. Modele statystyczne ...................................................................................................... 18 3.3. Miary wykorzystane do porównania modeli ................................................................. 19 Rozdział 4. Optymalizacja modeli sieci neuronowych ............................................................ 20 4.1. Zbiór Kalifornia 1999-2000 .......................................................................................... 21 4.2. Zbiór Nord Pool 1998-1999 .......................................................................................... 24 4.3. Zbiór Nord Pool 2003-2004 .......................................................................................... 26 Rozdział 5. Porównanie sieci neuronowych i modeli statystycznych ...................................... 28 5.1. Zbiór Kalifornia 1999-2000 .......................................................................................... 28 5.1.1. Porównanie modeli bez prognozy zapotrzebowania ........................................ 28 5.1.2. Porównanie modeli uwzględniających prognozę zapotrzebowania ................ 30 5.1.3. Porównanie wszystkich modeli ........................................................................... 31 5.2. Zbiór Nord Pool 1998-1999 .......................................................................................... 34 5.3. Zbiór Nord Pool 2003-2004 .......................................................................................... 35 Rozdział 6. Podsumowanie ...................................................................................................... 37 Dodatek A. Aplikacja Electricity Price Predictor ................................................................... 39 A.1. Wymagania systemowe aplikacji ................................................................................ 39 A.2. Opis aplikacji ................................................................................................................ 39 A.3. Przygotowanie plików z danymi .................................................................................. 44 Bibliografia............................................................................................................................... 46 Sztuczna inteligencja kontra modele statystyczne 3 Wstęp W ostatnich dekadach w wielu krajach miał miejsce proces restrukturyzacji rynku energii elektrycznej. Polegał on na zastępowaniu tradycyjnych procedur sterowania rynkiem energii przez zasady wolnego rynku. Głównym celem tej transformacji było zmniejszenie cen energii poprzez wprowadzenie konkurencji [3]. Zmiany te postawiły nowe wyzwania dla uczestników rynku energii. Ceny energii charakteryzują się duŜą zmiennością, co sprawia, Ŝe uczestnicy rynku muszą zabezpieczać się przed ryzykiem związanym z duŜymi ich ruchami. W związku z tym prognozowanie cen energii stało się dla uczestników rynku energii kluczową czynnością w podejmowaniu decyzji oraz w planowaniu. Ze względu na horyzont czasowy wyróŜnia się trzy rodzaje prognozowania[16]: - krótkoterminowe (ang. short-term price forecasting - STPF); - średnioterminowe (ang. medium-term price forecasting - MTPF); - długoterminowe (ang. long-term price forecasting - LTPF). Prognozowanie długoterminowe (LTPF) jest stosowane przede wszystkim w planowaniu i analizie opłacalności inwestycji. Prognozy tego typu mogą być przydatne np. do określenia nowych lokalizacji elektrowni lub źródeł surowców wykorzystywanych do produkcji energii. Horyzont czasowy tych prognoz obejmuje z reguły kilka lat. Prognozowanie średnioterminowe (MTPF) jest wykorzystywane m.in. do zarządzania ryzykiem związanym ze zmiennością cen energii oraz do wyceny instrumentów pochodnych. Horyzont czasowy prognoz średnioterminowych mierzony jest najczęściej w miesiącach. WaŜną rolę na rynku energii odgrywają równieŜ prognozy krótkoterminowe (STPF). Ich horyzont czasowy obejmuje okresy od kilku godzin do kilku dni. Prognozy te są wykorzystywane przez elektrownie do planowania produkcji. Z kolei dla konsumentów na rynku energii przydają się one do określenia strategii kupna energii[18]. Rozwinięto wiele metod słuŜących do prognozowania cen energii elektrycznej. RóŜne podejścia moŜna podzielić na następujące grupy[18]: modele oparte na kosztach[12], metody równowagowe (zwane teŜ metodami opartymi na teorii gier) [5][10][20][21], metody fundamentalne (zwane teŜ strukturalnymi) [2][17], metody ilościowe (zwane teŜ stochastycznymi lub ekonometrycznymi) [4][8], metody statystyczne [6][7][19] oraz metody sztucznej inteligencji [1][11][15][16][22]. W niniejszej pracy skupiono się na krótkoterminowym prognozowaniu cen energii za pomocą sieci neuronowych – najpopularniejszej metody sztucznej inteligencji. Celem pracy jest porównanie dokładności prognoz uzyskanych za pomocą sztucznych sieci neuronowych z prognozami otrzymanymi przy uŜyciu modeli statystycznych. Zakres pracy objął empiryczną analizę rynków energii, implementację róŜnych modeli sieci neuronowych, ich kalibrację na historycznych danych dotyczących cen energii oraz krótkoterminowe prognozowanie cen. Finalnym punktem pracy jest porównanie otrzymanych prognoz z prognozami uzyskanymi za pomocą modeli statystycznych. W przypadku modeli statystycznych wykorzystano wyniki opublikowane w literaturze. W ramach pracy została napisana aplikacja Electricity Price Predictor, za pomocą której badano modele sieci neuronowych. Aplikacja pozwala na kalibrację sieci neuronowych, prognozowanie cen energii oraz obliczanie błędów predykcji. Dokładny opis aplikacji został zamieszczony w Dodatku A. Praca składa się z dwóch zasadniczych części: teoretycznej i praktycznej. Część teoretyczna obejmuje rozdział 1., natomiast część praktyczna – rozdziały 2. – 5. W rozdziale 1. przedstawiono podstawy teoretyczne sieci neuronowych. Rozdział drugi zawiera opis danych, które wykorzystano w eksperymentach. W trzecim rozdziale przedstawiono specyfikacje modeli sieci neuronowych i modeli statystycznych, które wykorzystano w pracy. Rozdział ten prezentuje równieŜ miary, które zastosowano do porównania prognoz otrzymanych za pomocą róŜnych modeli. W rozdziale 4. zaprezentowano wyniki optymalizacji modeli sieci neuro- Sztuczna inteligencja kontra modele statystyczne 4 nowych ze względu na liczbę i rodzaj wejść oraz ze względu na liczbę neuronów w warstwie ukrytej sieci neuronowych. Rozdział 5. zawiera natomiast porównanie prognoz otrzymanych za pomocą zoptymalizowanych modeli sieci neuronowych oraz modeli statystycznych. Ostatnim rozdziałem tej pracy jest rozdział 6., w którym zawarte zostały ogólne podsumowania i wnioski wynikające z przeprowadzonych badań. Sztuczna inteligencja kontra modele statystyczne 5 Rozdział 1. Sztuczne sieci neuronowe Rozdział ten jest poświęcony sieciom neuronowym – popularnym narzędziom sztucznej inteligencji, które wykorzystano w niniejszej pracy. Przedstawiono w nim matematyczne podstawy sieci neuronowych, ich architektury oraz metody ich trenowania. 1.1. Biologiczne sieci neuronowe Sztuczne sieci neuronowe są wzorowane na biologicznych strukturach nerwowych. Biologiczna sieć neuronowa jest zbudowana z wielu połączonych komórek nerwowych zwanych neuronami (Rys. 1.1.). Neurony komunikują się między sobą przesyłając sygnały elektryczne. Podstawowe elementy składowe neuronu to: • dendryty (ang. dendrites) – odbierają sygnały od innych neuronów lub receptorów (receptory przekształcają bodźce pochodzenia zewnętrznego na sygnały elektryczne); • ciało komórki (ang. cell body) – agreguje sygnały wejściowe i wytwarza odpowiedni sygnał wyjściowy; • akson (ang. axon)– przekazuje sygnał wyjściowy do innych komórek nerwowych. Połączenie między aksonem jednej komórki a dendrytem innej nosi nazwę synapsy. Siła sygnału elektrycznego przechodzącego przez synapsę ulega zmianie zaleŜnie od właściwości tego połączenia. Rys. 1.1. Budowa biologicznego neuronu (źródło: www.kensbiorefs.com/humphy.html) 1.2. Budowa sztucznego neuronu Rysunek 1.2. przedstawia schemat budowy sztucznego neuronu. Wagi są liczbami rzeczywistymi z zakresu [-1;1] odpowiadającymi połączeniom synaptycznym. Blok sumujący oraz blok aktywacji pełnią natomiast rolę ciała komórki nerwowej. Działanie sztucznego neuronu moŜna opisać w następujących punktach. 1) Do neuronu docierają sygnały wejściowe pochodzące z zewnątrz lub z wyjść innych neuronów 2) Sygnały są przemnaŜane przez odpowiednie wartości wag, co odpowiada przejściu sygnału elektrycznego przez synapsę w biologicznym neuronie. Sztuczna inteligencja kontra modele statystyczne 6 3) WaŜone wartości sygnałów wejściowych są sumowane w bloku sumującym. Od otrzymanej sumy odejmowana jest wartość progowa charakterystyczna dla danego neuronu. Wartość ta odpowiada minimalnemu pobudzeniu, jakiemu musi zostać poddany neuron, aby został on uaktywniony. Po odjęciu wartości progowej otrzymuje się tzw. wartość pobudzenia neuronu. 4) W bloku aktywacji obliczana jest wartość funkcji aktywacji od wartości pobudzenia neuronu. Otrzymana w ten sposób liczba stanowi wartość wyjściową neuronu. Rys. 1.2. Budowa sztucznego neuronu Matematycznie działanie sztucznego neuronu moŜna opisać następującym wzorem: N y = f ∑ w j x j − θ , j =1 (1.1) gdzie: N – liczba wejść do neuronu, xj – wartość j-tego sygnału wejściowego (j = 1, 2, ..., N), wj – j-ta waga neuronu (j = 1, 2, ..., N), θ – wartość progowa pobudzenia neuronu, f(x) – funkcja aktywacji neuronu, y – wartość wyjściowa. Sieć neuronowa jest zbiorem połączonych neuronów. Zadaniem większości sieci neuronowych jest aproksymacja pewnego odwzorowania danych wejściowych na wyjściowe. Aby sieć realizowała właściwe odwzorowanie, naleŜy dobrać odpowiednie wartości jej wag. Proces ustalania wartości wag nosi nazwę uczenia (trenowania) sieci. 1.3. Funkcje aktywacji Funkcja aktywacji neuronu moŜe przyjmować róŜne formy w zaleŜności od zadania, jakie ma on wykonywać. Najpopularniejszymi funkcjami są funkcje skokowe oraz sigmoidalne. Funkcja skokowa moŜe być typu unipolarnego lub bipolarnego. Funkcja unipolarna przyjmuje wartości 0 i 1, natomiast bipolarna – wartości -1 i 1. Stosuje się je w sieciach, w których na wyjściach neuronów sygnały mają przyjmować dwie wartości dyskretne. Skokowe funkcje aktywacji utrudniają jednak uczenie sieci ze względu na to, Ŝe nie są one róŜniczkowalne w punktach skoku. RóŜniczkowalność funkcji aktywacji jest wymagana np. w algorytmach gradientowych, które są obecnie najefektywniejszą metodą uczenia sieci neuronowych. Do algorytmów gradientowych zalicza się m.in. propagację wsteczną, która zostanie omówiona w dalszej części tego podrozdziału. Problem braku róŜniczkowalności Sztuczna inteligencja kontra modele statystyczne 7 rozwiązuje się poprzez aproksymację funkcji skokowych tzw. funkcjami sigmoidalnymi, które są róŜniczkowane na całym zbiorze liczb rzeczywistych. Funkcja sigmoidalna unipolarna przyjmuje dowolne wartości z przedziału (0,1), natomiast bipolarna przyjmuje dowolne wartości z przedziału (-1,1). Funkcję sigmoidalną unipolarną definiuje się najczęściej następująco: 1 f u ( x) = , (1.2) 1 + exp(− βx) a bipolarną tak: f b ( x ) = tgh ( β x) , (1.3) lub tak: f b ( x ) = 2 f u ( x) − 1 . Wzory te zaczerpnięto z publikacji [13]. (1.4) 1.4. Architektury sieci neuronowych Architektura sieci neuronowej określa sposób połączenia neuronów wchodzących w jej skład oraz sposób przekazywania sygnałów pomiędzy neuronami. Architektura sieci jest ściśle powiązana ze sposobem jej uczenia. PoniŜej przedstawiono podstawowe architektury sieci neuronowych: jednokierunkową sieć jednowarstwową oraz jednokierunkową sieć wielowarstwową. Sieć jednokierunkowa jednowarstwowa Jednowarstwowa jednokierunkowa sieć zbudowana jest z jednej warstwy neuronów zwanej warstwą wyjściową oraz poprzedzającej ją warstwy wejściowej składającej się z wejść do tej sieci (Rys. 1.3.). Pomiędzy warstwą wejściową a wyjściową występuje najczęściej pełne połączenie, tzn. kaŜdy węzeł wejściowy jest połączony z kaŜdym neuronem wyjściowym. Przepływ sygnałów następuje w jednym kierunku. Sygnały wejściowe podawane są z warstwy wejściowej do neuronów warstwy wyjściowej. Neurony warstwy wyjściowej wytwarzają następnie sygnały wyjściowe [13]. Rys. 1.3. Sieć neuronowa jednokierunkowa jednowarstwowa (źródło: [23]) Sztuczna inteligencja kontra modele statystyczne 8 Sieć jednokierunkowa wielowarstwowa Sieć jednokierunkowa wielowarstwowa złoŜona jest z wielu warstw. Pierwsza z nich to warstwa wejściowa składająca się z wejść do sieci, a ostatnia to warstwa wyjściowa zbudowana z neuronów. Pomiędzy nimi występuje co najmniej jedna warstwa neuronów pośrednicząca w przekazywaniu sygnałów wejściowych między węzłami wejściowymi a warstwą wyjściową. Warstwę tą nazywa się warstwą ukrytą. Rysunek 1.4. przedstawia przykładową sieć dwuwarstwową (z jedną warstwą ukrytą). Połączenia pomiędzy kolejnymi warstwami mogą być pełne (kaŜde wyjście warstwy poprzedzającej jest połączone ze wszystkimi neuronami warstwy kolejnej) lub częściowe (brak niektórych połączeń występujących w połączeniu pełnym). Przepływ sygnałów następuje w jednym kierunku: od warstwy wejściowej, poprzez kolejne warstwy ukryte neuronów i warstwę wyjściową [13]. Przy stosowaniu tego typu sieci neuronowych pojawia się problem wyboru właściwej liczby warstw ukrytych oraz liczb neuronów w poszczególnych warstwach. Z twierdzenia Kołmogorowa dotyczącego ogólnej teorii aproksymacji wynika, Ŝe dowolną funkcję ciągłą przekształcającą N-wymiarowy wektor wejściowy w M-wymiarowy wektor wyjściowy moŜna aproksymować siecią dwuwarstwową przy uŜyciu co najwyŜej (2N+1) neuronów w warstwie ukrytej [13]. Twierdzenie to ma swoje odzwierciedlenie w praktyce, poniewaŜ okazuje się, Ŝe do większości problemów sieci o jednej warstwie ukrytej dają najlepsze rezultaty. Rys. 1.4. Sieć neuronowa jednokierunkowa dwuwarstwowa (źródło: [23]) 1.5. Metody uczenia sieci neuronowych Uczenie sieci neuronowej ma na celu takie ustalenie wartości wag poszczególnych jej neuronów, aby przekształcała ona odpowiednio dane wejściowe w wyjściowe. Uczenie polega na wielokrotnym powtarzaniu cyklu, w którym wagi sieci są modyfikowane. Kolejne modyfikacje wag mają przyczyniać się do lepszego dostosowania sieci do zadania, które ma ona wykonywać. WyróŜnia się trzy podstawowe podejścia do uczenia sieci neuronowych: uczenie nadzorowane (ang. supervised learning), uczenie z krytykiem lub wzmocnieniem (ang. reinforcement learning) oraz uczenie nienadzorowane (ang. unsupervised learning)[14]. W przypadku uczenia nadzorowanego dane uczące są parami składającymi się z wektorów wejściowych oraz odpowiadających im wektorów wyjściowych. Uczenie polega na takim modyfikowaniu wartości wag sieci, aby potrafiła ona odwzorowywać wektory wej- Sztuczna inteligencja kontra modele statystyczne 9 ściowe w wyjściowe z zadaną dokładnością. Najczęściej modyfikację wag przeprowadza się w taki sposób, aby minimalizować określoną funkcję oceny. W uczeniu z krytykiem w kaŜdym cyklu uczenia odpowiedź sieci na dany wektor wejściowy ocenia się jako pozytywną lub negatywną. JeŜeli sieć odpowiada pozytywnie, to modyfikuje się wagi w ten sposób, aby wzmocnić działanie sieci w tym kierunku. JeŜeli natomiast sieć daje odpowiedź negatywną, to modyfikacja wag ma na celu zmniejszenie działania sieci w danym kierunku. Uczenie nienadzorowane charakteryzuje się natomiast tym, Ŝe dla podawanych wektorów wejściowych nie Ŝąda się odpowiednich wartości zwracanych przez sieć, ani nie ocenia się, czy odpowiedzi sieci są pozytywne, czy negatywne. Podaje się jedynie wartości wejściowe, a sieć sama, zaleŜnie od specyfiki metody uczenia, znajduje pewne zaleŜności w otrzymywanych danych. 1.6. Algorytm propagacji wstecznej Najpopularniejszym algorytmem uczenia sieci neuronowych jest algorytm propagacji wstecznej. Zalicza się go do algorytmów uczenia nadzorowanego. Jest on przeznaczony do trenowania sieci jednokierunkowych wielowarstwowych zwanych teŜ perceptronami wielowarstwowymi. Propagacja wsteczna polega na iteracyjnym przetwarzaniu poszczególnych wzorców pochodzących ze zbioru uczącego z jednoczesnym porównywaniem odpowiedzi sieci na kolejne dane wejściowe z Ŝądanymi wartościami wyjściowymi. Dla kaŜdego wzorca uczącego wagi sieci są modyfikowane tak, aby minimalizować błąd pomiędzy odpowiedziami sieci a wartościami Ŝądanymi. Ze względu na konieczność obliczania pochodnych funkcji aktywacji w algorytmie tym przyjmuje się, Ŝe funkcje te są typu sigmoidalnego (patrz wzory: (1.2), (1.3) i (1.4)). Błąd między wartościami Ŝądanymi a otrzymywanymi na wyjściu sieci dla wszystkich wzorców uczących mierzy się za pomocą tzw. funkcji celu. Niech {(xp,yp)}p=1,2,...,P będzie zbiorem wzorców uczących, gdzie xp jest p-tym wektorem wejściowym, a yp – odpowiadającym mu wektorem wyjściowym. Niech xp=[xp1, xp2,..., xpN] oraz yp=[yp1, yp2,..., ypM]. Ponadto o o o o niech o p = [o p1 ,o p 2 ,...,opM ] będzie odpowiedzią sieci na p-ty wzorzec wejściowy. Funkcję celu definiuje się najczęściej w postaci: 1 P M E = ∑∑ ( y pk − o opk ) 2 . (1.5) 2 p =1 k =1 PoniŜej przedstawiony został algorytm propagacji wstecznej dla dwuwarstwowego perceptronu. Algorytm opracowano na podstawie pozycji [9]. W opisie algorytmu wykorzystuje się następujące oznaczenia: N - liczba wejść sieci, L - liczba neuronów warstwy ukrytej, M - liczba neuronów warstwy wyjściowej, P - liczba wzorców uczących, x p - p-ty wektor wejściowy, xp =[xp1, xp2,..., xpN], whji - i-ta waga j-tego neuronu warstwy ukrytej, θ hj - wartość progowa pobudzenia j-tego neuronu warstwy ukrytej, f jh - funkcja aktywacji j-tego neuronu warstwy ukrytej, 10 Sztuczna inteligencja kontra modele statystyczne f jh' - pochodna funkcji aktywacji j-tego neuronu warstwy ukrytej, wkjo - j-ta waga k-tego neuronu warstwy wyjściowej, θ ko - wartość progowa pobudzenia k-tego neuronu warstwy wyjściowej, f ko - funkcja aktywacji k-tego neuronu warstwy wyjściowej, f ko ' - pochodna funkcji aktywacji k-tego neuronu warstwy wyjściowej, η - współczynnik uczenia (liczba rzeczywista z przedziału (-1;1)). Inne oznaczenia zostały wyjaśnione w opisie algorytmu. Algorytm 1) Zainicjować wagi i wartości progowe dla wszystkich neuronów sieci oraz ustalić ε - dopuszczalny błąd na wyjściu sieci (ustalenie początkowych wartości wag i wartości progowych polega najczęściej na wylosowaniu ich wartości). 2) Podać na wejście sieci kolejny p-ty wektor wejściowy xp. 3) Dla kaŜdego neuronu w warstwie ukrytej obliczyć wartość pobudzenia: N i hj = ∑ w hji x pi + θ jh . (1.6) 4) Dla kaŜdego neuronu w warstwie ukrytej obliczyć wartość sygnału wyjściowego: o hj = f jh (i hj ) . 5) Dla kaŜdego neuronu w warstwie wyjściowej obliczyć wartość pobudzenia: (1.7) i =1 L iko = ∑ wkjo o hj + θ ko . (1.8) j =1 6) Dla kaŜdego neuronu w warstwie wyjściowej obliczyć wartość sygnału wyjściowego: o ko = f ko (i ko ) . (1.9) 7) Dla kaŜdego neuronu w warstwie wyjściowej obliczyć błąd wartości pobudzenia: δ ko = ( y k − o ko ) f ko ' (i ko ) . (1.10) 8) Dla kaŜdego neuronu w warstwie ukrytej obliczyć błąd wartości pobudzenia: M δ hj = ∑ δ ko wkjo f jh ' (i hj ) . (1.11) k =1 9) Uaktualnić wagi w warstwie wyjściowej: wkjo (t + 1) = wkjo (t ) + ηδ ko o hj . (1.12) 10) Uaktualnić wagi w warstwie ukrytej: whji (t + 1) = whji (t ) + ηδ jh x pi . (1.13) 11) Obliczyć błąd odpowiedzi sieci dla p-tego wzorca: 1 M E p = ∑ ( y pk − oko ) 2 . (1.14) 2 k =1 12) JeŜeli wyczerpał się zbiór wzorców uczących, przejść do kroku 13. W przeciwnym wypadku przejść do kroku 2. 13) Obliczyć sumaryczny błąd odpowiedzi sieci dla wszystkich wzorców uczących: P E = ∑ Ep . p (1.15) Sztuczna inteligencja kontra modele statystyczne 11 14) JeŜeli E ≤ ε , to zakończyć uczenie. W przeciwnym wypadku powtórzyć cały cykl pomijając punkt 1. algorytmu. W kaŜdym kolejnym cyklu wzorce uczące podaje się w innej kolejności. Zapobiega to uwraŜliwieniu sieci neuronowej na kolejność wzorców. Właściwą wartość współczynnika uczenia η dobiera się eksperymentalnie. Zbyt duŜe jego wartości powodują, Ŝe sieć nie jest w stanie dokładnie aproksymować odwzorowania. Natomiast wartości zbyt małe znacznie wydłuŜają proces trenowania sieci. Eksperymentalnie ustala się równieŜ dopuszczalny błąd na wyjściu sieci ε . Zbyt duŜa jego wartość sprawia bowiem, Ŝe sieć niedokładnie aproksymuje odwzorowanie. Wartość zbyt mała moŜe spowodować zbytnie dopasowanie sieci do danych treningowych lub moŜe sprawić, Ŝe warunek stopu (patrz punkt 14. algorytmu) nigdy nie zostanie spełniony. Sztuczna inteligencja kontra modele statystyczne 12 Rozdział 2. Dane Do eksperymentów wykorzystano dane pochodzące z dwóch rynków energii: rynku kalifornijskiego oraz rynku Nord Pool. Identycznych danych uŜyto w artykule [19], w którym opublikowano wyniki prognoz dla modeli statystycznych. Do eksperymentów wybrano te same zbiory danych, aby móc porównać sieci neuronowe i wykorzystane w publikacji [19] modele statystyczne w kontekście prognozowania cen energii. Dane dotyczące rynku kalifornijskiego obejmują ceny energii oraz wielkości zapotrzebowania na energię z lat 1999 – 2000. Ceny na tym rynku są zróŜnicowane: występują zarówno ustabilizowane okresy cen, jak i okresy, w których pojawiają się ekstremalne piki. Dane z rynku Nord Pool cechuje natomiast zdecydowanie mniejsza zmienność. Energia na tym rynku pochodzi głównie z elektrowni wodnych, co sprawia, Ŝe ceny są zaleŜne nie tylko od zapotrzebowania na energię, ale równieŜ od wielkości rezerw wody. W przypadku rynku Nord Pool wykorzystano dane z dwóch okresów: pierwszy obejmuje lata 1998 – 1999, a drugi - lata 2003 – 2004. W okresie pierwszym występowały duŜe rezerwy wody, natomiast w drugim – małe[19]. 2.1. Zbiór Kalifornia 1999-2000 Zbiór ten zawiera godzinne ceny MCP (ang. Market Clearing Prices) z giełdy energii California Power Exchange, godzinne wartości zapotrzebowania na energię na rynku kalifornijskim oraz prognozy zapotrzebowania wybiegające jeden dzień w przyszłość. Wartości tych prognoz są publikowane przez instytucję California Independent System Operator (CAISO). Ceny energii moŜna pobrać ze strony internetowej instytutu UCEI (www.ucei.berkeley.edu), natomiast prognozy zapotrzebowania - ze strony internetowej CAISO (oasis.caiso.com.pl). Rysunek 2.1. przedstawia wykresy cen energii oraz zapotrzebowania. Wykres prognozy zapotrzebowania nie został przedstawiony, poniewaŜ przy tej rozdzielczości rysunku nie byłoby widać róŜnicy między nim a wykresem rzeczywistego zapotrzebowania. Dane zostały podzielone na dwa zakresy: I i II. Zakres I obejmuje dni 5.07.1999 r. – 2.04.2000 r., natomiast zakres II – dni 3.04.2000 r. – 11.06.2000 r. Dane z zakresu I wykorzystano wyłącznie do kalibracji sieci neuronowych. Dane z zakresu II zastosowano zarówno do kalibracji, jak i do testowania modeli. Dla kaŜdego dnia z drugiego okresu prognozowano godzinne ceny energii dla dnia następnego. Prognozowanie wykonywano w następujący sposób: jeŜeli prognozowano ceny dla dnia T + 1 (gdzie T + 1 jest pewnym dniem z okresu drugiego), to do kalibracji modeli wykorzystano dane od początku okresu pierwszego aŜ do dnia T. Jeśli więc T + 1 nie był pierwszym dniem okresu drugiego, to do kalibracji uŜyto równieŜ dane z okresu drugiego. Sztuczna inteligencja kontra modele statystyczne Rys. 2.1. Wykresy cen energii oraz zapotrzebowania dla zbioru Kalifornia 1999-2000 (zbiór obejmuje ceny z dni 5.07.1999 r. – 11.06.2000 r.; źródło: [19]) 13 14 Sztuczna inteligencja kontra modele statystyczne 2.2. Zbiór Nord Pool 1998-1999 Zbiór ten zawiera godzinne ceny MCP z nordyckiej giełdy energii Nord Pool. Dane dotyczące zapotrzebowania na energię nie były dostępne. Rysunek 2.2. przedstawia wykres cen wykorzystanych w badaniach. Wykorzystano ceny z okresu 6.04.1998 r. – 5.12.1999 r. W okresie tym wybrano cztery okresy testowe przeznaczone do oceny prognoz uzyskiwanych za pomocą sieci neuronowych (Tab. 2.1.). O takim wyborze okresów testowych zadecydowała chęć sprawdzenia prognoz cen w róŜnych porach roku. W róŜnych porach roku ceny bowiem wykazują odmienne zachowanie. Rys. 2.2. Wykresy cen energii dla zbioru Nord Pool 1998-1999 (źródło: [19]) Oznaczenie okresu Okres II 01.02.1999 r. – 07.03.1999 r. V 26.04.1999 r. – 30.05.1999 r. VIII 02.08.1999 r. – 05.09.1999 r. XI 01.11.1999 r. – 05.12.1999 r. Tab. 2.1. Okresy testowe dla zbioru danych Nord Pool 1998-1999 Schemat kalibracji i testowania modeli był analogiczny jak w przypadku zbioru Kalifornia 1999–2000. Ceny prognozowano dla dni zawartych w okresach testowych (Tab. 2.1.) Do kalibracji kaŜdego modelu wykorzystano ceny od dnia 6.04.1998 r. aŜ do dnia poprzedzającego dzień, dla którego prognozowano ceny. 15 Sztuczna inteligencja kontra modele statystyczne 2.3. Zbiór Nord Pool 2003-2004 W eksperymentach wykorzystano równieŜ zbiór danych zawierający ceny pochodzące z rynku nordyckiego z lat 2003-2004. Rysunek 2.3. przedstawia wykres cen z tego zbioru. Wykorzystano ceny z okresu 7.04.2003 r. – 5.12.2004 r. Podobnie jak w przypadku zbioru Nord Pool 1998–1999 wybrano cztery okresy testowe przeznaczone do oceny modeli. Zostały one przedstawione w tabeli 2.2. Zastosowano równieŜ ten sam schemat kalibracji i testowania modeli. Rys. 2.3. Wykresy cen energii dla zbioru Nord Pool 2003-2004 (źródło: [19]) Oznaczenie okresu Okres II 26.01.2004 r. – 29.02.2004 r. V 26.04.2004 r. – 30.05.2004 r. VIII 26.07.2004 r. – 29.08.2004 r. XI 01.11.2004 r. – 05.12.2004 r. Tab. 2.2. Okresy testowe dla zbioru danych Nord Pool 2003-2004 Sztuczna inteligencja kontra modele statystyczne 16 Rozdział 3. Modele Rozdział ten zawiera specyfikacje modeli sieci neuronowych, które wykorzystano do prognozowania cen energii. Ponadto opisano w nim modele statystyczne, z którymi porównano sieci neuronowe w dalszej części pracy. Ostatni podrozdział zawiera opis miar, które wykorzystano do porównania prognoz otrzymywanych za pomocą róŜnych modeli. 3.1. Modele sieci neuronowych W eksperymentach wykorzystano sieci neuronowe jednokierunkowe: jednowarstwowe oraz dwuwarstwowe zwane popularnie perceptronami jedno- i dwuwarstwowymi (patrz Rozdział 1.). Do ich trenowania zastosowano algorytm propagacji wstecznej. Badano sieci z dwoma funkcjami aktywacji opisanymi wzorami (1.2) i (1.3). Sieci wykorzystujące funkcje aktywacji postaci (1.3) dawały zdecydowanie lepsze rezultaty i z tego powodu w dalszej części pracy tylko takie sieci rozwaŜono. Wspólną cechą architektury wszystkich badanych sieci neuronowych jest to, Ŝe wszystkie one miały jeden neuron w warstwie wyjściowej. Na wyjściu tego neuronu otrzymywano prognozę ceny energii na określoną godzinę. Badano natomiast modele z róŜną liczą wejść i róŜnym rodzajem danych podawanych na wejścia. Na wejścia sieci podawano następujące rodzaje danych: • • • • • historyczne ceny energii, historyczne wartości zapotrzebowania oraz prognozy zapotrzebowania (dane te były dostępne tylko dla rynku kalifornijskiego), dzień tygodnia, godzinę, minimalną cenę energii spośród cen z dnia poprzedzającego dzień, dla którego wykonywano prognozę. Za względu na sposób prognozowania wszystkie badane modele moŜna podzielić na dwie grupy. Modele z pierwszej grupy cechuje to, Ŝe były one kalibrowane oddzielnie dla kaŜdej godziny tzn. za pomocą raz skalibrowanego modelu naleŜącego do tej grupy prognozowano cenę tylko dla jednej godziny. śeby więc uzyskać prognozę na wszystkie 24 godziny określonego dnia, trzeba było wykonać 24 razy kalibrację modelu. Modele naleŜące do tej grupy posiadają w nazwach liczbę 1. Modele naleŜące do grupy drugiej były kalibrowane raz dla 24 godziny. Przy uŜyciu raz skalibrowanego modelu z grupy drugiej prognozowano wszystkie 24 ceny dla określonego dnia. JeŜeli do wykonania prognozy ceny na określoną godzinę określonego dnia model wymagał ceny z godziny wcześniejszej tego dnia, na wejście modelu podawano wówczas prognozę ceny wykonaną wcześniej za pomocą tego samego modelu. W nazwach modeli z grupy drugiej występuje liczba 24. Modele moŜna równieŜ podzielić ze względu na to, czy na ich wejścia podawano wartości prognozy zapotrzebowania. Modele uwzględniające tę prognozę posiadają w nazwie literę „X”, natomiast pozostałe modele tej litery w nazwach nie posiadają. 17 Sztuczna inteligencja kontra modele statystyczne Tabele 3.1. i 3.2. przedstawiają wejścia dla modeli, które uwzględniono w dalszej części niniejszej pracy. Do opisu wejść wykorzystano następujące oznaczenia: - logarytm z ceny energii dla godziny t, - logarytm z prognozy zapotrzebowania dla godziny t, - zmienna przyjmująca wartość 1, jeŜeli model prognozuje cenę energii dla dnia d, albo wartość 0, jeŜeli model prognozuje cenę dla dnia innego niŜ d, - zmienna przyjmująca wartość 1, jeŜeli model prognozuje cenę dla godziny h, albo wartość 0, jeŜeli model prognozuje cenę dla godziny innej niŜ h, - minimalna cena energii spośród cen z dnia poprzedzającego dzień, dla którego model prognozuje cenę. Na wejścia sieci neuronowych podawano zlogarytmowane wartości cen, poniewaŜ znacznie polepszało to dokładność prognoz (transformacja logarytmiczna zredukowała wariancję cen). Wartości prognozy zapotrzebowania równieŜ poddano transformacji logarytmicznej, poniewaŜ pomiędzy cenami i prognozami istniała w przybliŜeniu liniowa zaleŜność [19]. Modele MLP1TS, MLP1TSX, MLP24TS oraz MLP24TSX mają takie same wejścia jak modele szeregów czasowych, z którymi porównano sieci neuronowe. Od tych modeli rozpoczęto badania. Poprzez modyfikacje ich wejść znaleziono modele, które dają lepsze prognozy. Nowe modele oznaczono skrótami: MLP1, MLP1X, MLP24 i MLP24X. Model Wejścia MLP1TS , , , , , , MLP1TSX , , , , , , , MLP1 , , , , , Ś , , , , MLP1X , , , , , Ś , , , , , Tab 3.1. Modele sieci neuronowych kalibrowane oddzielnie dla kaŜdej godziny Model Wejścia MLP24TS , , , , , , MLP24TSX , , , , , , , MLP24 , , , , , Ś , , , , , , ,…, MLP24X , , , , , Ś , , , , , , ,…, , Tab 3.2. Modele sieci neuronowych kalibrowane raz dla 24 godzin Sztuczna inteligencja kontra modele statystyczne 18 3.2. Modele statystyczne W niniejszej pracy porównano prognozy cen energii otrzymane za pomocą sieci neuronowych i modeli statystycznych. Wyniki dla modeli statystycznych pobrano z publikacji [19]. Wykorzystano w niej następujące modele statystyczne: • model autoregresyjny (ang. autoregressive model ) - AR; • progowy model autoregresyjny (ang. threshold autoregressive model) - TAR; • powracający do średniej proces skokowej dyfuzji (ang. mean-reverting jump diffusion process) - MRJD; • semiparametryczne modele autoregresyjne (ang. semiparametric autoregressive models) - IHMAR i SNAR. W przypadku kaŜdego z tych modeli uwzględniono dwa warianty: wariant, w którym uwzględniano prognozę zapotrzebowania oraz wariant, w którym zapotrzebowania nie uwzględniano. Podobnie jak w przypadku sieci neuronowych modele uwzględniające prognozę zapotrzebowania posiadają w nazwie dodatkową literę „X”. PoniŜej przedstawiono specyfikacje modeli statystycznych. Modele AR i ARX Zastosowany model autoregresyjny ARX miał następującą strukturę: pt = Φ1 pt −24 + Φ 2 pt −48 + Φ 3 pt −168 + Φ 4 mpt + . + Ψ1Z t + d1 DPon + d 2 DSob + d 3 DNd + ε t (3.1) W modelu AR Ψ 0. Do estymacji parametrów modeli ARX i AR przyjęto minimalizację kryterium FPE (ang. Final Prediction Error)[19]. Modele TAR i TARX Struktura progowego modelu autoregresyjnego TARX ma postać: pt = Φ1,i pt −24 + Φ 2,i pt −48 + Φ 3,i pt −168 + Φ 4,i mpt + (3.2) + Ψ1,i Z t + d1,i DPon + d 2,i DSob + d 3,i DNd + ε t ,i gdzie i jest równe 1 (jeŜeli ! 0) lub 2 (jeŜeli " 0), a jest róŜnicą średniej ceny z dnia poprzedzającego dzień, dla którego prognozowano cenę, oraz średniej ceny sprzed ośmiu dni. Model TAR otrzymuje się poprzez podstawienie: Ψ,# 0. Parametry estymowano równieŜ poprzez minimalizację kryterium FPE[19]. 19 Sztuczna inteligencja kontra modele statystyczne Modele MRJD i MRJDX Model MRJDX dany jest poprzez następujące równanie: pt = Φ1 pt −24 + Ψ1Zt + d1DPon + d2 DSob + d3 DNd + ε t ,i (3.3) gdzie i jest równe 1 (jeŜeli nie było skoku procesu Poissona) lub 2 (jeŜeli wystąpił skok procesu Poissona), $, ~&'0, ( ), $, ~&'*, ( + , ). Przyjmując Ψ 0 otrzymuje się model MRJD. Parametry modelu oszacowano metodą największej wiarogodności (ML)[19]. Modele IHMAR, IHMARX, SNAR i SNARX Modele semiparametryczne IHMARX i SNARX miały taką samą strukturę jak model ARX (patrz wzór (3.1)), a modele IHMAR i SNAR – strukturę taką jak model AR. Dla tych modeli inaczej natomiast estymowano parametry. W przypadku modeli IHMARX i IHMAR wykorzystano iteracyjny estymator Hsieh-Manskiego, natomiast w przypadku modeli SNARX i SNAR – wygładzony nieparametryczny estymator ML (ang. smoothed nonparametric ML estymator)[19]. 3.3. Miary wykorzystane do porównania modeli Do porównania prognoz otrzymanych za pomocą róŜnych modeli zastosowano kilka miar. NajwaŜniejszą z nich jest miara zwana średnim tygodniowym błędem prognozy. Oznaczana będzie ona skrótem MWE (ang. Mean Weekly Error). Zdefiniowana jest następująco: ^ Pt − P t 1 168 (3.4) , ∑ 168 t =1 P_ 168 gdzie - jest rzeczywistą ceną energii w chwili t, -. jest prognozą ceny energii w chwili t, a -/ – średnią arytmetyczną cen z całego tygodnia. Za pomocą miary MWE mierzy się tygodniowy błąd prognozy. PoniewaŜ jednak modele porównywano na przedziałach czasu obejmujących wiele tygodni, wprowadzono trzy /////// - jest liczona jako dodatkowe miary bazujące na mierze MWE. Pierwsza z nich - miara MWE średnia arytmetyczna wartości MWE z poszczególnych tygodni. Drugą miarą jest MDFB (ang. Mean Deviation From the Best). Jest ona zdefiniowana następująco: MWE = 345 ∑6E839:#, ; 39:<=>?@AB C?>, D, 6 (3.5) gdzie i numerem modelu, T jest liczbą tygodni okresu, dla którego modele były porównywane, 39:#, jest wartością miary MWE dla i-tego modelu w t-tym tygodniu, a 39:<=>?@AB C?>, jest wartością miary MWE dla najlepszego modelu w t-tym tygodniu. Przez najlepszy model w określonym tygodniu rozumie się model, dla którego MWE przyjmuje najmniejszą wartość. Miara MDFB jest więc równa średniemu odchyleniu wartości MWE dla danego modelu od wartości MWE dla modelu najlepszego. Trzecia miara nosi nazwę #BEST. Określa ona, dla ilu tygodni określony model był najlepszy (tzn. miał najmniejszą wartość miary MWE). Sztuczna inteligencja kontra modele statystyczne 20 Rozdział 4. Optymalizacja modeli sieci neuronowych W rozdziale tym przedstawione zostaną wyniki optymalizacji sieci neuronowych. Optymalizacja objęła znalezienie optymalnej liczby i rodzaju wejść do sieci neuronowych, a takŜe ustalenie optymalnej liczby neuronów w warstwach ukrytych rozwaŜanych sieci. W przeprowadzonych eksperymentach badano modele z róŜną liczbą i róŜnym rodzajem wejść. Badania rozpoczęto od modeli, które na wejściach otrzymywały takie same dane, jak modele statystyczne, z którymi sieci neuronowe porównano. Do modeli tych naleŜą: MLP24TS, MLP24TSX, MLP1TS oraz MLP1TSX. Dokładna specyfikacja tych modeli została umieszczona w rozdziale 3. Liczbę i rodzaj wejść w tych modelach modyfikowano i sprawdzano, jak wpływa to na dokładność prognoz. Ostatecznie udało się znaleźć modele, które dają prognozy dokładniejsze niŜ modele wzorowane na modelach szeregów czasowych. Znalezione modele oznaczono skrótami: MLP24, MLP24X, MLP1 oraz MLP1X. W optymalizacji modeli wzięto teŜ pod uwagę liczbę neuronów w warstwie ukrytej sieci neuronowych, poniewaŜ wpływa ona na zdolność sieci neuronowych do uogólniania nabytej wiedzy. Uogólnianie wiedzy polega na tym, Ŝe sieć potrafi skojarzyć nabytą w trakcie uczenia wiedzę i dawać dobre wyniki na danych, które nie uczestniczyły w procesie uczenia. O zdolności sieci neuronowej do uogólniania wiedzy decyduje w sposób istotny liczba neuronów w warstwie ukrytej. JeŜeli warstwa ukryta jest zbyt liczna, sieć neuronowa bardzo dokładnie dopasowuje się do danych uczących wykorzystując do tego jedynie część wag. Pozostałe wagi mają natomiast losowe wartości. Sprawia to, Ŝe na nowych danych sieć moŜe dawać niepoprawne wyniki. Zbyt mała liczba neuronów w warstwie ukrytej teŜ niekorzystna, poniewaŜ liczba wag moŜe być wówczas za mała, aby właściwie aproksymować odwzorowanie. Właściwa liczność warstwy ukrytej zaleŜy w duŜym stopniu od rozwiązywanego problemu. NaleŜy ją dobrać tak, aby na danych testowych sieć dawała moŜliwie najdokładniejsze wyniki. W dalszej części tego rozdziału przedstawiona zostanie analiza wpływu liczby neuronów w warstwie ukrytej sieci na wielkość błędów prognozy. Uwzględniono w niej modele o zoptymalizowanych wejściach (MLP24, MLP24X, MLP1, MLP1X) oraz ich odpowiedniki wzorowane na modelach statystycznych (MLP24TS, MLP24TSX, MLP1TS, MLP1TSX). Wyniki dla modeli z drugiej grupy przedstawiono w celu pokazania, Ŝe prognozy uzyskane za ich pomocą są mniej dokładne niŜ przy uŜyciu modeli z grupy pierwszej. Analizę przeprowadzono oddzielnie dla kaŜdego z trzech zbiorów danych. Dla poszczególnych modeli ustalono liczby neuronów, dla których dawały one najdokładniejsze prognozy. 21 Sztuczna inteligencja kontra modele statystyczne 4.1. Zbiór Kalifornia 1999-2000 ____ MWE MLP24TS MLP24 14,6 14,4 14,2 14,0 13,8 13,6 13,4 13,2 13,0 12,8 0 1 2 3 4 5 10 Liczba neuronów /////// dla modeli MLP24TS i MLP24 Rys. 4.1. Wykres wartości miary 39: w zaleŜności od liczby neuronów w warstwie ukrytej sieci ____ MWE MLP24TSX MLP24X 14,6 14,4 14,2 14,0 13,8 13,6 13,4 13,2 13,0 12,8 0 1 2 3 4 5 10 Liczba neuronów Rys. 4.2. Wykres wartości miary /////// 39: dla modeli MLP24TSX i MLP24X w zaleŜności od liczby neuronów w warstwie ukrytej sieci 22 Sztuczna inteligencja kontra modele statystyczne ____ MWE MLP1TS MLP1 14,6 14,4 14,2 14,0 13,8 13,6 13,4 13,2 13,0 12,8 0 1 2 3 4 5 10 Liczba neuronów /////// dla modeli MLP1TS i MLP1 Rys. 4.3. Wykres wartości miary 39: w zaleŜności od liczby neuronów w warstwie ukrytej sieci ____ MWE MLP1TSX MLP1X 14,6 14,4 14,2 14,0 13,8 13,6 13,4 13,2 13,0 12,8 0 1 2 3 4 5 10 Liczba neuronów Rys. 4.4. Wykres wartości miary /////// 39: dla modeli MLP1TSX i MLP1X w zaleŜności od liczby neuronów w warstwie ukrytej sieci Sztuczna inteligencja kontra modele statystyczne 23 Wnioski: W przypadku zbioru Kalifornia 1999-2000 dla modeli MLP24, MLP24X i MLP1 zaleŜności błędu prognozy od liczby neuronów w warstwie ukrytej są podobne (Rys. 4.1., Rys. 4.2. i Rys. 4.3.). Wraz ze wzrostem liczby neuronów błąd początkowo spada, a następnie - po osiągnięciu minimum – zaczyna wzrastać. Jest to zgodne z oczekiwaniami. Dla zbyt małej liczby neuronów w warstwie ukrytej sieć moŜe bowiem nie być w stanie wyuczyć się wszystkich zaleŜności występujących w danych historycznych. Natomiast w przypadku zbyt duŜej liczby neuronów wartości niektórych wag pozostają losowe, co sprawia, Ŝe dla nowych danych sieć taka daje prognozy obarczone większymi błędami. W przypadku modeli MLP24, MLP24X i MLP1 minimalny błąd predykcji jest osiągnięty dla jednego neuronu w warstwie ukrytej. Uznano zatem, Ŝe dla zbioru Kalifornia 1999-2000 optymalną liczbą neuronów w warstwie ukrytej dla tych trzech modeli jest 1. Nieco inną zaleŜność widać w przypadku modelu MLP1X (Rys. 4.4.). Najdokładniejsze prognozy daje on wtedy, gdy nie posiada w ogóle warstwy ukrytej. Wraz ze wzrostem liczby neuronów w warstwie ukrytej błąd wykazuje tendencję wzrostową, choć wzrost ten nie jest juŜ tak wyraźny jak w przypadku modeli MLP24, MLP24X i MLP1. Dla zbioru Kalifornia 1999-2000 przyjęto więc, Ŝe optymalny model MLP1X nie posiada warstwy ukrytej. Dla modeli MLP24TS, MLP24TSX, MLP1TS i MLP1TSX zaleŜności błędu prognozy od liczby neuronów w warstwie ukrytej są analogiczne jak w przypadku odpowiadających im modeli MLP24, MLP24X, MLP1 i MLP1X (róŜnica polega głównie na wielkości tych błędów). Optymalną liczbą neuronów w warstwie ukrytej dla modeli MLP24TS, MLP24TSX i MLP1TS jest więc 1, a dla modelu MLP1TSX – 0. Na kaŜdym z rysunków 4.1. – 4.4. widać, Ŝe prawie dla wszystkich badanych liczności warstwy ukrytej sieci neuronowych, modele MLP24TS, MLP24TSX, MLP1TS, MLP1TSX dały mniej dokładne prognozy niŜ odpowiadające im modele MLP24, MLP24X, MLP1, MLP1X. Zdarzyły się co prawda sytuacje, w których dla modelu z pierwszej grupy wartość /////// była mniejsza niŜ dla odpowiadającego modelu z grupy drugiej. Widać to na miary MWE przykład na rysunku 4.4. dla czterech neuronów w warstwie ukrytej. Pomimo to dla optymalnych liczb neuronów w warstwie ukrytej modele z grupy drugiej zawsze dawały dokładniejsze prognozy niŜ modele z grupy pierwszej. 24 Sztuczna inteligencja kontra modele statystyczne 4.2. Zbiór Nord Pool 1998-1999 MLP24TS MLP24 5,4 5,2 ____ MWE 5,0 4,8 4,6 4,4 4,2 4,0 0 1 2 3 4 5 6 7 8 9 Liczba neuronów /////// dla modeli MLP24TS i MLP24 Rys. 4.5. Wykres wartości miary 39: w zaleŜności od liczby neuronów w warstwie ukrytej sieci MLP1TS MLP1 5,4 5,2 ____ MWE 5,0 4,8 4,6 4,4 4,2 4,0 0 1 2 3 4 5 6 Liczba neuronów /////// dla modeli MLP1TS i MLP1 Rys. 4.6. Wykres wartości miary 39: w zaleŜności od liczby neuronów w warstwie ukrytej sieci 10 Sztuczna inteligencja kontra modele statystyczne 25 Wnioski: ZaleŜności błędu predykcji od liczby neuronów w warstwie ukrytej dla modeli z optymalnymi wejściami (MLP24 i MLP1) są inne niŜ dla danych ze zbioru Kalifornia 1999-2000. Przede wszystkim minimum błędu prognozy jest osiągnięte dla większej liczby neuronów niŜ w przypadku zbioru danych pochodzących z Kalifornii. Dla braku warstwy ukrytej oraz dla jednego neuronu w tej warstwie błędy predykcji są stosunkowo duŜe. Minimum błędu prognozy jest osiągnięte dla pięciu neuronów w przypadku modelu MLP24 i dla 6 neuronów dla modelu MLP1. Obserwuje się jednak, Ŝe dla liczby neuronów znajdującej się w pobliŜu tych liczb optymalnych róŜnice błędu są bardzo małe. Większa liczba neuronów niŜ w przypadku poprzedniego zbioru sugeruje, Ŝe w danych ze zbioru Nord Pool 1998-1999 istnieją bardziej skomplikowane zaleŜności niŜ w przypadku zbioru Kalifornia 1999-2000. Stosunkowo proste sieci (zero i jeden neuron w warstwie ukrytej) mogą nie być w stanie się tych zaleŜności wyuczyć. Ostatecznie dla obu modeli przyjęto liczbę 5 za optymalną liczność warstwy ukrytej dla zbioru danych Nord Pool 1998-1999. /////// od liczby neuronów W przypadku modeli MLP24TS i MLP1TS zaleŜność błędu MWE w warstwie ukrytej jest duŜo słabsza niŜ w przypadku modeli MLP24 i MLP1. Niemniej jednak moŜna zaobserwować, Ŝe dla obu tych modeli minimum błędu predykcji jest osiągnięte dla trzech neuronów w warstwie ukrytej. Dla zbioru Nord Pool 1998-1999 przewaga modeli MLP24 i MLP1 nad odpowiadającymi im modelami MLP24TS i MLP1TS jest bardziej widoczna niŜ dla zbioru Kalifornia 1999-2000. Dla wszystkich badanych liczb neuronów w warstwie ukrytej prognozy uzyskane za pomocą modeli MLP24 i MLP1 były dokładniejsze niŜ prognozy otrzymane przy uŜyciu modeli odpowiednio MLP24TS i MLP1TS (Rys. 4.5. i Rys. 4.6.). 26 Sztuczna inteligencja kontra modele statystyczne 4.3. Zbiór Nord Pool 2003-2004 ____ MWE MLP24TS MLP24 4,4 4,2 4,0 3,8 3,6 3,4 3,2 3,0 0 1 2 3 4 5 10 Liczba neuronów ____ MWE /////// dla modeli MLP24TS i MLP24 Rys. 4.7. Wykres wartości miary 39: w zaleŜności od liczby neuronów w warstwie ukrytej sieci MLP1TS MLP1 2 3 4,4 4,2 4,0 3,8 3,6 3,4 3,2 3,0 0 1 4 5 Liczba neuronów Rys. 4.8. Wykres wartości miary /////// 39: dla modeli MLP1TS i MLP1 w zaleŜności od liczby neuronów w warstwie ukrytej sieci 10 Sztuczna inteligencja kontra modele statystyczne 27 Wnioski: /////// Dla modeli MLP24 i MLP1 wraz ze wzrostem liczby neuronów w warstwie ukrytej MWE początkowo spada, dla dwóch neuronów osiąga minimum, po czym wykazuje tendencję wzrostową (Rys. 4.7. i Rys. 4.8.). W przypadku modelu MLP24 wzrost ten nie jest silny, natomiast w przypadku modelu MLP1 jest on wyraźny. W oparciu o te spostrzeŜenia ustalono, Ŝe dla zbioru Nord Pool 2003-2004 optymalną liczbą neuronów w warstwach ukrytych sieci MLP24 i MLP1 jest 2. /////// od liczby neuronów w warDla modelu MLP1TS zaleŜności wartości miary MWE stwie ukrytej są podobne jak dla odpowiadającego mu modelu MLP1 (Rys. 4.8.). Optymalną liczbą neuronów w warstwie ukrytej jest więc 2. W przypadku modelu MLP24TS optymalną liczbą neuronów jest 1 (Rys. 4.7.). RównieŜ na zbiorze danych Nord Pool 2003-2004 lepsze okazały się modele MLP24 i MLP1 (Rys. 4.7. i Rys. 4.8), choć ich przewaga nad modelami MLP24TS i MLP1TS nie jest juŜ tak wyraźna jak w przypadku poprzedniego zbioru danych. Niemniej jednak naleŜy za/////// w przypadku modeli MLP24 i MLP1 są zdecydowanie uwaŜyć, Ŝe minimalne wartości MWE mniejsze niŜ w przypadku modeli odpowiednio MLP24TS i MLP1TS. Sztuczna inteligencja kontra modele statystyczne 28 Rozdział 5. Porównanie sieci neuronowych i modeli statystycznych Rozdział ten zawiera porównanie sieci neuronowych i modeli statystycznych w kontekście prognozowania szeregów czasowych. W porównaniu wykorzystano zoptymalizowane wcześniej modele sieci neuronowych: MLP24, MLP24X, MLP1 oraz MLP1X. Wyniki dla modeli statystycznych zostały pobrane z publikacji [19]. Wzięto pod uwagę następujące modele statystyczne: AR, ARX, TAR, TARX, MRJD, MRJDX, IHMAR, IHMARX, SNAR oraz SNARX. Specyfikacja tych modeli została zamieszczona w rozdziale 3. 5.1. Zbiór Kalifornia 1999-2000 W przypadku rynku kalifornijskiego badano zarówno modele nieuwzględniające prognozy zapotrzebowania, jak i modele, które prognozę tę uwzględniały. W podrozdziale tym porównano oddzielnie modele bez prognozy zapotrzebowania i oddzielnie modele, które otrzymywały na wejściu prognozę zapotrzebowania. Na końcu porównano wszystkie modele razem. 5.1.1. Porównanie modeli bez prognozy zapotrzebowania W tabeli 5.1. zaprezentowano średnie tygodniowe błędy MWE dla modeli bez prognozy za///////, #BEST i MDpotrzebowania. W jej dolnej części umieszczono równieŜ wartości miar MWE FB. Wartości te wyznaczono dla kaŜdego modelu na podstawie wartości MWE z wszystkich dziesięciu tygodni. Rysunek 5.1. prezentuje w sposób graficzny wartości miary MDFB dla poszczególnych modeli. Tydzień AR TAR MRJD IHMAR SNAR MLP24 MLP1 1 3,37 5,72 3,74 3,97 4,12 3,90 3,21 2 5,37 7,43 6,11 6,47 7,48 6,99 5,29 3 8,79 11,78 8,88 9,35 10,36 8,75 8,41 4 13,99 13,90 14,16 13,31 13,09 13,79 12,19 5 18,26 18,09 19,13 18,23 17,94 17,04 16,73 6 9,24 9,23 8,53 8,76 8,42 8,50 8,40 7 10,32 11,23 10,15 10,56 10,97 10,50 9,84 8 50,35 47,95 53,62 49,58 46,11 45,45 44,93 9 13,44 13,87 13,87 13,26 14,01 13,41 12,83 10 8,27 8,78 7,94 8,07 9,13 8,28 7,81 /////// FGH 13,96 13,99 15,39 14,01 13,87 13,92 13,35 #JHKL 4 1 0 0 0 1 4 FMNJ 1,00 1,03 2,42 1,05 0,91 0,95 0,38 Tab. 5.1. Średnie tygodniowe błędy prognozy (MWE) dla modeli bez prognozy zapotrzebowania (błędy najmniejsze w poszczególnych tygodniach zostały pogrubione; /////// , #BEST i MDFB zostały wyróŜnione ciemniejszym tłem) najlepsze wartości miar 39: 29 Sztuczna inteligencja kontra modele statystyczne 2,50 MDFB 2,00 1,50 1,00 0,50 0,00 AR TAR MRJD IHMAR SNAR MLP24 MLP1 Modele Rys. 5.1. Wartości miary MDFB dla modeli nieuwzględniających prognozy zapotrzebowania Wnioski: Na rysunku 5.1. widać, Ŝe z dwóch modeli sieci neuronowych: MLP24 i MLP1 zdecydowanie lepsze wyniki dał model drugi. Model ten dał ponadto dokładniejsze prognozy niŜ wszystkie rozwaŜane modele statystyczne. Średnie odchylenie od najlepszej prognozy było w jego przypadku ponad dwukrotnie mniejsze niŜ w przypadku najlepszego modelu statystycznego – SNAR. Dla modelu MLP1 błąd MWE był najmniejszy czterokrotnie, co stanowi najlepszy rezultat wśród wszystkich modeli (Tab. 5.1.). Co prawda taki sam rezultat uzyskano dla mo/////// oraz duŜo większe odchylenie MDFB. delu AR, ale model AR miał duŜo większy błąd MWE Tak więc naleŜy stwierdzić, Ŝe wśród modeli nieuwzględniających zapotrzebowania, sieci neuronowe dały lepsze prognozy cen dla rynku kalifornijskiego niŜ modele statystyczne. Wniosek ten sugeruje, Ŝe sieci neuronowe dobrze prognozują ceny energii, które cechuje duŜa zmienność. Jak się bowiem okaŜe w dalszej części tego rozdziału, dla cen o mniejszej zmienności sieci neuronowe nie wypadły juŜ tak dobrze. 30 Sztuczna inteligencja kontra modele statystyczne 5.1.2. Porównanie modeli uwzględniających prognozę zapotrzebowania Tabela 5.2. zawiera średnie tygodniowe błędy MWE dla modeli uwzględniających prognozę ///////, #BEST i MDFB. zapotrzebowania. W jej dolnej części umieszczono wartości miar MWE Wartości te wyznaczono dla kaŜdego modelu na podstawie wartości MWE z wszystkich dziesięciu tygodni. Rysunek 5.2. prezentuje wartości miary MDFB dla poszczególnych modeli. Tydzień ARX TARX MRJDX IHMARX SNARX MLP24X MLP1X 1 3,09 5,26 3,16 3,52 3,51 3,67 3,03 2 5,04 6,87 5,51 6,04 7,23 6,62 4,71 3 8,52 11,21 8,56 9,12 10,38 8,53 8,37 4 13,51 13,56 13,93 12,82 12,43 13,88 11,59 5 17,82 18,45 18,66 17,88 17,60 16,85 16,55 6 8,69 8,59 8,05 8,34 8,72 8,99 8,04 7 9,43 10,07 9,93 9,61 9,99 9,87 9,34 8 48,15 44,77 50,82 47,53 43,94 45,95 43,34 9 13,11 13,12 13,27 13,74 13,02 13,03 12,91 10 7,77 8,17 7,65 7,62 9,47 8,83 7,39 /////// FGH 13,36 13,31 14,67 13,37 13,17 13,69 13,31 #JHKL 5 0 0 1 1 0 3 FMNJ 0,83 0,78 2,14 0,84 0,65 1,16 0,78 Tab. 5.2. Średnie tygodniowe błędy prognozy (MWE) dla modeli uwzględniających prognozę zapotrzebowania (błędy najmniejsze w poszczególnych tygodniach zostały pogrubione; /////// , #BEST i MDFB zostały wyróŜnione ciemniejszym tłem) najlepsze wartości miar 39: 2,50 MDFB 2,00 1,50 1,00 0,50 0,00 ARX TARX MRJDX IHMARX SNARX MLP24X MLP1X Modele Rys. 5.2. Wartości miary MDFB dla modeli uwzględniających prognozę zapotrzebowania Sztuczna inteligencja kontra modele statystyczne 31 Wnioski: Wśród modeli uwzględniających prognozę zapotrzebowania najmniejsze wartości MWE oraz MDFB uzyskano za pomocą modelu statystycznego SNARX (Tab. 5.2., Rys. 5.2). Sieć neuronowa MLP1X uplasowała się na drugim miejscu razem z modelem TARX. W odróŜnieniu od TARX model MLP1X trzykrotnie dał prognozy, dla których wartość MWE była najmniejsza wśród wszystkich badanych modeli (TARX w Ŝadnym tygodniu nie był najlepszy). Nieco gorsze prognozy niŜ MLP1X dały modele statystyczne: ARX oraz IHMARX. Dopiero za nimi uplasował się model MLP24X. Tak więc wśród modeli uwzględniających na wejściu prognozę zapotrzebowania modele statystyczne SNARX i IHMARX okazały się lepsze od sieci neuronowych. 5.1.3. Porównanie wszystkich modeli Podrozdział ten zawiera porównanie wszystkich modeli: zarówno tych, które nie uwzględniały prognozy zapotrzebowania, jak i tych, które tę prognozę uwzględniały. W tabeli 5.3. zaprezentowano średnie tygodniowe błędy MWE dla poszczególnych modeli. W jej dolnej części ///////, #BEST i MDFB. Wartości te wyznaczono dla kaŜdego zamieszczono wartości miar MWE modelu na podstawie wartości MWE z wszystkich dziesięciu tygodni. Rysunek 5.3. prezentuje wartości miary MDFB dla poszczególnych modeli. 32 Sztuczna inteligencja kontra modele statystyczne Tydzień 1 2 3 4 5 6 7 8 9 10 /////// FGH #JHKL FMNJ AR 3,37 5,29 8,41 13,99 18,26 8,40 10,32 50,35 13,44 7,81 13,96 0 2,58 ARX 3,03 4,71 8,37 13,51 17,82 8,04 9,43 48,15 13,11 7,39 13,36 5 1,98 TAR 3,21 5,37 8,79 13,90 18,09 9,24 11,23 47,95 13,87 8,27 13,99 0 2,61 TARX 3,09 5,04 8,52 13,56 18,45 8,69 10,07 44,77 13,12 7,77 13,31 0 1,93 MRJD 5,72 7,43 11,78 14,16 19,13 9,23 10,15 53,62 13,87 8,78 15,39 0 4,01 MRJDX 5,26 6,87 11,21 13,93 18,66 8,59 9,93 50,82 13,27 8,17 14,67 0 3,29 IHMAR 3,74 6,11 8,88 13,31 18,23 8,53 10,56 49,58 13,26 7,94 14,01 0 2,63 IHMARX 3,16 5,51 8,56 12,82 17,88 8,05 9,61 47,53 12,91 7,65 13,37 0 1,99 SNAR 3,97 6,47 9,35 13,09 17,94 8,76 10,97 46,11 14,01 8,07 13,87 0 2,49 SNARX 3,52 6,04 9,12 12,43 17,60 8,34 9,99 43,34 13,74 7,62 13,17 1 1,79 MLP24 4,12 7,48 10,36 13,79 17,04 8,42 10,50 44,93 13,41 9,13 13,92 0 2,54 MLP24X 3,51 7,23 10,38 13,88 16,85 8,72 9,87 43,94 13,02 9,47 13,69 0 2,31 MLP1 3,90 6,99 8,75 12,19 16,73 8,50 9,84 45,45 12,83 8,28 13,35 1 1,97 Tab. 5.3. Średnie tygodniowe błędy prognozy (MWE) dla poszczególnych modeli (błędy najmniejsze w poszczególnych tygodniach zostały pogrubione; /////// , #BEST i MDFB zostały wyróŜnione ciemniejszym tłem) najlepsze wartości miar 39: MLP1X 3,67 6,62 8,53 11,59 16,55 8,99 9,34 45,95 13,03 8,83 13,31 3 1,93 33 Sztuczna inteligencja kontra modele statystyczne 4,50 4,00 3,50 MDFB 3,00 2,50 2,00 1,50 1,00 0,50 0,00 Modele Rys. 5.3. Wartości miary MDFB dla poszczególnych modeli Wnioski: /////// Za tabeli 5.3. i rysunku 5.3. wynika, Ŝe wśród wszystkich modeli najmniejsze wartości MWE oraz MDFB uzyskano za pomocą modelu statystycznego SNARX. Najlepsza sieć neuronowa – MLP1X – uplasowała się na drugim miejscu razem z modelem TARX. Trzecie miejsce zajęła sieć neuronowa MLP24X. Spośród wszystkich czterech badanych modeli sieci neuronowych najdokładniejsze /////// i MDFB). Na rysunku 5.3. wiwyniki dał model MLP1X (pod uwagę wzięto wartości MWE dać, Ŝe sieci neuronowe, które dostawały na wejście prognozę zapotrzebowania (MLP24X i MLP1X) dały lepsze rezultaty niŜ ich odpowiedniki nieuwzględniające zapotrzebowania (MLP24 i MLP1). Oznacza to, Ŝe prognoza zapotrzebowania na określoną godzinę kolejnego dnia wpływa na cenę energii z tej godziny. Podanie prognozy zapotrzebowania na wejście modelu wnosi zatem do niego dodatkowe informacje, które poprawiają dokładność prognozy. MoŜna równieŜ zauwaŜyć, Ŝe modele kalibrowane oddzielnie na kaŜdą godzinę (MLP1 i MLP1X) dały prognozy dokładniejsze niŜ modele kalibrowane raz na 24 godziny (MLP24 i MLP24X). Sieci neuronowe kalibrowane oddzielnie dla kaŜdej godziny odzwierciedlają tylko te zaleŜności występujące w danych uczących, które związane są z jedną godziną. Modele kalibrowane raz na 24 godziny muszą natomiast odzwierciedlać zaleŜności związane z wszystkimi 24 godzinami. Znalezienie modelu prognozującego ceny dla 24 godzin jest więc trudniejsze, poniewaŜ poszukiwane odwzorowanie danych historycznych na przyszłe ceny energii jest bardziej skomplikowane. Jedna sieć neuronowa moŜe nie być w stanie wyuczyć się na raz wszystkich zaleŜności związanych z 24 godzinami, co moŜe powodować gorsze prognozy. 34 Sztuczna inteligencja kontra modele statystyczne 5.2. Zbiór Nord Pool 1998-1999 Dla rynku nordyckiego nie były dostępne dane dotyczące zapotrzebowania. Wobec tego porównano jedynie modele bez zapotrzebowania. Tabela 5.4. zawiera średnie tygodniowe błędy MWE dla poszczególnych modeli statystycznych i modeli sieci neuronowych. W jej dolnej ///////, #BEST i MDFB. Wartości te wyznaczono dla części umieszczono takŜe wartości miar MWE kaŜdego modelu na podstawie wartości MWE z wszystkich 25 tygodni. Na rysunku 5.4. przedstawiono graficznie wartości miary MDFB dla poszczególnych modeli. Tydzień II.1 II.2 II.3 II.4 II.5 V.1 V.2 V.3 V.4 V.5 VIII.1 VIII.2 VIII.3 VIII.4 VIII.5 XI.1 XI.2 XI.3 XI.4 XI.5 /////// FGH #JHKL FMNJ AR TAR MRJD IHMAR SNAR MLP24 MLP1 4,88 6,23 4,25 3,72 3,72 4,39 3,57 3,39 4,46 3,27 3,49 3,72 3,26 3,26 3,28 4,37 2,73 2,80 2,64 2,71 2,44 3,87 4,24 3,03 3,65 3,25 2,78 2,67 4,94 5,47 4,58 3,65 4,03 4,13 2,87 4,77 5,25 5,17 4,72 6,73 6,99 4,06 6,20 8,76 6,14 7,10 6,38 6,41 6,06 8,18 11,66 8,49 9,75 9,43 8,81 8,15 6,81 6,91 9,59 6,84 6,94 5,57 4,86 5,29 6,92 5,24 5,75 6,50 6,54 5,04 3,28 3,74 3,23 3,23 5,75 5,70 2,95 4,93 5,86 4,70 4,37 6,10 6,12 4,30 4,01 3,24 4,58 3,67 3,98 3,63 2,86 4,27 3,64 4,18 3,89 3,57 3,31 3,31 2,60 3,04 3,39 2,46 2,87 3,03 2,43 3,18 3,81 2,72 3,01 2,83 2,83 2,58 4,00 3,75 3,69 3,70 3,47 3,37 3,24 2,89 3,51 2,73 2,53 2,69 2,52 2,48 2,29 2,70 2,23 2,14 2,30 2,36 2,05 3,88 3,40 3,71 3,56 3,60 3,42 3,01 4,33 4,43 4,82 4,15 4,04 4,41 4,33 3 4 2 1 4 3 5 0,72 0,82 1,21 0,54 0,43 0,80 0,72 Tab. 5.4. Średnie tygodniowe błędy prognozy (MWE) dla poszczególnych modeli (błędy najmniejsze w poszczególnych tygodniach zostały pogrubione; /////// , #BEST i MDFB zostały wyróŜnione ciemniejszym tłem) najlepsze wartości miar 39: 1,40 1,20 MDFB 1,00 0,80 0,60 0,40 0,20 0,00 AR TAR MRJD IHMAR SNAR MLP24 Modele Rys. 5.4. Wartości miary MDFB dla poszczególnych modeli MLP1 Sztuczna inteligencja kontra modele statystyczne 35 Wnioski: Dla zbioru Nord Pool 1998-1999 najlepsze rezultaty dały nieparametryczne modele statystyczne: SNAR i IHMAR (Tab. 5.4., Rys. 5.4.). Sieć neuronowa MLP1 zajęła trzecie miejsce /////// oraz MDFB). Model wraz ze statystycznym modelem AR (biorąc pod uwagę miary MWE MLP1 dał jednak największą wartość miary #BEST. Za jego pomocą uzyskano najmniejsze wartości MWE aŜ dla pięciu tygodni (jest to najlepszy wynik wśród wszystkich modeli). Sieć neuronowa MLP24 uplasowała się na kolejnym, czwartym miejscu. W przypadku tego zbioru danych równieŜ widać przewagę modelu MLP1, który był kalibrowany oddzielnie dla kaŜdej godziny, nad modelem MLP24 kalibrowanym raz dla 24 godzin. MoŜliwe przyczyny tej obserwacji podano w poprzednim podrozdziale. 5.3. Zbiór Nord Pool 2003-2004 Tabela 5.5. zawiera średnie tygodniowe błędy MWE dla poszczególnych modeli dla zbioru Nord Pool 2003-2004. Ze względu na brak danych dotyczących zapotrzebowania uwzględniono tylko modele bez dodatkowych wejść związanych z zapotrzebowaniem (podobnie jak w przypadku zbioru Nord Pool 1998-1999). W dolnej części tabeli umieszczono wartości ///////, #BEST i MDFB. Wartości te wyznaczono dla kaŜdego modelu na podstawie warmiar MWE tości MWE z wszystkich 25 tygodni. Na rysunku 5.5. zaprezentowano wartości miary MDFB. Tydzień II.1 II.2 II.3 II.4 II.5 V.1 V.2 V.3 V.4 V.5 VIII.1 VIII.2 VIII.3 VIII.4 VIII.5 XI.1 XI.2 XI.3 XI.4 XI.5 /////// FGH #JHKL FMNJ AR TAR MRJD IHMAR SNAR MLP24 1,79 2,70 3,01 1,71 2,44 1,67 3,08 3,62 4,07 3,01 3,73 2,89 3,17 3,34 4,72 3,25 3,34 3,15 2,09 2,78 2,82 1,94 2,80 1,85 1,89 1,94 2,07 1,66 2,33 1,65 5,95 7,83 6,05 6,30 6,71 5,49 10,87 13,78 11,14 11,34 10,45 10,01 7,67 7,17 7,45 7,49 7,26 5,56 4,05 4,04 3,97 3,83 4,89 3,78 2,30 2,32 2,06 1,75 2,11 1,54 2,78 2,79 3,18 2,69 3,73 2,63 2,96 3,02 2,88 3,07 2,79 2,79 2,09 3,04 2,06 1,82 2,25 1,64 1,78 2,42 2,73 1,69 2,03 1,58 2,33 2,34 3,52 2,28 2,18 1,86 1,95 2,32 2,09 2,71 1,79 1,79 2,59 2,56 3,00 2,56 2,97 2,48 2,71 2,53 2,54 2,46 3,42 2,42 2,14 2,37 2,59 2,24 2,59 2,13 2,31 3,85 2,37 2,35 2,30 2,10 3,33 3,26 4,05 3,25 3,22 3,65 0 6 2 4 9 1 0,37 0,31 1,10 0,30 0,27 0,70 Tab. 5.5. Średnie tygodniowe błędy prognozy (MWE) dla poszczególnych modeli (błędy najmniejsze w poszczególnych tygodniach zostały pogrubione; najlepsze wartości miar /////// 39: , #BEST i MDFB zostały wyróŜnione ciemniejszym tłem) MLP1 2,12 4,05 3,39 3,12 2,73 6,25 10,21 7,12 4,97 2,41 3,58 3,34 2,21 2,00 2,36 2,38 2,62 3,08 2,20 2,55 3,63 0 0,68 36 Sztuczna inteligencja kontra modele statystyczne 1,20 1,00 MDFB 0,80 0,60 0,40 0,20 0,00 AR TAR MRJD IHMAR SNAR MLP24 MLP1 Modele Rys. 5.5. Wartości miary MDFB dla poszczególnych modeli Wnioski: Na zbiorze danych Nord Pool 2003-2004 obie sieci neuronowe MLP24 i MLP1 dały gorsze prognozy niŜ cztery modele statystyczne: AR, TAR, IHMAR oraz SNAR (Tab. 5.5., Rys. 5.5.). Prognozy uzyskane za pomocą sieci neuronowych były dokładniejsze tylko od prognoz otrzymanych przy uŜyciu modelu statystycznego MRJD. Ponadto model MLP1 nie był najlepszy dla Ŝadnego tygodnia. Model MLP24 był najlepszy tylko jeden raz. Gorsze rezultaty w przypadku sieci neuronowych w odniesieniu do modeli statystycznych wynikają prawdopodobnie z tego, Ŝe ceny dla zbioru Nord Pool 2003-2004 odznaczały się najmniejszą zmiennością wśród cen z trzech rozwaŜanych zbiorów. Porównując same modele sieci neuronowych naleŜy stwierdzić, Ŝe na zbiorze danych Nord Pool 2003-2004 model MLP1 dał prognozy lepsze niŜ model MLP24 (biorąc pod uwagę /////// i MDFB). Podobna zaleŜność występowała w przypadku pozostałych dwóch miary MWE zbiorów danych, dla których wyniki przedstawiono w poprzednich podrozdziałach. Sztuczna inteligencja kontra modele statystyczne 37 Rozdział 6. Podsumowanie Podsumowując niniejszą pracę, naleŜy uznać, Ŝe jej cel został osiągnięty. Za pomocą napisanej aplikacji Electricity Price Predictor przeprowadzono szereg eksperymentów, które pozwoliły ocenić róŜne modele sieci neuronowych w kontekście prognozowania cen energii elektrycznej. Ostatecznie sieci neuronowe porównano z modelami statystycznymi, co stanowiło główny cel tej pracy. W pracy wykorzystano popularne sieci neuronowe zwane perceptronami. Badania pokazały, Ŝe modele sieci neuronowych, które były kalibrowane oddzielnie przed wykonaniem prognozy dla kaŜdej godziny (MLP1 i MLP1X), prognozowały ceny energii dokładniej niŜ modele, które po jednej kalibracji prognozowały ceny dla 24 godzin określonego dnia (MLP24 i MLP24X). ZaleŜności te widać w przypadku kaŜdego z trzech wykorzystanych zbiorów danych. Wynikają one prawdopodobnie z tego, Ŝe znalezienie modelu prognozującego ceny dla 24 godzin jest bardziej skomplikowane. Jedna sieć neuronowa moŜe nie być w stanie wyuczyć się na raz wszystkich zaleŜności związanych z 24 godzinami, co moŜe powodować gorsze prognozy. Okazało się ponadto, Ŝe uwzględnienie zapotrzebowania na wejściu sieci neuronowych polepszało dokładność prognoz: na zbiorze Kalifornia 1999-2000 (który jako jedyny zawierał prognozy zapotrzebowania) model MLP24X prognozował lepiej niŜ model MLP24, a model MLP1X dawał dokładniejsze prognozy niŜ model MLP1. Oznacza to, Ŝe prognoza zapotrzebowania na określoną godzinę kolejnego dnia wpływa na cenę energii dla tej godziny. Uwzględnienie tej prognozy w modelu wnosi do niego dodatkowe informacje, które poprawiają dokładność prognoz. Tak więc jeŜeli nie były dostępne dane dotyczące prognozy zapotrzebowania (zbiory Nord Pool 1998-1999 oraz Nord Pool 2003-2004), wśród sieci neuronowych najlepszy okazał się model MLP1. Natomiast w sytuacji, gdy dane dotyczące prognozy zapotrzebowania były dostępne (zbiór Kalifornia 1999-2000), najlepsze prognozy dał model MLP1X. W oparciu o wyniki zaprezentowane w niniejszej pracy naleŜy negatywnie odpowiedzieć na kluczowe pytanie umieszone w jej tytule: „Czy sieci neuronowe potrafią lepiej prognozować ceny energii?”. Dla wszystkich trzech zbiorów danych, ewidentnie widać, Ŝe zdecydowanym liderem jest statystyczny model SNAR, jeŜeli nie było dostępnych danych dotyczących prognozy zapotrzebowania, oraz jego odpowiednik - SNARX w sytuacji, gdy dostępne były te dane. Nie dominował on jednak zawsze nad sieciami neuronowymi. W porównaniu modeli nieuwzględniających zapotrzebowania dla zbioru danych Kalifornia 1999-2000 okazało się, Ŝe sieć neuronowa MLP24 dała prognozy dokładniejsze od wszystkich modeli statystycznych (biorąc pod uwagę miary /////// 39: i MDFB). Wśród modeli statystycznych za modelami SNARX i SNAR uplasowały się modele IHMARX oraz IHMAR. W przypadku zbioru danych pochodzących z rynku kalifornijskiego modele te dały gorsze wyniki niŜ sieci neuronowe MLP1X i MLP1, natomiast dla danych z rynku nordyckiego modele te okazały się być lepsze niŜ sieci neuronowe. Tak więc trudno jednoznacznie stwierdzić, czy sieci neuronowe są od nich lepsze, czy gorsze. Interesującym wynikiem badań jest to, Ŝe w odniesieniu do modeli statystycznych sieci neuronowe radzą sobie lepiej z prognozowaniem cen, które cechuje duŜa zmienność. Świadczy o tym fakt, Ŝe najlepiej wypadły one na zbiorze Kalifornia 1999-2000, dla którego wszystkie badane modele dawały prognozy obarczone stosunkowo duŜymi błędami. W przypadku tego zbioru danych błędy /////// 39: wahały się bowiem w granicach 13,17% – 14,67%, podczas gdy dla zbioru Nord Pool 1998-1999 mieściły się one w granicach 4,15% - 4,82%, a dla zbioru Nord Pool 2003-2004 - w granicach 3,22% - 4,05%. Dla zbioru Nord Pool 20032004, dla którego wszystkie modele osiągały najmniejsze błędy prognozy, sieci neuronowe wypadły znacznie słabiej od modeli statystycznych niŜ dla zbioru danych z Kalifornii. Okaza- Sztuczna inteligencja kontra modele statystyczne 38 ły się one gorsze nawet od prostych modeli autoregresyjnych. Dla zbioru Nord Pool 19981999 wypadły juŜ lepiej (porównywalnie z modelami AR i ARX). Sugeruje to, Ŝe modele sieci neuronowych warto stosować do prognozowania cen w okresach, w których ceny są zmienne a przez to trudniej prognozowalne. W ramach tej pracy zbadano najpopularniejsze sieci neuronowe w kontekście prognozowania cen energii elektrycznej. Dobre wyniki prognoz uzyskane za pomocą tych sieci sugerują, Ŝeby kontynuować badania nad zastosowaniem innych sieci neuronowych - sieci o odmiennych architekturach i innych metodach uczenia. Warto byłoby na przykład sprawdzić, jak z prognozowaniem cen energii radziłyby sobie sieci o radialnych funkcjach bazowych (ang. Radial Basis Functions) czy sieci rekurencyjne. Zastosowanie bardziej zaawansowanych modeli być moŜe przyniosłoby poprawę jakości prognoz. Sztuczna inteligencja kontra modele statystyczne 39 Dodatek A. Aplikacja Electricity Price Predictor W ramach pracy dyplomowej została napisana aplikacja Electricity Price Predictor, za pomocą której badano modele sieci neuronowych. UmoŜliwia ona definiowanie modeli sieci neuronowych, ich kalibrację na historycznych danych, prognozowanie cen energii oraz obliczanie błędów predykcji. Aplikacja została ona zaimplementowana na platformie Microsoft .NET w języku C#. Dodatek ten zawiera wymagania systemowe aplikacji, opis jej funkcjonalności oraz instrukcje dotyczące przygotowania dla aplikacji plików z danymi. A.1. Wymagania systemowe aplikacji Aplikacja Electricity Price Predictor posiada następujące wymagania systemowe: • Procesor: Pentium III 400 MHz (lub szybszy); • System operacyjny: Microsoft Windows 2000 Server SP4, Windows 2000 Professional SP4, Windows XP SP2, Windows Server 2003 Enterprise Edition lub Standard Edition; • Pamięć operacyjna: 128 MB (lub więcej); • Wolna przestrzeń na dysku twardym: 20 MB; • Napęd CD-ROM lub DVD-ROM; • Karta graficzna VGA o rozdzielczości 1024x768 (lub większej); • Monitor o rozdzielczości 1024x768 (lub większej). Dodatkowo wymagane jest zainstalowane w systemie operacyjnym oprogramowanie: Microsoft .NET Framework 2.0 (lub nowsze). A.2. Opis aplikacji Electricity Price Predictor umoŜliwia wczytywanie z pliku tekstowego danych, które wykorzystywane są do trenowania i testowania sieci neuronowych. Pliki z danymi muszą mieć odpowiedni format, który dokładnie przedstawiono w podrozdziale A.3. Dane wczytuje się za pomocą menu Plik (Rys. A.2.). Po rozwinięciu menu są do wyboru dwie opcje: [Data Godzina Cena] oraz [Data Godzina Cena Zapotrzebowanie] (Rys. A.2.). Pierwszą opcję naleŜy wybrać jeŜeli plik zawiera daty, godziny i ceny energii. Druga opcja przeznaczona jest do otwarcia pliku zawierającego dodatkowo prognozę zapotrzebowania na energię elektryczną. Po wczytaniu danych ceny zostają przedstawione na wykresie (Rys. A.1.). Program daje moŜliwość określenia zakresu danych uczących i testowych. SłuŜą do tego dwa panele: Zakres danych uczących i Zakres danych testowych (Rys. A.1.). Data początkowa zakresu danych testowych jest ustawiana automatycznie na dzień następujący bezpośrednio po ostatnim dniu zakresu danych uczących. Ceny naleŜące do zbioru danych uczących prezentowane są za pomocą wykresu na zakładce Zbiór uczący (Rys. A.1.), natomiast ceny ze zbioru testowego – na zakładce Zbiór testowy (Rys. A.3.). Sztuczna inteligencja kontra modele statystyczne Rys. A.1. Okno główne aplikacji Electricity Price Predictor Rys. A.2. Rozwinięte menu Plik w oknie głównym aplikacji 40 Sztuczna inteligencja kontra modele statystyczne 41 Rys. A.3. Zakładka Zbiór testowy Model, który ma być wykorzystany do prognozowania, definiuje się za pomocą panelu Model (Rys. A.1.). Lista Rodzaj kalibracji znajdująca się na tym panelu pozwala określić, czy model ma być kalibrowany raz na 24 godziny, czy oddzielnie dla kaŜdej godziny. Za pomocą przycisku Wejścia modelu otwiera się okno przeznaczone do definiowania wejść modelu (Rys. A.4.). W oknie tym znajdują się trzy panele: Ceny, Prognozy zapotrzebowania oraz Dodatkowe dane. Na panelu Ceny za pomocą pola Liczba cen określa się liczbę przeszłych cen energii, spośród których moŜna następnie za pomocą listy Ceny wybrać te, które mają być podawane na wejścia modelu. Przycisk Wczytaj ceny pozwala wczytać z pliku numery cen (wówczas nie trzeba ich definiować za pomocą listy Ceny). Opcja ta przydaje się szczególnie wtedy, gdy w na wejściach modelu uwzględnia się duŜe liczby cen historycznych. Pole wyboru Logarytm na panelu Ceny, słuŜy do określenia, czy na wejścia modelu mają być podawane zlogarytmowane wartości cen. Panel Prognozy zapotrzebowania przeznaczony jest do określania tego, które wartości prognozy zapotrzebowania mają być uwzględnione na wejściach modelu. Budowa tego panelu jest analogiczna do budowy panelu Ceny (Rys. A.4.). Panel Dodatkowe wejścia słuŜy do określenia, czy na wejścia modelu ma być podawana godzina, dzień tygodnia, minimum z cen z poprzedniego dnia. Sztuczna inteligencja kontra modele statystyczne 42 Rys. A.4. Okno Wejścia modelu Aplikacja umoŜliwia określenie nie tylko wejść modelu, ale równieŜ jego parametrów. SłuŜy do tego przycisk Parametry modelu w oknie głównym aplikacji (Rys. A. 1.). Za jego pomocą moŜna otworzyć okno Parametry modelu (Rys. A.5.). Rys. A.5. Okno Parametry modelu W polu Warstwa ukryta znajdującym się na panelu Liczba neuronów moŜna ustawić liczbę neuronów w warstwie ukrytej sieci. Dwa pola na panelu Zakres początkowych wartości wag umoŜliwiają określenie granicy dolnej i górnej zakresu, z którego są losowane wagi neuronów sieci przed rozpoczęciem trenowania sieci. Panel Parametry uczenia słuŜy do określenia parametrów wpływających na przebieg uczenia sieci neuronowej. MoŜna określić współczynnik uczenia, epsilon (jeŜeli błąd predykcji w czasie trenowania sieci spadnie poniŜej tej wartości, to uczenie jest przerywane) oraz liczbę epok. Po określeniu zakresu danych uczących i testowych oraz parametrów modelu moŜna rozpocząć kalibrację modelu i prognozowanie. SłuŜy do tego przycisk Prognozuj w oknie głównym aplikacji (Rys. A.1.). Po naciśnięciu tego przycisku odbywa się prognozowanie cen energii dla wszystkich dni ze zdefiniowanego okresu testowego. Po zakończeniu prognozowania na zakładce Prognoza znajdującej się w oknie głównym programu prezentowany jest wykres cen prognozowanych oraz cen rzeczywistych (Rys. A.6.). Sztuczna inteligencja kontra modele statystyczne 43 Rys. A.6. Zakładka Prognoza Electricity Price Predictor oblicza równieŜ wartości róŜnych miar błędu prognozy. Wyniki te są prezentowane na zakładce Miary błędu prognozy (Rys. A.7.). Oddzielnie przedstawione są wartości miar dziennych (Rys. A.7.) i tygodniowych (Rys. A.8.). Rys. A.7. Zakładka Miary błędu prognozy (miary dzienne) Sztuczna inteligencja kontra modele statystyczne 44 Rys. A.8. Zakładka Miary błędu prognozy (miary tygodniowe) A.3. Przygotowanie plików z danymi Na płycie CD w folderze Aplikacja/Dane zamieszczone zostały pliki zawierające dane wykorzystane w eksperymentach. Istnieje oczywiście moŜliwość przygotowania nowych plików zawierających inne dane. Opisany zostanie teraz format, który muszą mieć pliki z danymi, aby mogły być one poprawnie zinterpretowane przez program Electricity Price Predictor. Plik z danymi jest plikiem tekstowym. Jego nazwa musi mieć rozszerzenie .txt. Plik musi zawierać co najmniej jeden wiersz. JeŜeli zawiera więcej niŜ jeden wiersz, to poszczególne wiersze muszą być oddzielone znakiem nowego wiersza i znakiem powrotu karetki. KaŜdy wiersz pliku zawiera datę, godzinę, cenę energii oraz opcjonalnie prognozę zapotrzebowania na energię dla danej godziny. Data nie moŜe być wcześniejsza niŜ 1 stycznia 1753 r. i późniejsza niŜ 31 grudnia 9998 r. Data i godzina musi identyfikować nie więcej niŜ jeden wiersz w pliku. Wiersze nie muszą być posortowane według daty i godziny. Wiersz pliku z danymi musi mieć jedną z dwóch postaci. JeŜeli plik nie zawiera danych dotyczących zapotrzebowania na energię, to wiersz pliku musi mieć postać: <data><znaki oddzielające><godzina><znaki oddzielające><cena> Jeśli natomiast plik zawiera równieŜ prognozy zapotrzebowania, to postać kaŜdego wiersza pliku musi być następująca: <data><znaki oddzielające><godzina><znaki oddzielające><cena> <znaki oddzielające><zapotrzebowanie> <data> musi mieć format RRRRMMDD (np. 20040101). 45 Sztuczna inteligencja kontra modele statystyczne Element <znaki oddzielające> jest ciągiem znaków tabulacji i/lub spacji. Musi zawierać co najmniej jeden znak tabulacji lub spacji. W praktyce najlepiej stosować jeden znak tabulacji lub jeden znak spacji. <godzina> jest liczbą całkowitą z przedziału [1,24]. <cena> oznacza cenę energii. Wartość ta moŜe być liczbą całkowitą lub rzeczywistą naleŜącą do przedziału (-1010,1010). <cena> jest ciągiem cyfr. W ciągu tym moŜe wystąpić jedna kropka oddzielająca część całkowitą liczby od części ułamkowej (np. 23.68). <zapotrzebowanie> oznacza prognozę zapotrzebowania na energię elektryczną. Wartość ta moŜe być liczbą całkowitą lub rzeczywistą naleŜącą do przedziału (-1010,1010). Wymagania dotyczące formatu tej liczby są takie same jak w przypadku ceny. PoniŜej znajdują się przykłady poprawnych zawartości pliku z danymi (Przykład A.1. i A.2.). 19980402 19980402 19980402 19980402 19980402 19980402 19980402 19980402 1 2 3 4 5 6 7 8 18.6586 13.3844 12.0062 12.0064 17.5827 22.0031 25.0856 25.4924 Przykład A.1. Poprawna zawartość pliku z danymi zawierającymi ceny energii 19980402 19980402 19980402 19980402 19980402 19980402 19980402 19980402 1 2 3 4 5 6 7 8 18.6586 13.3844 12.0062 12.0064 17.5827 22.0031 25.0856 25.4924 18949 18405 18219.6 18360 19329.87 22023 25077 26367 Przykład A.2. Poprawna zawartość pliku z danymi zawierającymi ceny energii oraz prognozy zapotrzebowania Sztuczna inteligencja kontra modele statystyczne 46 Bibliografia [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] Amjady N., Day-Ahead Price Forecasting of Electricity Markets by a New Fuzzy Neural Network, IEEE Transactions on Power Systems 21(2), 2006, 887-896 Bunn, D.W., Forecasting loads and prices in competitive power markets, Proceedings of the IEEE 88(2), 2000, 163-169 Bunn D. W., Modeling Prices in Competitive Electricity Markets, Wiley, 2004 Bunn, D.W., Karakatsani, N., Forecasting electricity prices, EMG Working Paper, London Business School, 2003 Cabero, J., Baillo, A., Cerisola, S., Ventosa, M., Garcia-Alcalde, A., Peran, F., Relano, G., A medium-term integrated risk management model for a hydrothermal generation company, IEEE Transactions on Power Systems 20(3), 2005, 13791388 Conejo A.J., Contreras J., Espinola R., Plazas M.A., Day-ahead electricity price forecasting using the wavelet transform and ARIMA models, IEEE Transactions on Power Systems 20(2), 2005, 1035-1042 Contreras J., Espinola R., Nogales F.J., Conejo A.J., ARIMA models to predict next-day electricity prices, IEEE Transactions on Power Systems 18(3), 2003, 10141020 Eydeland A.,Wolyniec K., Energy and Power Risk Management, Wiley, Hoboken, NJ, 2003. Han J., Kamber M., Data mining: Concepts and Techniques, Morgan Kaufmann, 2000 Hinz, J., Modeling day-ahead electricity prices, Applied Mathematical Finance 10(2), 2003, 149-161 Mandal P., Senjyu T., Funabashi T., Neural networks approach to forecast several hour ahead electricity prices and loads in deregulated market, Energy Conversion and Management 47, 2006, 2128–2142 Mielczarski W., Michalik G., Widjaja M., Bidding strategies in electricity markets, Proceedings of the 21st IEEE International Conference Power Industry Computer Applications PICA'99, 1999, 71-76 Osowski S., Sieci neuronowe w ujęciu algorytmicznym, WNT, 1996 Palit A., Popovic D., Computational Intelligence in Time Series Forecasting: Theory and Engineering Applications, Springer, 2005 Rodriguez C.P., Anders G.J., Energy price forecasting in the Ontario competitive power system market, IEEE Transactions on Power Systems 19(1), 2004, 336-374 Shahidehpour M., Yamin H., Zuyi L., Market Operations in Electric Power Systems: Forecasting, Scheduling and Risk Management, Wiley & Sons, Inc., 2002 Stoft, S., Power System Economics: Designing Markets for Electricity, Wiley-IEEE Press, 2002 Weron R., Modeling and Forecasting Loads and Prices In Deregulated Electricity Markets, Agencja Rynku Energii S.A., 2006 Weron R., Misiorek A., Forecasting spot electricity prices: A comparison of parametric and semiparametric time series models, International Journal of Forecasting, w druku Wyłomańska A., Borgosz-Koczwara M., Optimal bidding strategies on energy market under imperfect information, Proceedings of the European Electricity Market EEM-05 Conference, Łódź, 2005, 67-73 Sztuczna inteligencja kontra modele statystyczne [21] [22] [23] Wyłomańska A., Borgosz-Koczwara M., The equilibrium models in oligopoly electricity market, Proceedings of the European Electricity Market EEM-04 Conference, Łódź, 2004, 67-75 Zhang L., Luh P.B., Neural network-based market clearing price prediction and confidence interval estimation with an improved extended Kalman filter method, IEEE Transactions on Power Systems 20(1), 2005, 59-66 Zhaohui Tang, Maclennan J., Data Mining with SQL Server 2005, Wiley, 2005 47