Sve o RNN i LSTM mrežama i kako predvideti kretanje cena na berzi
Ah, dobrodošli u StatLand, mesto gde se brojevi igraju, algoritmi plešu, a veštačka inteligencija priča priče! Naš dragi prijatelj, StatSquatch, poznat po svom srcu većem od standardne devijacije i optimizmu koji prkosi svakom outliersu, nedavno je doživeo klasičnu priču o brzom bogaćenju… ili, u njegovom slučaju, brzom osiromašenju.
StatSquatch je, naime, uložio svoju poslednju paru u firmu zvučnog imena „Get Rich Quick Co.“. Obećanja su prštala kao varnice iz pokvarenog transformatora: „Nepogrešivi signali! Garancija zarade! Budućnost je svetla, ako samo pratite naš model!“. StatSquatch je, sav srećan, čekao jutro i prve dividende. Umesto toga, dočekao ga je kolaps. Akcije „Get Rich Quick Co.“ strmoglavile su se brže nego StatSquatch na rolerkosteru. U tom trenutku, gledajući u svoj prazan džep, StatSquatch je shvatio: da mu je samo neko rekao pre juče šta će se desiti danas! Da mu je samo neki magični algoritam mogao da „zapamti“ prethodna loša obećanja firme, istorijski nestabilan rast, i sve one suptilne naznake propasti, možda bi izbegao finansijsku katastrofu. Shvatio je, treba mu nešto što ume da predvidi propast pre nego što se desi. Treba mu – Rekurentna Neuronska Mreža (RNN)!
I upravo o tome ćemo danas pričati: kako da izbegnete StatSquatchovu sudbinu (barem na berzi!), razumevanjem moćnih alata za predviđanje zasnovanih na sekvencijalnim podacima. Spremni? Vežite se, jer ulazimo duboko u svet RNN i LSTM mreža!
Zašto su klasične mreže nemoćne pred vremenskim serijama
Pre nego što zaronimo u rekurentne mreže, hajde da shvatimo zašto se one uopšte pojavljuju. Zamislite standardnu neuronsku mrežu, onu klasičnu, poznatu i kao Feedforward Neural Network. To je kao detektiv koji pamti samo poslednji trag. Ako mu date fotografiju sumnjivca, on će je analizirati i reći vam da li je prepoznao lice. Ali ako mu date seriju fotografija koje prikazuju sumnjivca kako se kreće kroz grad, jednu po jednu, on će svaku fotografiju tretirati kao potpuno nov i izolovan slučaj. Neće „povezati tačke“ i shvatiti putanju kretanja, niti će „zapamtiti“ da je ista osoba bila i na prethodnoj slici!
E, pa, klasične mreže funkcionišu na sličan način. One su maestralne u zadacima gde je svaki ulaz nezavisan od prethodnog. Klasifikacija slike? Sjajno. Prepoznavanje lica? Nema problema. Ali kada se suoče sa vremenskim serijama – podacima gde redosled i kontekst prethodnih ulaza imaju ogroman značaj – one jednostavno ostaju zbunjene.
- Tekstualni podaci: Razumevanje rečenice zavisi od prethodnih reči. Reč „banka“ ima različito značenje u „obala reke banka“ i „finansijska banka“.
- Audio podaci: Razumevanje govora zavisi od prethodnih fonema i reči.
- Video podaci: Razumevanje akcije zavisi od prethodnih kadrova.
- Berzanski podaci: Kretanje cene danas nije nezavisno od kretanja cene juče, pre nedelju dana, ili čak pre godinu dana. Odluke investitora, makroekonomski trendovi, psihologija tržišta – sve to gradi sekvencijalni kontekst.
Klasične mreže jednostavno nemaju mehanizam da „zapamte“ informacije iz prethodnih vremenskih koraka. Svaki novi ulaz tretira se kao potpuno nov, sveti i jedinstveni podatak. To je kao da pokušavate da razumete priču tako što čitate samo svaku desetu reč, bez ikakve povezanosti. Za predviđanje berze, gde je istorija, koliko god se trudili da je ignorišemo, često ključna za razumevanje sadašnjosti i projekciju budućnosti, ovakav pristup je, blago rečeno, nedovoljan. Upravo ovde na scenu stupaju rekurentne mreže, koje su, za razliku od detektiva sa amnezijom, sposobne da se sećaju!
Unrolling tehnika: Kako RNN vidi prošlost
Dobro, StatSquatch, vreme je da prestanemo da patimo i počnemo da učimo! Klasične mreže su bile loše u pamćenju? U redu. Upoznajte Rekurentne Neuronske Mreže (RNN) – arhitekturu koja je dizajnirana upravo za rad sa sekvencijalnim podacima. Glavna razlika? RNN ima povratnu petlju (recurrent loop)!
Šta to zapravo znači? Zamislite neuronsku mrežu koja ne samo da uzima ulaz i daje izlaz, već i prosleđuje informaciju iz svog „skrivenog stanja“ (hidden state) nazad sebi, kao ulaz za sledeći vremenski korak. To je kao da detektiv, nakon što pogleda jednu fotografiju, zapiše beleške o tome šta je video, a te beleške koristi kao dodatni trag kada analizira sledeću fotografiju. Na taj način, mreža stvara neku vrstu kratkoročnog pamćenja o prethodnim ulazima.
Da bismo lakše razumeli kako RNN funkcioniše kroz vreme, koristimo tehniku zvanu „unrolling“ ili „odmotavanje“. Zamislite da tu povratnu petlju „razmotate“ kroz vreme. Umesto jedne kutije koja se vraća u sebe, vidite seriju identičnih neuronskih mreža, gde svaka predstavlja jedan vremenski korak. Izlaz skrivenog sloja iz koraka t-1 postaje dodatni ulaz za skriveni sloj u koraku t.
Ključna stvar kod „odmotavanja“ je da, iako izgleda kao da imamo mnogo različitih mreža, u suštini je to ista mreža koja koristi iste težine (weights) za svaki vremenski korak. To znači da RNN uči kako da obradi sekvencu kroz ponavljanje istih operacija, ali sa promenljivim „pamćenjem“ koje se ažurira u svakom koraku. To je vrlo elegantan način da se modelira zavisnost od prošlosti bez kreiranja potpuno nove mreže za svaki mogući vremenski korak.
Ako ste vizuelni tip, preporučujem da pogledate ovaj fantastičan video koji na jednostavan i duhovit način objašnjava koncept povratnih petlji i deljenih težina u RNN mrežama. Baš kao što profesor StatQuest to radi:
