Projekt napravljen u sklopu predmeta Projekt iz programske potpore na 3. godini preddiplomskog studija na Fakultetu elektrotehnike i računarstva pod mentorstvom doc. dr. sc. Marka Čupića u akademskoj godini 2017./2018.
Vremenska serija poredani je niz podataka \(x(t),\ t \geq 0\) gdje je \(x(t)\) tipično skalarna vrijednost.
Problem predikcije vremenske serije jest problem predviđanja jedne ili više sljedećih vrijednosti na temelju prethodno viđenih vrijednosti.
U okviru ovog projekta razvili smo aplikaciju za predviđanje vremenskih serija koristeći statističke modele, modele temeljene na umjetnim neuronskim mrežama i model temeljen na genetskom programiranju.
Od statističkih modela implementirali smo AR (Auto regressive) i MA (Moving average) modele.
Implementirali smo dvije umjetne neuronske mreže: umjetnu neuronsku mrežu s vremenskim odmakom (engl. Time Delay Neural Network, skraćeno TDNN) i Elmanovu neuronsku mrežu. TDNN je ustvari potpuno povezana unaprijedna neuronska mreža koja na ulaz dobiva \(n\) prošlih vrijednosti, a na izlazu daje jednu ili više vrijednosti koje predviđa.
U genetskom programiranju koristimo stablo operatora kako bi pronašli izraz koji najbolje predviđa zadanu vremensku seriju.
Umjetne neuronske mreže možemo trenirati s četiri metaheuristike: simulranim kaljenjem, populacijskim genetskim algoritmom, genetskim algoritmom sa selekcijom potomstva (engl. Offspring selection genetic algorithm) i optimizacijom roja čestica (engl. Particle swarm optimization). Osim metaheuristika, implementirali smo algoritam unazadne propagacije (engl. Backpropagation).
Metaheuristike traže parametre umjetne neuronske mreže. Parametri umjetne neuronske mreže s vremenskim odmakom su njezine težine, a parametri Elmanove neuronske mreže su njezine težine i početne vrijednosti kontekstnog sloja.
Rješenje metaheuristike je vektor realnih brojeva koji sadrži parametre umjetne neuronske mreže. Broj komponenti vektora rješenja jednak je broju parametara umjetne neuronske mreže.
Kaznu rješenja definirali smo kao srednju kvadratnu pogrešku koju umjetna neuronska mreža ostvaruje nad ulaznim skupom podataka. Dobrotu rješenja definirali smo kao negativnu kaznu.
Simulirano kaljenje koristi geometrijsko hlađenje. Susjede generiramo dodavanjem slučajnog broja, iz Gaussove razdiobe, na trenutnu vrijednost komponente rješenja.
Korisnik kroz sučelje može odabrati početnu i završnu temperaturu hlađenja, te može unesti proizvoljan parametar \(\sigma\) Gaussove razdiobe.
Implementirali smo populacijski genetski algoritam koristeći turnirsku selekciju, BLX-\(\alpha\) križanje i mutaciju Gaussovom razdiobom.
Koristimo jednostavnu regulaciju brzine čestice. Čestica može biti potpuno ili djelomično informirana u potpuno povezanoj topologiji.
Korisnik može odabrati proizvoljan broj iteracija. Treniranje može biti grupno ili pojedinačno, te se može koristiti proizvoljna stopa učenja \(\mu\).
U stablo operatora koje predstavlja izraz s kojim predviđamo vremensku seriju mutiramo i križamo njegova podstabla.
Luka Banović (voditelj tima) | statistički modeli, grafičko korisničko sučelje, dokumentacija |
Herman Zvonimir Došilović | evolucijski algoritmi, umjetne neuronske mreže, web stranica |
Matej Grcić | backpropagation algoritam, umjetne neuronske mreže, grafičko korisničko sučelje |
Marin Sokol | statistički modeli, genetsko programiranje, grafičko korisničko sučelje |