Temat: algorytm neuronowy ekspercki etc. dla surowców...

Temat ma już miesiąc, ale może go trochę odkopię.
Akurat kończę magisterkę na potrzeby której pisałem system predykcji cen energii elektrycznej, więc mogę podzielić się doświadczeniami związanymi z problemem predykcji szeregów czasowych z wykorzystaniem uczenia maszynowego.

Autor nie napisał jak dużo jest danych wejściowych a to sprawa kluczowa w takim przypadku. Jeśli dane liczymy w gigabajtach to metody typu sieci neuronowe raczej odpadają ze względu na dużą zasobożerność. W przypadku tak dużych zbiorów danych lepiej rozejrzeć się za implementacjami np. lasów losowych, które są szybkie, łatwe w implementacji i dają świetne rezultaty a dodatkowo nie wymagają ustalania praktycznie żadnych parametrów.

Jeżeli danych jest mniej (liczone w megabajtach) to można próbować z sieciami neuronowymi. Ale i w tym przypadku raczej nie chodzi tutaj o budowanie modelu na podstawie jednej sieci, a wielu sieci, których rezultaty są następnie łączone (http://en.wikipedia.org/wiki/Ensemble_learning , komitety, stacking, bagging, boosting itp).
Wykorzystanie sieci neuronowych wiąże się z wieloma wyborami, warto wypróbować różne metody uczenia (backpropagation, resilient propagation czy Levenberg-Marquardt), różne rozmiary sieci i wartości parametrów. Co do rozmiarów sieci to podejścia są generalnie dwa, można zbudować sporo małych sieci (1-2 warstwy ukryte z max kilkudziesiącioma neuronami), bądź użyć bardzo dużych sieci (2-4 warstwy ukryte po 100-1000 neuronów). Drugie rozwiązanie ma większe możliwości, ale trzeba uważać by nie przetrenować modelu (ograniczać liczbę iteracji) i trzeba mieć szybką implementację - a o to może być trudno (szukałem czegoś w javie, jest kilka bibliotek ale nadających się raczej do małych sieci więc i tak skończyło się na własnej implementacji). Jak widać zabawy z tym może być naprawdę dużo, nawet jak uda się znaleźć znośną implementację to zbudowanie dobrej sieci jest trudne.

Z podejść statystycznych to pewnie warto zobaczyć jak będą spisywać się modele takie jak ARIMA czy GARCH i wiele podobnych (zrobią to o czym pisał p. Damian z tym, że w bardziej automatyczny sposób, np wyłapią sezonowości). Pierwsze z brzegu porównanie różnych modeli statystycznych (dotyczą energii): http://www.im.pwr.wroc.pl/~hugo/publ/RWeronMisiorek08_...

Inne uwagi:
- Nie prognozować bezpośrednio zapotrzebowania na surowiec Y a raczej zmianę zapotrzebowania np. w ciągu dnia, bądź logartym zapotrzebowania - bez tej prostej metody stacjonaryzacji szeregu większość opisanych tutaj metod nie będzie działać, bo trend w danych psuje wyniki.
- Trzeba zwrócić uwagę na sezonowość danych. Np. cena energii elektrycznej jest różna w różnych porach dnia, dlatego buduje się zwykle osobne modele dla każdej godziny.
- Ograniczyć rozmiar danych wejściowych. Może się wydawać, że im więcej danych tym lepiej, ale tak nie jest. Dlatego zamiast pchać do jednej sieci neuronowej wszystko na raz (historyczne zużycie, dane meteorologiczne, awarie itp) to lepiej wybrać jedynie najważniejsze dane. Metody wyboru istotnych danych to kolejna wielka gałąź nauki, często widuje się tu analizę korelacji czy metody typu mutual information.
- Różne metody uczenia maszynowego można przetestować w oprogramowaniu typu WEKA, Matlab lub wspomniany wcześniej R. I dopiero później brać się za konkretną implementację.
- Uważać by do danych testowych nie zakradły się dane wykorzystywane do uczenia modeli.

Jeśli chodzi o systemy ekspertowe to już zupełnie inne podejście do problemu. W tym przypadku będzie nam potrzebna baza wiedzy i reguł, które są zwykle wprowadzane ręcznie przez ekspertów w danej dziedzinie. Nie spodziewałbym się znaleźć żadnych darmowych bibliotek czy gotowych rozwiązań. Jeżeli takowe istnieją to są one objęte tajemnicą. Myślę, że działanie p. Damiana można uznać za taki system ekspertowy. Czy warto? To po raz kolejny zależy od ilości i jakości danych.

W skrócie:
- jeżeli danych jest bardzo dużo to bierzemy lasy losowe i pewnie będzie nam z tym dobrze
- jeżeli mamy sporo danych dobrej jakości to nalepiej połączyć kilka technik (statystyczne, sieci neuronowe, maszyny wektorów nośnych SVM i inne ręczne hacki powstałe w analizie danych)
- jeżeli danych jest mało lub są niskiej jakości lub mamy do dyspozycji eksperta to tworzymy system ekspertowyTen post został edytowany przez Autora dnia 17.07.13 o godzinie 09:20

Temat: algorytm neuronowy ekspercki etc. dla surowców...

Marcin K.:

Inne uwagi:
- Nie prognozować bezpośrednio zapotrzebowania na surowiec Y a raczej zmianę zapotrzebowania np. w ciągu dnia, bądź logartym zapotrzebowania - bez tej prostej metody stacjonaryzacji szeregu większość opisanych tutaj metod nie będzie działać, bo trend w danych psuje wyniki.

A co sądzisz o zastosowaniu sieci rezonansowych (ART2)? IMHO powinno to rozwiązać ten problem oraz braki danych na wejściu.

Temat: algorytm neuronowy ekspercki etc. dla surowców...

Nie używałem nigdy sieci rezonansowych, więc to co napiszę będzie bardziej subiektywne niż obiektywne. Wygląda na to, że ART są to dość skomplikowane konstrukcje wywodzące się z neuronauk i podchodziłbym sceptycznie do zastosowania tego w przemyśle. Co więcej trudno znaleźć badania dotyczące predykcji szeregów czasowych wykorzystujących ART (szybkie spojrzenie na google scholar) pomimo że bada się je już ponad 20 lat. Jeżeli nikt nie publikuje wyników to można się spodziewać, że "szału nie będzie" w tym zastosowaniu. Większy sukces odniosła w ostatnich latach podobna sieć RBM (http://en.wikipedia.org/wiki/Restricted_Boltzmann_machine ) uczona algorytmem contrastive divergence Hintona (też pozwala na uczenie nienadzorowane, nawet w Science o niej pisali http://www.cs.toronto.edu/~hinton/science.pdf ) ale ona też raczej nie przyda się w prognozie zapotrzebowania czy cen.

Stacjonaryzacja szeregów nie powinna być trudna (zamiast ciągu p1,p2,p3 ... użyć (p2-p1), (p3-p2), (p4-p3) ... i po sprawie). Gorzej z brakami danych o ile takie są. W każdym razie trzymałbym się z daleka od mocno kombinowanych sieci neuronowych.Ten post został edytowany przez Autora dnia 17.07.13 o godzinie 09:09

konto usunięte

Temat: algorytm neuronowy ekspercki etc. dla surowców...

Sieci ART były chyba opatentowane, stąd publikacje na ich temat mogą być ograniczone.

Temat: algorytm neuronowy ekspercki etc. dla surowców...

Lasy losowe też są opatentowane http://www.google.com/patents/US6009199 a publikuje się dużo i często, więc to chyba nie jest przeszkodą (zresztą w wielu krajach nie można opatentować algorytmu). Oczywiście jest zawsze jakieś ziarno niepewności, czy aby na pewno ktoś tam czegoś nie ukrywa przed światem.

Następna dyskusja:

oferta pracy dla programist...




Wyślij zaproszenie do