Jedna od najuzbudljivijih oblasti razvoja informacionih tehnologija koja je našla primenu u praksi, nesumnjivo je razvoj r azvoj veštačkih neuronskih neuronskih mreža. U proteklim godinama, veštačke neuronske mreže su prešle put od istraživačkih istraživačkih laboratorija do primena u realnim situacijama. Od mnogih smatrane za najveći tehnološki tehnološki napredak u protekloj deceniji, neuronske mreže pokazale su se nezamenljivim u situacijama gde je mogućnost identifikacije skrivenih veza i obrazaca ključna za uspešna predvidanja. Neke veštačke neuronske mreže zaista predstavljaju modele bioloških, neke ne, ali istorijski, inspiracija za oblast neuronskog računanja došla je od želje za stvaranjem veštačkog sistema, sposobnog za obavljanje sofisticiranih, "inteligentnih" računanja, sličnih onima koje rutinski obavlja ljudski mozak. Entuzijazam vezan za ovu oblast trenutno je usmeren na dve perspektive. Prva se tiče drastičnog povećanja mogućnosti savremenih računara i razvoja softverskih alata koji su laki za korišćenje (tzv. user-friendly software) koji omogućavaju omogućavaju brz i lak razvoj neuronskih mreža od strane pojedinaca i grupa koji poseduju samo osnovno znanje o ovoj oblasti, bez potreba ovladavanja kompleksnim principima neuronskog računanja. Druga perspektiva je evidentna uspešnost neuronskih mreža u oblastima u kojima tradicionalni računarski sistemi imaju brojne probleme i nedostatke. Sličnost sa biološkim procesima obrade informacija, omogućiće mašinsko rešavanje problema koji zahtevaju "ljudski dodir". To je moguće jer mreža prvo "uči" iz dostupnih istorijskih podataka (podataka o slučajevima koje je rešavao sam čovek), pa tek onda pristupa rešavanju problema. Pored toga, sama veštačka neuronska mreža realizuje se na računaru, pa zadržava bitnu osobinu "hladne mašinske racionalnosti". racionalnosti". Tako će nam neuronska mreža pomoći u donošenju odluke pri situaciji u kojoj nam slabi moć rasuđivanja. Na primer, klasični problem investicionog odlučivanja je konsolidovati brojne faktore tržišta u jasnu kupi/prodaj odluku. Može se doneti samo intuitivna odluka, bazirana na više faktora, jer jedni kažu kupi, dok drugi kažu prodaj. Pri tom, intuitivno donošenje odluke u stresnoj situaciji (zbog straha od gubitka), je najgori pristup odlučivanju.
http://loya.5u.com/strane/toc.html
Šta je veštačka neuronska mreža? Veštacka neuronska mreža je paradigma obrade informacija inspirisana procesiranjem kakvo vrši biološki mozak. Pri tom, veštacka neuronska mreža koristi ogranicen broj koncepata iz bioloških neuronskih sistema. Ključni element ove paradigme je neuobičajena struktura procesa obrade informacija, sastavljena od velikog broja međusobno povezanih elemenata procesiranja koji zajednički rade na rešenju problema. Ove mreže, kao i ljudi, uče na osnovu primera tj. istorijskog iskustva, one nisu programirane eksplicitnim instrukcijama, već uče da izvrše zadatak koristeći primere iz stvarnog života. Veštačke neuronske mreže su u stanju da prepoznaju smisao u komplikovanim ili nepotpunim podacima, da prepoznaju obrasce koji su neprepoznatljivi ljudima zbog svoje složenosti i koji se ne mogu dobiti korišćenjem drugih kompjuterskih tehnika. Veštacke neuronske mreže su sofisticirane tehnike modeliranja, sposobne da modeliraju veoma kompleksne funkcije.
Analogija sa biološkim neuronskim mrežama Ljudski mozak se sastoji od velikog broja ćelija koje se zovu neuroni. U mozgu postoji oko 100 milijardi neurona koji su masovno međusobno povezani - prosečan broj veza svakog neurona sa ostalim iznosi nekoliko hiljada, mada ovaj broj varira u veoma širokim granicama. Neuroni su organizovani u grupe koje se zovu mreže gde svaka mreža sadrži više hiljada neurona masovno međusobno povezanih. Svaki neuron je specijalizovana ćelija sposobna da prenosi elektrohemijski signal. Ćelija se sastoji od tela (soma) koje u svom centru poseduje jezgro (nukleus), razgranate ulazne strukture (dendroni) i izlaznu osu (akson). Akson jedne ćelije povezan je sa dendronom druge. Sinapsa je funkcionalni međumembranski kontakt aksona jednog
neurona i dendrona drugog. Kada je neuron aktiviran, on šalje elektrohemijski signal preko aksona ka drugoj ćeliji. Signal može biti promenjen od strane sinapse koja je sposobna da poveća ili smanji snagu veze i time prouzrokuje aktiviranje druge ćelije ili njenu ukočenost. Jedan od najuticajnijih istraživača neuronskih sistema, Donald Hebb, izneo je postulat da se učenje u suštini sastoji u menjanju (podešavanju) "jačina" sinaptickih veza. Na slici je dat primer dva neurona i veze izmedu njih:
Veštačke neuronske mreže Veštacka neuronska mreža emulira biološke procese. Sastoji se od elemenata procesiranja povezanih u arhitekturu mreže. Veštacki neuron prima ulazne signale analogne elektrohemijskim impulsima i odgovara adekvatnim izlazom koji korespondira izlazu biološkog neurona. U samom veštačkom elementu procesiranja, signali se mogu menjati slicno kao što se menjaju sinapsama kod bioloških sistema. Veze izmedu bioloških i veštačkih neuronskih mreža date su u sledecoj tabeli: Tabela 1 Biološka mreža Soma (telo) Dendroni (drvo) Osa Sinapsa
Veštačka mreža Čvor Ulaz Izlaz Težina
Glavne razlike biloških mreža i konvencionalnih računara:
Tabela 2 Biološka mreža Neuroni: brzina - mala (~10 2 Hz) broj - veliki (~10 9) jednostavan procesor paralelna obrada
Veštačka mreža Računarski procesor: brzina - velika (~10 9 Hz) broj - mali (stotine) kompleksan procesor sekvencijalna obrada
Sa inženjerskog stanovišta biološki neuroni su slabi procesori i prilicno su nepouzdani. U mozgu ovo je prevaziđeno velikim brojem neurona i međusobnih veza kao i paralelnom obradom. Klasični softver se može koristiti za unapred definisan skup problema, dok neuronska mreža ima svojstvo adaptibilnosti pa se može koristiti za najrazličitije probleme. Grubo receno, konvencionalni računari su pogodni za rešavanje dobro definisanih zadataka obrade informacija u stabilnom i savršeno poznatom okruženju. Neuronske mreže su dobre u obavljanju zadataka kada su podaci heterogeni, nesređeni, nesigurni pa cak i nekonzistentni i kada ne postoje savršena rešenja za praktične probleme. Pošto će u nastavku rada biti reči samo o veštačkim neuronskim mrežama, koristiće se antropomorfna terminologija, pa se neće naglašavati da je mreža veštačka niti da je neuron veštački.
Osnove neuronskih mreža 1. Neuron - prima ulaze, procesira ih i proizvodi jedan izlaz. Ulaz može biti sirovi podatak ili izlaz iz nekog drugog neurona. Na sledećoj slici je prikazano procesiranje informacije u veštackom neuronu.
2.Mreža. Svaka mreža sastoji se od neurona grupisanih u slojeve. Pored ulaznog i izlaznog sloja, mreža može imati jedan ili više skrivenih slojeva. Na slici je dat primer mreže sa jednim skrivenim slojem.
3.Struktura mreže . Topologije mreže mogu biti razlicite zavisno od problema koji se rešava, vrste ulaznih podataka, vrste izlaznih podataka i drugih faktora. To je razumljivo
s obzirom da se neuronske mreže primenjuju u najrazličitijim oblastima ljudske delatnosti. 4. Procesiranje informacije u mreži. Osnovni koncepti koji se odnose na procesiranje su: 1.
Ulazi - moraju biti u numeričkom obliku. Ako to nije slučaj, moraju se
prevesti u numeričke ekvivalencije. Oblik i vrsta ulaznih podataka mogu biti različiti i oni umnogome određuju karakteristike mreže. Svaki ulaz korespondira jednom atributu. Na primer, kod mreže koja služi za iznalaženje mogućnosti subjekta da vrati kredit, ulazni atribut može biti veličina mesečnog prihoda. 2.
Izlazi predstavljaju rešenje problema. Mreža može imati jedan ili više izlaza,
zavisno od konkretnog problema. Izlaz može biti kontinualna vrednost ili kvazi-logicka vrednosti, npr. +1 za "da" a 0 za "ne". 3.
Težine su ključni elementi neuronske mreže. Mreža uči podešavajuci težine
prema istorijskim podacima koji se kroz nju propuštaju. Težina izražava relativnu značajnost svakog ulaza u neuron, ona predstavlja sposobnost ulaza da pobudi neuron. 4.
Funkcija sumiranja množi svaki ulaz odgovarajućom težinom a zatim
sumira dobijene umnoške. Formula za n ulaza u jedan neuron ima sledeći oblik:
5.
Funkcija transformacije određuje da li rezultat funkcije sumiranja (interna
aktivizacija neurona) može da proizvede izlaz. Veza izmedu aktivizacije i izlaza može biti i linearna i nelinearna. Postoji više tipova te funkcije, a sama činjenica da funkcija transformacije neurona skrivenih slojeva može biti nelinearna je od izuzetne važnosti. U suprotnom, da je moguća samo linearna transformacija, mreža bi bila u stanju da modeluje samo linearne funkcije, jer je poznato da kombinacija linearnih funkcija daje linearnu funkciju. Zato je funkcija transformacije najčešće nelinearna, a jedna od najpoznatijih je sigmoidna funkcija:
gde je YT normalizovana vrednost rezultata funkcije sumiranja Y. Normalizacija znači da se ovom transformacijom izlazni nivo dovodi u "razumne" granice, u ovom slučaju, između 0 i 1. Kada ne bi bilo ove transformacije izlazna vrednost bi mogla da bude isuviše velika, naročito u kompleksnijim mrežama sa više skrivenih slojeva. Čest je slučaj da se koristi i funkcija praga (threshold) (npr. sve iznad 0.5 postaje 1, a sve ispod 0.5 postaje 0). 6.
Ucenje. Neuronska mreža uči iz iskustva. Proces učenja sastoji se iz tri
zadatka: 1.
računanje izlaza,
2.
upoređivanje dobijene vrednosti sa željenom,
3.
podešavanje težina i vraćanje na prvi korak.
Pre početka procesa učenja postavljaju se inicijalne vrednosti težina slucajno ili po određenom pravilu. Sa svakim novim setom podataka, težine će se podešavati tako da se smanjuje razlika izmedu stvarnog i željenog ulaza. Ova razlika se naziva delta. U najboljem slučaju delta treba da se svede na nulu, međutim u praksi obicno je slučaj da se zadaje nivo greške (npr. 5%) koji treba postići da bi se okončao proces učenja ili se unapred zadaje broj iteracija pri učenju. Ključ je da promene težina idu u pravom smeru (da konvergiraju), jer se samo tako delta smanjuje.
Arhitektura mreže Feed-forward mreže Feed-forward mreže dozvoljavaju kretanje signalu samo u jednom smeru - od ulaza ka izlazu. To znači da jedan neuron može da vrši uticaj samo na neuron koji se nalazi u narednom sloju (sloju koji je bliži izlazu). Ove mreže su pogodne za prepoznavanje oblika. Feed-forward mreže obicno brzo daju izlaz za dat ulaz. Na slici je predstavljena feed-forward mreža sa tri sloja:
Rekurentna mreža (feed-back) Primer rekurentne mreže dat je na sledecoj slici:
Kod ovih mreža signali mogu da putuju u oba smera zato što su u mrežu ubačene neke vrste petlji. Ulazni atributi moraju proći mrežu više od jednog puta pre nego što se proizvede odgovor. Ovakve strukture koriste se za rešavanje dinamičkih problema, veoma su moćne ali mogu da postanu vrlo komplikovane i mogu iziskivati mnogo vremena za podešavanje. Stanje ovih mreža menja se dok ne dostignu tačku ravnoteže. Ostaju u ravnotežnom stanju sve dok se ne pojavi novi ulaz i tada je potrebno naći novo ravnotežno stanje. Potrebno im je obicno duže vreme da daju izlaz (u odnosu na feed-forward mreže). Rekurentne mreže obicno imaju veliku sposobnost adaptibilnosti.
Prikupljanje i priprema podataka Kada je problem jasno definisan, potrebno je prikupiti podatke. Set podataka se sastoji iz određenog broja slučajeva (vektora), od kojih svaki sadrži određeni broj vrednosti za ulazne i izlazne varijable. Treba doneti odluku koje će se promenljive koristiti. Izbor varijabli mora biti intutitivan, a ekspertiza u određenoj oblasti daće nam ideju koje promenljive mogu imati uticaj. Na početku, dobro je ukljuciti sve promenljive za koje se smatra da mogu imati uticaj pa se tokom treninga odredene mogu izbaciti ako se utvrdi
da je uticaj marginalan ili da ga nema. Veliki broj modernih aplikacija ima sposobnost određivanja neuticajnih promenljivih. Podaci se dele na podatke za trening i podatke za testiranje. Na osnovu podataka za trening vrši se učenje mreže tj. podešavanje težina dok se podaci za testiranje koriste za validaciju mreže. Vrsta ulaznih podataka umnogome odreduje topologiju i algoritam učenja. S druge strane, anticipirana topologija mreže i algoritam učenja utiču na izbor podataka. Podaci moraju biti u numeričkom obliku, a ako postoje kvalitativne kategorije i nominalne promenljive, mora se naći način da se izraze u numeričkom obliku. Na primer, neuronska mreža koja treba da procenjuje vrednost nekretnina kao ulaznu promenljivu mora da ima gradsku opštinu koja utice na cenu nekretnine. Iako bi bilo najlakše da se ova promenljiva ostavi kao nominalna, trening bi bio otežan, pa treba uvesti rejting. Podaci moraju biti određenog kvaliteta, ne smeju biti dvosmisleni i treba se potruditi da imaju što manje grešaka, iako skoro sve moderne aplikacije omogućavaju prepoznavanje "problematičnih" setova podataka i njihovu izolaciju. Podaci moraju pokriti i izuzetke kao i granične uslove domena problema. Neuronske mreže su tolerantne i na podatke sa šumom ali ova tolerancija ima granicu.
Priprema za trening Neophodno je pre svega izabrati algoritam učenja. Pre nego što se počne sa treningom, mora se odrediti nekoliko parametara, kao što je vrednost parametra koji determiniše brzinu učenja (alfa), zatim veličina praga (threshold) i na kraju, početna vrednost težina. Treba zatim izvršiti izbor strukture mreže. Broj ulaznih i izlaznih čvorova odreden je samim podacima za trening, ali je pitanje koliko treba uvesti skrivenih slojeva i koliko
svaki treba da ima neurona. Neki alati imaju mogućnost da sami odrede najbolju strukturu. Na kraju, potrebno je podatke formatirati skladno zahtevima konkretne mreže i njenog algoritma.
Trening mreže Mreži se prezentiraju podaci za trening i ona uči sve dok nije u stanju da proizvede izlaz koji poštuje unapred određenu toleranciju. Kao što je već rečeno, pošto ova faza može veoma dugo da traje, nekada se unapred zadaje broj maksimalnih iteracija. Veći broj podataka obezbeđuje bolju obučenost mreže, ali zahteva više vremena za učenje. Problem kod treninga je što se ne minimizira greška za koju smo zainteresovani greška koja će se javiti kad se istreniranoj mreži predoči novi ulazni slucaj - već se minimizira greška na setu podataka za trening. Jedna od najproblematičnijih manifestacija ovog problema je kad se mreža "preuči" (over-learning problem). Kompleksnije mreže (sa više skrivenih slojeva i više neurona) su podložnije ovoj pojavi. Ovo se najlakše može objasniti, ako zamislimo da naša mreža pokušava da modelira krivu koja prolazi kroz tačke koje određuju vrednosti u podacima za trening. Kako traje učenje, kriva sve bolje odgovara podacima. Medutim, u određenom trenutku, kriva počinje da uzima u obzir i svaki "podatak sa velikim šumom" koji je rasut daleko ispod ili iznad krive i neizbežno se deformiše. Ovo se zove "memorizacija" pa kriva nije više u stanju da predviđa dobro na novim podacima. Analogno primeru, kriva ne odgovara novim podacima, jer je "zaboravila" osnovno kretanje iz podataka za trening. Signal za opasnost od memorizacije je kad predvidanje na osnovu novih podataka postaje sve lošije iako se greška na podacima za trening smanjuje. Neke aplikacije pružaju mogucnost da prilikom treninga klasifikuju relevantne i nebitne ulazne promenljive, tako da se ovi drugi mogu izostaviti što nece uticati na sposobnost generisanja izlaza.
Testiranje mreže
Vrši se sa podacima za testiranje. Testiranje nam omogućava da proverimo valjanost funkcionisanja mreže tako što ćemo izlaze koje mreža generiše, porediti sa znanim izlazima i utvrditi da li zadovoljavaju predeterminisanu toleranciju (od mreže se dakle, ne ocekuje savršeno funkcionisanje - funkcionisanje bez greške). Ovakvo testiranje obično se naziva "crna kutija" testiranje. Rezultat možemo porediti sa drugim načinima klasifikovanja, npr. višestrukom regresijom. Poznato je da višestruka regresija uspešno klasifikuje ulaze u 50% slucajeva, a postoji dosta primera da neuronske mreže sa samo jednim skrivenim slojem nadmašuju ovaj procenat. Kao i trening, testiranje mora da uključi i rutinske i nerutinske slucajeve kao i ostale problematične situacije. Ako postoje velike devijacije, potrebno je izvršiti nov trening mreže i ako je neophodno, potrebno je isključiti problematicne podatke. Čak i ako neuronska mreža pokaže stepen tacnosti kao neka druga tradicionalna metoda, ipak ima razloga da se da prednost korišcenju mreže. Naime, mreža se može lako modifikovati i prilagoditi drugačijem problemu, dok je kod tradicionalnih metoda to najčešće veoma veliki posao ili je potpuno nemoguće. Koliko podataka koristiti za trening a koliko za testiranje? U literaturi se može naći odnos: 70% podataka iskoristiti za trening a preostalih 30% za testiranje. Naravno, ovu podelu treba uzeti više kao smernicu jer svaki konkretan primer zahteva i specificni pristup.
Implementacija Pri implementaciji neuronske mreže, projektant mora doneti brojne odluke: 1.
Koliki obim podataka za trening i testiranje izabrati?
2.
Koje algoritme učenja izabrati?
3.
Koju topologiju izabrati - broj neurona i njihovu konfiguraciju (ulazi,
slojevi, izlazi).
4.
Odrediti funkciju transformacije.
5.
Koju brzinu učenja izabrati?
6.
Koji su alati za dijagnozu i vrednovanje.
Kada se te odluke donesu, specifična konfiguracija se naziva paradigmom mreže.
Neke oblasti primena neuronskih mreža Neuronske mreže koriste se u brojnim i najrazličitijim oblastima. Navešćemo samo neke: •
Primenjuju se u raznim oblastima ekonomije. Imaju uspeha na finansijskim
tržištima gde nelinearna priroda finansijskih podataka čini primenu klasicnih metoda veoma teškom; •
u predvidanju vrednosti akcija superiorne su u odnosu na statističke metode;
•
donošenje odluka na osnovu velikog broja promenljivih;
•
ocena kreditne sposobnosti preduzeća (da li mu odobriti zajam ili ne);
•
predviđanje vremenskih serija vezanih za tražnju - marketinška analiza:
predviđanje budućih kupaca, ponašanje kupaca u budućnosti, prepoznavanje ciljnih grupa segmentiranje tržišta; •
•
prepoznavanje oblika, naročito prepoznavanje rukopisa; razne vrste dijagnoziranja, naročito medicinskog, modeliranje
kardiovaskularnog sistema; •
proučavanje rada mozga;
•
psihijatrijske procene;
•
vremenska prognoza;
•
kriminološka itraživanja;
•
vojna primena za automatsko prepoznavanje mete.
Prednosti neuronskih mreža Prednost neuronskih mreža je njihova sposobnost da uče koja im daje prirodniji interfejs ka modeliranju realnog sveta, u odnosu na klasične sisteme koji moraju biti programirani. Neuronske mreže su u stanju da pronađu veze izmedu pojava koje izmiču
ljudskom intelektualnom aparatu potpomognutom klasičnim softverskim alatima. Neuronske mreže imaju i mogucnost tolerancije nedostataka - mreža se sastoji od više elemanata procesiranja, pa može da funkcioniše i ako dode do oštećenja dela mreže. Sposobne su da generalizuju, pa ako im se prezentuje nekompletan skup ulaznih podataka, mreža će ipak biti u stanju da dà izlaz.
Nedostaci i ograničenja neuronskih mreža Neuronske mreže ne rade dobro ono što ni ljudi ne rade dobro. Nisu dobre za aritmetičke proračune i zadatke obrade podataka. Iako imju odličnu moć predviđanja, imaju slabu sposobnost objašnjavanja. Na slici je prikazan dijagram zavisnosti moći predviđanja i objašnjavanja. Vidimo da neuronske mreže odlično predvidaju a slabo objašnjavaju, potpuno suprotno od npr. stabala odlučivanja. Neuronska mreža ne može korisniku da objasni kako je došla do odredenog rešenja.
Dugo vreme treninga takođe može da predstavlja problem, a ako je potreban čest trening, to može učiniti aplikacije neupotrebljivim.