Sveučilište u Mostaru Fakultet prirodoslovno-matematičkih i odgojnih znanosti Studij Informatike Ines Matić Izgradnja neuronske mreže korištenjem softwerskog paketa Rapid Minera Diplomski rad Mostar, 2014. Sveučilište u Mostaru Fakultet prirodoslovno-matematičkih i odgojnih znanosti Studij Informatike Izgradnja neuronske mreže korištenjem softwerskog paketa Rapid Minera Diplomski rad Mentor: prof.dr.sc.Vojo Višekruna Student: Ines Matić Mostar, srpanj, 2014. 1 PODACI O DIPLOMSKOM RADU I. AUTORICA IME I PREZIME: Ines Matić DATUM I MJESTO ROĐENJA: 16.01.1991., Čapljina STUDIJ: Informatika MATIČNI BROJ: 589 DS/R II. DIPLOMSKI RAD TEMA: Izgradnja neuronske mreže korištenjem softwerskog paketa Rapid Minera BROJ STRANICA: 57 MENTOR:prof. dr.sc. Vojo Višekruna Datum predaje diplomskog rada: __________________________________ Datum odbrane diplomskog rada: _________________________________ Članovi povjerenstva: 1.__________________________________ 2.__________________________________ 3.__________________________________ Konačna ocjena diplomskog rada: ________________________________ Potpisa članova povjerenstva: 1._________________________________ 2._________________________________ 3._________________________________ 2 ZAHVALA Zahvaljujem se svojim roditeljima jer su mi omogućili da ispunim svoj san i bili mi potpora tijekom cijelog mog studija, a najviše kad mi je bilo najteže. 3 SADRŽAJ SAŽETAK ....................................................................................................................... 6 UVOD ............................................................................................................................... 7 1. 2. TEORIJA UMJETNE INTELIGENCIJE ............................................................ 8 1.1. Pojam i definicije umjetne inteligencije ............................................................. 8 1.2. Povijesni razvoj umjetne inteligencije ............................................................. 10 1.3. Područja umjetne inteligencije ......................................................................... 12 1.3.1. Računalni programi za šah ....................................................................... 12 1.3.2. Računalna lingvistika ............................................................................... 12 1.3.3. Ekspertni sustavi ....................................................................................... 12 1.3.4. Inteligentni agenti ..................................................................................... 13 1.3.5. Robotika .................................................................................................... 14 1.3.6. Računalni vid ............................................................................................ 14 1.3.7. Optičko prepoznavanje znakova (OCR) ................................................... 14 1.3.8. Računalne igre .......................................................................................... 14 TEORIJA NEURONSKIH MREŽA ................................................................... 16 2.1. Pojam i definicije neuronskih mreža ................................................................ 16 2.2. Povijesni razvoj neuronskih mreža .................................................................. 17 2.3. Osnovna svojstva neuronskih mreža ................................................................ 19 2.4. Vrste neuronskih mreža.................................................................................... 20 2.4.1. Biološke neuronske mreže ......................................................................... 20 2.4.2. Umjetne neuronske mreže ......................................................................... 22 2.5. Prednosti i nedostaci neuronskih mreža ........................................................... 27 2.6. Podjela neuronskih mreža ................................................................................ 28 4 3. 4. OBUČAVANJE NEURONSKIH MREŽA ......................................................... 32 3.1. Nadgledano obučavanje ................................................................................... 33 3.2. Nenadgledano (samoorganizirano) učenje ....................................................... 35 3.3. Backpropagation algoritam .............................................................................. 37 PRIMJER NEUROSNKE MREŽE ..................................................................... 38 4.1. Predmet izgradnje neuronske mreže ................................................................ 38 4.2. Program ............................................................................................................ 38 4.3. Opis tijeka projekta .......................................................................................... 38 4.3.1. Pripremanje podataka .............................................................................. 39 4.3.2. Importiranje podataka .............................................................................. 40 4.3.3. Obučavanje i treniranje mreže ................................................................. 45 4.3.4. Analiza rezultata ....................................................................................... 49 4.3.4.1. Performance Vector .............................................................................. 49 4.3.4.2. Example Set Role................................................................................... 52 4.3.4.3. Improved Neural Net ............................................................................. 53 4.3.5. Analiza uspješnosti ................................................................................... 54 4.3.5.1. Matrica grešaka .................................................................................... 54 4.3.5.2. Dodatne mjere analize uspješnosti........................................................ 55 ZAKLJUČAK ............................................................................................................... 56 LITERATURA .............................................................................................................. 57 5 SAŽETAK Korjeni umjetne inteligencije sežu u daleku prošlost, još u antičko doba. Od starih grčih filozofa i njihovih osnovnih pitanja iz logike, umjetna inteligencija se s vremenom razvija do današnjih računalnih programa za šah, robotike, inteligentnih agenata i ostalih područja. Između njenih raznih metoda, posebno mjesto zauzimaju neuronske mreže koje su svoje mjesto našle u mnogim područjima. Mnoga istraživanja pokazuju da neuronske mreže bolje rješavaju probleme od tradicionalnih i statističkih metoda. Od samog početka neuronske mreže su izučavane sa biološkog i tehnološkog pristupa. Biološki pristup istražuje neuronske mreže kao pojednostavljene simulacije ljudskog mozga, a drugi pristup tretira neuronske mreže kao tehnološke sustave za složenu obradu informacija. Vrlo važna karakteristika neuronskih mreža jest njihovo učenje na osnovu prošlih primjera, s tim da postoje nadgledano i nenadgledano obučavanje. Kod nadgledanog obučavanja algoritam koji nadzire obučavanje uspoređuje podatke dobivene na izlazu sa očekivanim podacima, dok se za samoorganizirano najčešće koristi Kohonenov algoritam. Podaci koji će se obrađivati u neuronskoj mreži dijele se na podatke za učenje i testiranje. Preporuka stručnjaka je da se za treniranje uzmu 2/3 podataka, a za testiranje 1/3, iako zahvaljujući napretku tehologije postoje programi kod kojih se podaci ne dijele nego se importiraju u jednom dokumentu, a program sam i obuči i istrenira podatke, tako da korisnik prati obučavanje i testiranje i podešava koeficijente ciklusa treniranja, stopa učenja i dr. sve dok ne bude zadovoljan učinkom neuronske mreže. 6 UVOD Samim razvojem ljudske inteligencije kroz tisuće godina dolazi i do razvoja umjetne inteligencije i svakodnevnog pomicanja granica. U okviru umjetne inteligencije pojavio se pojam „neuronske mreže“ koje su samim pojavljivanjem zainteresirale mnoge eksperte koji su omogućili da u kratkom vremenu pronađu svoje mjesto i počnu se primjenjivati u raznim područjima. Svaki ekspert koji se upoznaje sa neuronskim mrežama postavlja svoju definiciju navedene metode, a neke od najpoznatijih definicija navode se u daljnjem radu. Sve definicije, bez obzira na svoje različitosti, svode se na isti zaključak; da se svaka od njih sastoji od više jednostavnih procesora koji imaju lokalne memorije u kojima pamte podatke sa obrade, te da su jedinice međusobno povezane vezama, a podaci koji se razmjenjuju obično su numerički. U ovom radu, nakon obrađivanja pojma i definicija umjetne inteligencije u prvom dijelu i neuronskih mreža u drugom dijelu, navest će se i objasniti njihove vrste, podjela s obzirom na izučavanje te prednosti i nedostaci. U trećem dijelu obrađeno je obučavanje neuronske mreže, a četvrti dio je detaljno opisano dizajniranje neuronske mreže. 7 1. TEORIJA UMJETNE INTELIGENCIJE 1.1. Pojam i definicije umjetne inteligencije Inteligencija je mentalna karakteristika koja se sastoji od sposobnosti snalaženja u novim situacijama, prilagodljivog ponašanja u danim okolnostima, te sposobnosti mišljenja pri rješavanju problema. Umjetna inteligencija je naziv koji pridajemo svakom neživom sustavu koji pokazuje sposobnost snalaženja u novim situacijama,odnosno pokazuje inteligenciju. Postoji više definicija kojima se pokušava objasniti (definirati) pojam umjetne inteligencije [1]: Umjetna inteligencija je dio znanosti o računarima koja se bavi određivanjem inteligentnih računalnih sustava tj. sustava koji prikazuju karakteristike koje mi dovodimo u vezu sa inteligencijom u ljudskom ponašanju-razumijevanju jezika, učenju, zaključivanju, itd. Umjetna inteligencija je proces pomoću kojeg mehaničke sprave mogu izvoditi zadatke za čije izvođenje ljudska bića zahtijevaju razmišljanje. Umjetna inteligencija je znanost o izradi strojeva koji postaju inteligentni kao ljudi. Umjetna inteligencija je znanstvena oblast u kojoj se istražuje kako napraviti računare koji bi uspješno radili stvari koje u ovom momentu rade bolje ljudi. 8 Svaka od navedenih definicija na svoj način objašnjava pojam umjetne inteligencije i na osnovu njih može se zaključiti da će strojevi biti „inteligentni“ ako pokazuju karakteristike vezane sa ljudskom inteligencijom. Istraživači umjetne inteligencije zanemarivali su odnosno izbjegavali probleme: numeričkog procesuiranja, manipuliranja tekstom zasnovano na sintaksi, sortiranja zabilježenih podataka, kodiranje i dekodiranje informacija, proizvodnje i manipulacije graficima (grafičko prikazivanje), a njihov rad bio je usmjeren na probleme koji zahtijevaju zajednički smisao, dosjetljivost, ekspertizu... Zbog toga je Geuarter svojom definicijom umjetne inteligencije dao jedan novi pogled koji do njega nije korišten: Umjetna inteligencija bavi se inteligentnim ponašanjem primarno s nenumeričkim procesima koji uključuju složenost, nesigurnost i dvosmislenost i za koje ne postoje poznata algoritmična rješenja. [1] Postoji još čitav niz definicija umjetne inteligencije u kojima je ovisno od autora naglasak stavljen na čovjeka ili na računar. Simons zaključuje da je glavni cilj umjetne inteligencije da modelira, potiče, oponaša i udvostručuje psihološke fenomene. Margaret Boden u svojoj knjizi „Umjetna inteligencija i prirodni čovjek“ piše: Umjetna inteligencija nije znanost o računarima nego o inteligenciji u misli i djelu. Računari su njen alat zato što su njene teorije izražene kao računarski programi koji omogućavaju strojevima da urade stvari koje bi zahtijevale inteligenciju da ih rade ljudi. Za razliku od M.Boden, Haugland naglašava središnju ulogu računara u stimuliranju razvoja spoznajne znanosti: 9 Vodeća inspiracija spoznajne znanosti je da u odgovarajućem stupnju otuđenja, teorija o prirodnoj inteligenciji treba imati istu osnovnu formu kao teorija koja objašnjava sofisticirane računalne sustave. Ova ideja čini umjetnu inteligenciju ne samo mogućom nego i središnjim i čistim oblikom psiholoških istraživanja. Ovakav opis na razmatranje stavlja ključnu ulogu umjetne inteligencije koju ona ima u postavljanju i razvoju interdiscipliniranih izučavanja, koja su sada poznata kao znanost o spoznaji. Glavna tema istraživanja u znanosti o spoznaji je ljudska inteligencija, s tim da postoji interes znanstvenika za otvaranje mogućnosti prema razvoju nove konkretizacije inteligencije, koji može imati malo ili ništa zajedničko sa mehanizmima ljudske inteligencije. 1.2. Povijesni razvoj umjetne inteligencije Kroz povijest ljude privlači inteligencija, posebno sama pomisao na mogućnost konstruiranja „inteligentnih strojeva“ koji bi mogli samostalno raditi i obavljati poslove umjesto nas ljudi. Umjetna inteligencija ima temelje u nekoliko znanstvenih disciplina; psihologiji, filozofiji, matematici i mnogim drugim područjima, a svako od njih je na svoj način utjecalo na njen razvoj. Iako je umjetna inteligencija novija grana znanosti, njeni korjeni sežu daleko u prošlost, još u antičku filozofiju. U staroj Grčkoj su razni filozofi, među kojima se posebno isticao Aristotel (384.-322.), proučavali pitanja inteligencije znanja i pravilnog zaključivanja. Aristotel je u svojoj knjizi „Logika“ ispitivao da li se za neku pretpostavku može reći da je istinita zato što se odnosi na druge stvari za koje se zna da su istinite. Primjer: ako se zna da su „svi ljudi smrtni“ i da je „Sokrat čovjek“, može li se zaključiti da je „Sokrat smrtan“? Pojam „umjetna inteligencija“ prvi je upotrijebio John McCarthy, koji je smatrao da on označava „znanost i inženjerstvo izrade umjetnih strojeva“. Stoga se McCarthy 10 smatra i ocem umjetne inteligencije, a definirao ju je kao znanstvenu disciplinu koja se bavi izgradnjom računalnih sustava čije se ponašanje može tumačiti kao inteligentno. 1936. godine Englez Alan Turing i Amerikanac Post neovisno jedan o drugome objavljuju radove iz oblasti matematičke logike. Rad Alana Turinga „Računski strojevi i inteligencija“ jedan je od prvih radova vezanih za umjetnu inteligenciju. Turingov test za «mjerenje inteligencije» strojeva predstavlja jedini do sada priznati standard u ovom domenu. Međutim, tek pojavom prvog računara «Electronic Numerical Integrator And Computer» (ENIAC), kojeg su 1945.god. izmislili Mauchly i J.Presper Eckert može se govoriti o inteligentnim strojevima. Značajnu ulogu u razvoju umjetne inteligencije imali su Waren McColloch i Walter Pitts u 1943. godini. Objavili su članak „Logički račun ideja karakterističkih za nervnu aktivnost“ u kojem su postavili matematički model živčane stanice-neurona. Osim toga, pokazali su da svaka izračunjiva funkcija može se također izračunati mrežom povezanih neurona, s tim da prikladno definirane mreže mogu učiti. Prvim programom umjetne inteligencije se smatra Logic Theorist (1956. Allen Newell i Herbert Simon) koji je pokazao sposobnost otkrivanja dokaza geometrijskih teorema. 1958. zaslugom McCarthy-a pojavljuje se programski jezik LISP koji postaje osnovnim jezikom programiranja umjetne inteligencije. D.W. Paterson 1990. godine: “Umjetna inteligencija je grana računalne znanosti koja se bavi proučavanjem i oblikovanjem računalnih sustava koji pokazuju neki oblik inteligencije. Takvi sustavi mogu učiti, mogu donositi zaključke o svijetu koji ih okružuje, oni razumiju prirodni jezik te mogu spoznati i tumačiti složene vizualne scene te obavljati druge vrste vještina za koje se zahtijeva čovjekov tip inteligencije.” 11 1.3. Područja umjetne inteligencije 1.3.1. Računalni programi za šah Umjetna inteligencija se koristi pri izradi računalnih programa za popularnu igru šah, a najpoznatiji od njih je „Deep Blue“, računalo tvrtke IBM koje je usavršeno za igranje šaha. Ovo računalo je 11.svibnja 1997. godine rezultatom 2-1 pobjedilo Garija Kasparova, ruskog šahovskog velemajstora koji je bio šahovski prvak od 1985. do 2000., a neki ga smatraju najvećim šahistom svih vremena. 1.3.2. Računalna lingvistika Računalna lingvistika, koja se još naziva strojno jezikoslovlje, računska lingvistika, strojna lingvistika, te računalno jezikoslovlje je znanstvena disciplina koja se bavirazvojem kompjutorskih programa koji omogućavaju računsku obradu prirodnog jezika. Objedinjuje rezultate iz teoretskog računarstva, jezikoslovlja, kongitivne psihologije, umjetne inteligencije i logike. 1.3.3. Ekspertni sustavi Ekspertni sustavi su računalni programi koji sadrže određena specifična znanja iz jednog ili više područja znanosti. Razvijeni su 60-ih i 70-ih godina prošlog stoljeća, a komercijalizirani su kroz 80-e godine. Najčešće se ekspertni sustavi sastoje od seta pravila po kojima se analiziraju informacije koje se dobivaju od korisnika o specifičnoj vrsti problema. Ovisno o njihovom dizajnu, odnosno izvedbi, pružaju korisniku određene povratne informacije što je potrebno preuzeti kako bi se rješio zadani problem. 12 Lujić, 1993.: Ekspertni sustavi su inteligentni programi na računalima koji koriste znanja i postupke zaključivanja, kako bi se riješili teški zadatci, kad oni zahtijevaju znatnu ljudsku stručnost. Kao model znanja nužnog za tu razinu može se zamisliti sveukupno stručno znanje najboljih praktičara na nekom polju rada. [8]. Jožef Štefan (Ljubljana): Ekspertni sustavi su sustavi koji oponašaju znanje eksperta. [8] 1.3.4. Inteligentni agenti Inteligentni agenti su softveri koji imaju sposobnost da fleksibilno, samostalno i bez intervencije korisnika izvršavaju postavljeni zadatak, a korisnika obavještava o završetku rada ili samoj pojavi događaja koji se očekuje. Agent djeluje u interakciji sa okolinom kako bi na što precizniji način izvršio postavljeni zadatak. U ovom slučaju inteligencija je sposobnost kako inteligentni agenti prihvaćaju zadane ciljeve i kako ih izvršavaju. Inteligencija odražava razinu kvalitete razmišljanja i naučenog ponašanja. Inteligentni agenti su prije svega programske komponente koje služe kao posrednici između korisnika i računala. Osnovno svojstvo im je samostalno djelovanje u ime korisnika, s ciljem obrade informacija, suradnje sa ostalim agentima i rješavanja postavljenih upita. Temelje se na umejtnoj inteligenciji, raspodjeljenom programiranju, Internet tehnologiji i mobilnoj komunikaciji, a karakteristike koje predstavljaju svakog inteligentnog agenta su: radi za svog korisnika radi s njegovom dozvolom specijaliziran je za neko područje Poznati su i kao softverski agenti, vodiči, roboti znanja i softverski roboti. 13 1.3.5. Robotika Robotika je grana inženjerske znanosti i tehnologija robota, njihov dizajn, proizvodnja, primjena. Srodna je sa elektronikom i mehanikom. Naziv robot prvi je koristio češki pisac Karel Čapek u svom igrokazu R.U.R. koji je objavljen 1920. Termin „robotika“ izmislio je američki pisac Isaac Asimov u naučnofantastičnoj priči „Liar!“. 1.3.6. Računalni vid Računalni vid je područje umjetne inteligencije koje se bavi prepoznavanjem dvodimenzionalnih i/ili trodimenzionalnih predmeta (npr. ljudskog lica). Bez razvijenog računalnog vida robot se ne može snalaziti u prostoru, zbog čega može biti potencijalno opasan u slučaju ljudske prisutnosti. 1.3.7. Optičko prepoznavanje znakova (OCR) OCR, eng. Opitcal Character Recognition uključuje računalni softver koji je organiziran tako da prevodi sliku otisnutog teksta s papira, koju obično učitavamo sa skenera, u editabilni tekst, ili prevodi sliku sa znakovima u standardnu kodnu shemu predstavljajući ih u ASCII ili Unicode kodu. 1.3.8. Računalne igre Računalna igra se igra pomoću računala ili igraćih pomagala priključenih na TV ili računalo. Postale su jedan od napopularnijih oblika zabave u svijetu. Svakodnevno se mijenjaju, razvijaju i poboljšavaju im se tehničke karakteristike, te postaju sve važniji 14 gospodarski čimbenik mnogih zemalja. Osnovni zahtjevi računalnih igara su ulazni grafički uređaj i izlazni grafički uređaj, najčešće monitor. 15 2. TEORIJA NEURONSKIH MREŽA 2.1. Pojam i definicije neuronskih mreža Neuronske mreže, kao metoda umjetne inteligencije, u današnjem poslovanju se sve više upotrebljavaju u okviru sustava za odlučivanje. Postale su vrlo popularan model obrade podataka jer posjeduju neke sposobnosti koje podsjećaju na ljudske. Najčešće su realizirane u obliku računalnog programa koji mogu prepoznati uzorke u skupu podataka i napraviti model za te podatke. Ne postoji jedinstvena definicija neuronskih mreža. Svaki ekspert neuronskih mreža, ovisno o svom gledištu, istraživanju i rezultatima postavlja vlastitu definiciju neuronskih mreža, ali sa svog osobnog stajališta. Do sada nije utvrđena ni opće prihvaćena nijedna jedinstvena definicija, ali većina bi se složila sa sljedećom definicijom [1]: Neuronske mreže su sustav sastavljen od više jednostavnih procesora (jedinica, neurona) gdje svaki od njih ima lokalnu memoriju u kojoj pamti podatke koje obrađuje. Te jedinice su povezane komunikacijskim kanalima (vezama), a podaci koji se razmjenjuju ovim kanalima su obično numerički. Kevin Gurney "Neuronska mreža je međusobno povezana nakupina jednostavnih elemenata obrade, jedinica ili čvorova, čiji se načini djelovanja otprilike temelji na neuronima kod životinja. Sposobnost obrade mreže je posljedica jačine veza među tim jedinicama, a postiže se kroz proces adaptacije ili učenjem iz skupa primjera za uvježbavanje." Rezultati mnogih istraživanja pokazuju da neuronske mreže rješavaju gotovo sve probleme bolje od tradicionalnih i statističkih metoda. Odlično rješavaju probleme klasifikacije i predviđanja, odnosno općenito sve probleme kod kojih postoji odnos između prediktivnih (ulaznih) i zavisnih (izlaznih) varijabli, bez obzira na visoku složenost te veze (nelinearnost). 16 Razlog boljih rezultata neuronskih mreža u odnosu na ostale metode je u njihovoj mogućnosti da analiziraju nedostatke u podacima, otkriju podatke sa smetnjama, imaju sposobnost da uče na prošlim događajima, te imaju sposobnost otkrivanja složenih skrivenih veza između ulaznih i izlaznih podataka u iterativnim postupcima. Znanje o obradi podataka pohranjeno je kod neuronskih mreža u obliku različitih iznosa težinskih koeficijenata. Takvo implicitno znanje teško je interpretirati i predočiti ga čovjeku u obliku pravila (za razliku od npr. stabala odlučivanja). Zbog toga se neuronske mreže uglavnom koriste kada nam je bitan samo rezultat klasificiranja ili predikcije, a ne i pravilo po kojem je to ostvareno. 2.2. Povijesni razvoj neuronskih mreža Početak neuro-računarstva najčešće se veže za rad W. McCollocha i W. Pittsa iz 1943. godine. Na daljni razvoj neuronskih mreža važan utjecaj imao je rad Marvina Minskija i Deana Edmondsa koji su početkom 50-ih godina prošlog stoljeća konstruirali neuroračunalo pod imenom Snarc. Za otkriće jednoslojne neuronske mreže zvane Perceptron zaslužan je Frank Rosenblatt. Iako nije davao značajnije rezultate, mogao je podešavati težinske koeficijente. Na konferenciji Dartmouth Summer Research Project on Artifical Intelligence, koja je održana 50-ih godina prošlog stoljeća, kao jedna od grana umjetne inteligencije, profiliralo se neuronsko računarstvo. Na toj konferenciji najavljeno je ostvarivanje vizije računalnog modela koji će u nekim temeljnim principima oponašati funkcioniranje mozga. Neuronsko računarstvo se pojavljuje kao odgovor Von Neumann-ovim računalima nastojeći simulirati ili ostvariti paralelnu obradu informacija koju koristi ljudski mozak dok razmišlja, sjeća se i rješava probleme. Na razvoj neuronskih mreža utjecao je velik broj događaja: 17 1943 - McCullock i Pitts postavljaju temelje za razvoj neuronskih mreža objavom članka „Logički račun ideja karakterističkih za nervnu aktivnost“ i tako što prvi dokazuju da neuroni mogu imati dva stanja (pobuđujuće i umirujuće) i da njihova aktivnost ovisi o nekom pragu vrijednosti. 1949 – Donald Hebb objavljuje knjigu „Organizacija ponašanja“ i prvi predlaže pravilo kojim se opisuje proces učenja (Hebb-ovo pravilo). Pravilo je predstavljalo određen zakon učenja za sinapse, odnosno pravilo za mijenjanje jačine veza među neuronima. Marvin Minsky i Dean Edmonds konstruiraju prvo neuroračunalo pod imenom Snarc, koji je koristio vakuumske cijevi za simulaciju neuronske mreže od 40 neurona. 1956 - Dartmouth Summer Conference na kojoj su Rochester i skupina autora predstavili prvu simulaciju Hebb-ovog modela 1958 – Frank Rosenblatt razvio prvu neuronsku mrežu perceptron, koja je dvoslojna i nije mogla rješavati probleme klasifikacije koji nisu linearno djeljivi. Rosenblatt i Charles Wightmann su sa svojim suradnicima izumili računalo Mark1 koje predstavlja prvo neuroračunalo. 1960 – Bernard Windrow poboljšava Hebbovu metodu učenja i razvija praktičnu uporabu neuronskih mreža. Sa svojim studentima razradio je jednostavni tip „neurona“ kojeg naziva ADALINE (ADAptive Linear Neuron) i odgovarajući tip učenja. 1969 – Minsky i Papert objavljuju knjigu „Perceprtons“ u kojoj se kritički osvrću na Perceptron i iznose matematički dokaz da neuronska mreža ne može rješiti XOR problem ni dodavanjem više slojeva neurona, a rezultat je prestanak financiranja u istraživanju neuronskih mreža. 1974 - razvijena višeslojna perceptron mreža - MLP (Paul Werbos), kao preteča Backpropagation mreže, koja prevladava nedostatak perceptrona uvođenjem učenja u skrivenom sloju 1986 - Backpropagation mrežu usavršuju Rumelhart, Hinton i Williams, ona vraća ugled neuronskim mrežama, jer omogućuje aproksimiranje gotovo svih funkcija i rješavanje praktičnih problema 18 … - otada do danas se razvijaju brojni algoritmi za neuronske mreže koji s pomoću različitih pravila učenja, ulaznih i izlaznih funkcija rješavanju probleme predviđanja, klasifikacije i prepoznavanja uzoraka. 2.3. Osnovna svojstva neuronskih mreža U nastavku su navedena i objašnjena neka od najvažnijih svojstava neuronskih mreža: Paralelno raspodijeljena obrada informacija. Za razliku od ostalih računskih modela, neuronske mreže prihvaćaju više ulaza paralelno i dobivene informacije obrađuju na raspodijeljen način. Drugim riječima, informacija spremljena u neuronsku mrežu raspodijeljena je na više računskih jedinica, što je suportno od spremanja podataka kod običnih metoda gdje je svaka posebna informacija (podatak) spremljena u svoj vlastiti memorijski prostor. Svojstvo raspodijeljenog spremanja informacija ima više prednosti. Jedna od njih je redudantnost, odnosno otpor na kvar. Redudantnost se može postići i kod klasičnih metoda, ali kod neuronskih mreža i ako dođe do uništenja nekog njenog dijela, ona će i dalje raditi. Učenje i adaptacija. Svojstvo učenja i adaptacije neuronske mreže čini sposobnima obrađivati neprecizne i loše sačuvane podatke u nestrukturiranom i neodređenom okruženju. Na odgovarajući način naučena neuronska mreža ima svojstvo poopćavanja kada se na njenom ulazu pojave podaci koji nisu bili u uzorku na osnovi kojeg je mreža naučena. Univerzalni apoksimator. Svojstvo neuronskih mreža da apoksimiraju proizvoljnu kontinuiranu nelinearnu funkciju do željene točnosti njihovo je najvažnije svojstvo sa stajališta modeliranja, identifikacije i upravljanja nelinearnim procesima. Viševarijabilni sustavi. Neuronske mreže su po svojoj strukturi viševarijabilne što ih čini lako primjenjivim za modeliranje, identifikaciju i upravljanje viševarijabilnim procesima. 19 Sklopovska implementacija. Više je proizvođača razvilo specijalizirane sklopove za implementaciju neuronskih mreža koji omogućavaju paralelnu raspodjeljenu obradu u stvarnom vremenu. Neuronske mreže su računski vrlo zahtjevne. Izlaz svakog rezultat je zbrajanja više umnožaka i izračunavanja nelinearne aktivacijske funkcije. Računska brzina neuronske mreže određena je brojem matematičkih operacija pojedinog sloja, a ne čitave mreže. Svaki sloj može imati paralelnu građu, odnosno svaki se neuron u sloju može promatrati kao lokalni procesor koji radi paralelno s ostalim neuronima. Neuronske mreže zahtijevaju veliki memorijski prostor. Svaki pojedini neuron ima više sinaptičkih veza, a svakoj od njih je pridružen težinski koeficijent koji mora biti spremljen u memoriju. Povećanjem broja neurona u mreži memorijski zahtjevi rastu s kvadratom broja neurona. 2.4. Vrste neuronskih mreža Od samog početka svoje prisutnosti u znanosti ispitivane su sa dva različita pristupa; biološkog i tehnološkog. Iako su umjetne neuronske mreže nastale po uzoru na biološke neuronske mreže, ova dva modela se međusobno razlikuju. Biološki pristup istražuje neuronske mreže kao pojednostavljene simulacije ljudskog mozga, a drugi pristup tretira neuronske mreže kao tehnološke sustave za složenu obradu informacija. 2.4.1. Biološke neuronske mreže „Predstavnik“ bioloških neuronskih mreža je živčani sustav živih bića, odnosno ljudski mozak je primjer biloške neuronske mreže. Ljudski mozak je previše složen da bi se postojećim poznatim metodama mogao potpuno opisati i razumjeti način njegova 20 djelovanja. Sastoji se od oko 1011 osnovnih živčanih stanica (neurona) koji su međusobno povezani u složenu mrežu sa oko 1015 međusobnih veza. Slika 1.: Mozak-središnji dio živčanog sustava čovjeka [13] Neuron je osnovna jedinica živčanog sustava koja prima i obrađuje informacije od drugih neurona i/ili osjetnih organa, te šalje impuls drugim neuronima u mreži. Njegovi dijelovi koji mu pomažu u primanju informacija i proslijeđivanju impulsa su: ulazni dio ćelije tijelo ćelije izlazni dio ćelije sinapse Na sljedećoj slici (Slika 2.) prikazan je model biološkog neurona. Ulazni dio ćelije (B) sastoji se od mnoštva razgranatih niti koji se nazivaju „dendriti“. Tijelo ćelije (C) obrađuje siginale koje mu proslijede dendriti, nakon čega se dobiva izlazni impuls koji se proslijeđuje aksonu (A), koji je ujedno i izlazni dio ćelije. Mjesto dodira aksona 21 jednog neurona i dendrita nekog drugog neurona naziva se sinapsa, i služi kao poveznica preko koje se impulsi prenose iz jednog u drugi neuron. Slika 2.: Model biološkog neurona [14] 2.4.2. Umjetne neuronske mreže Inspirirane biološkim neuronskim mrežama i njihovim sustavom, nastale su umjetne neuronske mreže. Po samoj svojoj strukturi, funkciji kao i obradi informacija slične su 22 biološkim neuronskim mrežama, s tim da se radi o umjetnim tvorevinama. Dizajnirane su tako da oponašaju funkcije bioloških neuronskih mreža. Koriste ograničen 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 rješenju problema. Ove mreže, kao i ljudi, uče na osnovu primjera tj. povijesnog iskustva, one nisu programirane eksplicitnim instrukcijama, već uče da izvrše zadatak koristeći primjere iz stvarnog života. U stanju su da prepoznaju smisao u kompliciranim ili nepotpunim podacima, da prepoznaju obrasce koji su neprepoznatljivi ljudima zbog 9 svoje složenosti i koji se ne mogu dobiti korištenjem drugih kompjuterskih tehnika. Slika 3.: Model umjetnog neurona [1] Umjetni neuron (Slika 3.) dobio je naziv po svojim autorima McCulloch – Pittsov neuron. Nastaje tako što se tijelo biološkog neurona zamjenjuje se sumom, ulogu dendrita preuzimaju ulazi (ulazne varijable) u sumu, izlaz (izlazna varijabla) sume je akson umjetnog neurona, a uloga praga osjetljivosti bioloških neurona preslikava se iz tzv. aktivacijske funkcije. Veza umjetnog neurona s okolinom ostvaruje se po modu funkcijske sinaptičke veze biološkog neurona. Težinski faktori mogu biti pozitivan ili negativan broj, a imaju istu funkciju kao i sinapse kod biološkog neurona: povezuju izlaze (izlazne varijable) iz okoline neurona tj. izlaze drugih neurona (aksone) s ulazima 23 sume (dendriti). Intenzitet te veze ovisi o iznosu (modulu), a vrsta veze o predznaku težinskog faktora. U sljedećoj tablici (Tablica 1.) predstavljena je konkretna usporedba biološke i umjetne neuronske mreže: Tablica 1.: Usporedba biološke i umjetne neuronske mreže Biološka mreža Umjetna mreža Dendriti Ulazni dio ćelije Tijelo ćelije Čvor (sumator) Akson Izlazni dio ćelije Sinapsa Težinski koeficijenti Iz navedenog se vidi da umjetni neuron funkcionira slično kao biološki neuron. Izlazi iz drugih neurona u okruženja promatranog neurona, koji se upućuju promatranom neuronu množe se težinskim faktorima i dovode do sume. U sumi se dobiveni produkti sumiraju, a njihova suma se odvodi na ulaz aktivacijske funkcije, koja će na svom ulazu dati izlaz neurona. Aktivacijske funkcije dijele se na linearne i nelinearne. Linearne aktivacijske funkcije – izlaz sume množi se s nekim faktorom (pojačanjem) i tako dobiva izlaz neurona. Nelinearne aktivacijske funkcije – mogu poprimiti različite oblike, a najrasprostranjenije su : funkcije praga osjetljivosti, sigmoidne, hiperbolične i harmoničke funkcije. Nelinearne aktivacijske funkcije prevode izlaz sume na izlaz neurona preko nelinearnog pojačanja. Na taj način funkcija praga osjetljivosti daje na izlazu neurona 1, ako je izlaz sume veći od zadanog broja 24 (prag osjetljivosti), što odgovara ispaljivanju impulsa kod biološkog neurona. Ukoliko neuron nije aktivan, onda je na izlazu neurona 0. Signali u umjetnom neuronu su opisani numeričkim iznosom i na ulazu u neuron množe se težinskim koeficijentom koji opisuje jakost sinapse; signali pomnoženi težinskim koeficijentima zatim se sumiraju, a ako je dobiveni iznos iznad definirana praga, neuron daje izlazni signal. Slika 5. Izlaz iz neurona Umjetni neuron u općenitom slučaju, umjesto funkcije praga može imati prijenosnu funkciju (transfer funkcija, aktivacijska funkcija). Najčešća je sigmoidalna (ili Sfunkcija) koju se nekad zove i logističkom funkcijom. Slika 6. Sigmoidalna funkcija [15] 25 Svaka mreža sastoji se od neurona grupiranih u slojeve. Razlikuju se ulazni i izlazni sloj, s tim sa mreža može imati jedan ili više skrivenih slojeva. Svaki od slojeva prima ulaze od prethodnog sloja i šalje dalje sljedećem sloju. Prvi sloj se naziva ulazni, posljednji se naziva izlazni, a ostali su skriveni slojevi. Slika 4.: Mreža sa jednim skrivenim slojem [1] Najčešća arhitektura neuronskih mreža je sa tri sloja koja je prikazana na prethodnoj slici (Slika 4.), od kojih je jedan skriveni. Prvi sloj (ulazni) je jedini sloj koji prima signale iz okruženja te ih prenosi drugim (skriveni) slojevima koji obrađuju informacije te izdvajaju osobine i sheme primljenih signala. Oni podaci (informacije) koje se smatraju važnima procesuiraju se do izlaznog sloja kao posljednjeg u mreži. Na tom trećem (izlazni) sloju dobivamo rezultate obrade. Postojanje više skrivenih slojeva, petlji i elemenata za odlaganje vremena imaju tzv. složene neuronske mreže koje i jesu dizajnirane tako s razlogom, da bi mogle što efikasnije i kvalitetnije odvojiti važne osobine ili sheme sa ulaznog nivoa. 26 2.5. Prednosti i nedostaci neuronskih mreža Na sljedećoj slici (Slika 7.) je prikazan dijagram zavisnosti moći predviđanja i objašnjavanja. Neuronske mreže odlično predviđaju 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 određenog rešenja jer je u neurosnkoj mreži znanje o obradi podataka pohranjeno u obliku različitih težinskih koeficijenata koje je teško predstaviti čovjeku obliku pravila. Zato se neuronske mreže koriste samo kada je bitan rezultat klasifikacije, a nije bitno pravilo po kojem se došlo do rezultata. Slika 7. Dijagram zavisnosti moći predviđanja i objašnjavanja Prednosti neuronskih mreža: uče na osnovu primjera, za razliku od klasičnih sustava koji moraju biti programirani 27 odlična moć predviđanja bez obzira na složenost veze odlično rješavaju sve probleme kod kojih postoji odnos između ulaznih i izlaznih podataka mogućnost tolerancije nedostataka i smetnji (funkcionira i ako dođe do oštećenja dijela mreže) sposobnost generalizacije (ako dobiju nekompletan skup podataka, mreža će ipak dati izlaz) rješavaju gotovo sve probleme bolje nego tradicionalne metode i statističke metode točnije su od ostalih statističkih tehnika (posebno ako je problem slabo definiran ili nerazumljiv) Nedostaci neuronskih mreža: uspješno učenje zahtjeva velik broj podataka imaju slabu moć objašnjavanja nisu pogodne za aritmetičke proračune i zadatke obrade podataka ne mogu davati odgovore izvan raspona u kojem uče teškoće u korištenju (vrijeme treniranja) skupe su za proizvesti 2.6. Podjela neuronskih mreža Postoji veliki broj različitih realizacija neuronskih mreža, a samim tim postoji i mnogo podjela. Neuronske mreže možemo klasificirati prema: 1. Broju slojeva Prema broju slojeva mreže možemo podijeliti na jednoslojne i višeslojne. Danas se uglavnom izučavaju i primjenjuju višeslojne koje pored ulaznih i izlaznih slojeva sadrže neurone na srednjim (skrivenim) slojevima. 28 2. Vrsti veza između neurona Neuronske mreže se mogu podijeliti prema vrstama veza tj. arhitekturi na: slojevite - Neuroni su raspoređeni tako da formiraju slojeve. Na ulaz jednog neurona se dovode izlazi svih neurona sa prethodnog sloja, a njegov izlaz se vodi na ulaze svih neurona na narednom sloju. Neuroni sa prvog (ulaznog) sloja imaju samo po jedan ulaz. Izlazi neurona sa zadnjeg (izlaznog) sloja predstavljaju izlaze mreže. Predstavnik: backpropagation algoritam. potpuno povezane - Izlaz jednog neurona se vodi ka ulazu svih neurona u mreži. Predstavnik: Hopfildova neuronska mreža. celularne - Međusobno su povezani samo susjedni neuroni. Bez obzira na lokalnu povezanost, signali se prostiru i na neurone i van susjedstva zbog indirektnog prostiranja informacija. 3. Vrsti obučavanja neuronskih mreža Razlikujemo nadgledano, ne nadgledano i djelomično obučavanje. 4. Prema smjeru prostiranja informacija Mogu se podijeliti i prema smjeru prostiranja informacija kroz mrežu: Feed-forward (ne rekurzivne, ne rekurentne ili nepovratne) - Viši slojevi ne vraćaju informaciju u niže slojeve. Vrše prostiranje signala samo u jednom smjeru (od ulaza prema izlazu) odnosno propagaciju signala. Predstavnici: Višeslojni perceptron sa primijenjenim backpropagation algoritmom. Feedfoward mreža je prikazana na sljedećoj slici (Slika 8): 29 Slika 8. Feed – forward mreža Feedback (rekurzivne ili rekurentne ili povratne) – Slika 9. Viši slojevi vraćajuinformacije nazad u niže slojeve. Izlaz iz neurona se vraća u niže slojeve ili u isti sloj. Predstavnici: Hopfildove, Celularne NM, Kohonenove NM, dvostrukoasocijativne NM. Feed - back mreže imaju mnogo veće procesne sposobnosti od Feed - forward mreža. Slika 9. Feed – back mreža 30 5. Prema vrsti podataka Prema vrsti podataka koje obrađuju NM se mogu podijeliti na analogne i diskretne. Ova podjela se rijetko koristi pošto su gotovo sve neuronske mreže diskretne. 31 3. OBUČAVANJE NEURONSKIH MREŽA Najjednostavnije objašnjena uloga težinskih koeficijenata u neuronskoj mreži jest da su oni potrebni da se pomnože sa vrijednostima koje su dovedene na ulaz neurona kako bi se dobili ulazni podaci. Kako bi se neuronska mreža obučavala, potrebno je napraviti model sa ulaznim i izlaznim podacima, odnosno prikupiti podatke iz prošlosti na osnovu kojih će se neuronska mreža obučavati. Podatke dijelimo na dvije vrste: podaci za učenje (treniranje mreže) podaci za testiranje (validaciju mreže) Podaci za učenje i podaci za testiranje moraju biti stratificirani, znači moraju biti izabrani slučajno i nezavino, te u oba skupa mora biti približno jednak broj podataka. Što se tiče same veličine skupa za učenje i testiranje nema nekog posebnog pravila, osim što se preporuča veći dio podataka ostavit za učenje modela (npr. 2/3 podataka ostaviti za učenje, a 1/3 za testiranje). Sam proces obučavanja neuronskih mreža započinje zadavanjem slučajnih vrijednosti težinskih koeficijenata koji opisuju jakost sinapse i dovođenejm signala na ulazni sloj. Signali su opisani numeričkim iznosom i na ulazu u neuron se množe sa težinskim koeficijentom. Dobiveni iznosi se sumiraju; ako je dobiveni iznos iznad definiranog praga neuron daje izlazni signal. Mreža aktivira i uspoređuje izlazni i zadani (onaj koji treba da se dobije) izlazni oblik. Postupak se ponavlja na taj način da se ažuriraju težinski koeficijenti tako da se u svakom sljedećem ponavljanju dobije izlaz koji je najbliži zadanoj vrijednosti. U trenutku kada je mreža sposobna da daje izlaze sa zadovoljavajućom točnosti obučavanje se prekida i mreža se može upotrijebiti za rješavanje raznih problema. Zbroj ulaznih vrijednosti neurona pomnoženih sa odgovarajućim težinskim koeficijentima se propušta kroz aktivacijsku funkciju i ta vrijednost predsavlja izlaz iz 32 neurona. Iako neuroni imaju poprilično jednostavne (linearne) funkcije, kada se povežu u višeslojnu mrežu, u stanju su da obrade i višeslojne (nelinearne) funkcije. Slika 10. Težinski koeficijent [1] u1..n–ulazni podaci w1..n – težinski koeficijenti ( ) – aktivacijska funkcija i – izlazni podatak Teoretski gledano, imamo dva načina obučavanja neurosnkih mreža: nadgledano obučavanje nenadgledano obučavanje 3.1. Nadgledano obučavanje Dok traje obučavanje mreže, algoritam koji nadzire obučavanje uspoređuje podatke koji su dobiveni na izlazu sa očekivanim podacima, a razlika između dobivenih i očekivanih podataka šalje se proceduri za učenje koja korigira težinske koeficijente. Najpopularniji algoritmi za nadgledano obučavanje su back-propagation i perceptron algoritam. Ideja je da se izabere slučajan par ulaznih i izlaznih rezultata. Mreži se prosljeđuje ulazni skup signala, tako što se na svaki ulazni neuron dovodi po jedan signal. Zatim ovi 33 signali propagiraju dalje kroz mrežu, u skrivene slojeve, da bi se poslije izvjesnog vremena na izlazu pojavio rezultat. Kako se to događa? Za svaki neuron se računa ulazna vrijednost, na već objašnjeni način: signali se množe sinaptičkim težinama pridruženim dendritima, zbrajaju se, i zatim se na dobivenu vrijednost primjenjuje prijenosna funkcija neurona. Signal na isti način propagira dalje kroz mrežu, sve dok ne dođe do izlaznih dendrita. Tada se još jednom vrši transformacija i dobivaju se izlazne vrijednosti. Slijedeći korak je poređenje dobivenih signala na izlaznim aksonskim ograncima sa očekivanim vrijednostima za zadati test primjer. Za svaki izlazni ogranak se računa vrijednost pogreške. Ako su sve greške jednake nuli, daljnja obuka nije potrebna – mreža je u stanju obavljati traženi zadatak. Međutim, u najvećem broju slučajeva će greška biti različita od nule. Tada se mora obaviti modifikacija sinaptičkih težina pojedinih čvorova. Ta operacija se vrši primjenom delta pravila [1], na slijedeći način: D pWij = hdLpiOLpi gdje su: DpWij - vrijednost za koju treba promijeniti sinaptičku težinu Wij u odnosu na zadati ulazno-izlazni par p h - stupanj učenja dLpi – greška na i-tom neuronu u sloju L za ulazno-izlazni par p OLpi – vrijednost dobivena primjenom prijenosne funkcije u L-tom sloju neurona: OLpi = 1 / (1 + e-UlazLpi) Stupanj učenja se bira tako da bude između 0 i 0.9. On određuje veličinu koraka kojom se neuronska mreža približava optimalnom stanju. Ideja cijelog back-propagation algoritma je da se mreža kreće niz krivu greške u potrazi za globalnim minimumom funkcije. Izbor vrijednosti za stupanj učenja je veoma kritičan. 34 Ako se uzme prevelika vrijednost, vrlo lako se izbjegavaju lokalni minimumi, ali sustav tada može upasti u režim oscilacija tako što će skakati preko globalnog minimuma, ali ga nikad neće otkriti. Sa druge strane, ako izaberemo suviše malu vrijednost za stupanj učenja, mreža može pogrešno identificirati lokalni minimum i ostati u stanju koje nije optimalno. Situacija je prikazana na Slika 11. [1]: Slika 11. Izbor vrijednosti za stupanj učenja [1] Kada se izvrši skup svih test primjera, određuje se da li je mreža obučena. To se radi procjenom da li je vrijednost greške ispod nekog dozvoljenog praga. Ako jeste, potrebno je izvršiti i validaciju. Mreži se dostavljaju drugačiji ulazni podaci za isti problem i promatraju se izlazi, ali i performanse. Ako mreža zadovoljava i te kriterije, proglašava se za obučenu i dalje se u sustavima može koristiti kao crna kutija – za određene ulaze se garantira da će mreža dati korektne izlaze. Na pitanje što se konkretno dešava u skrivenim slojevima mreže je veoma teško odgovoriti. 3.2. Nenadgledano (samoorganizirano) učenje Kod nenadgledanog učenja mreža daje određene izlazne podatke na osnovu određenih skupina ulaznih podataka. Mreža otkriva statističke pravilnosti u skupu 35 ulaznih podataka i automatski razvija različite režime ponašanja u zavisnosti od ulaza. Za ovaj tip učenja najčešće se koristi Kohonenov algoritam. Mreža ima samo dva sloja neurona; ulazni i izlazni. Izlazni sloj se zove još i kompetitivni sloj. U ovakvim mrežama svaki ulazni neuron je povezan sa svakim neuronom u izlaznom sloju, a neuroni u izlaznom sloju su organizirani u dvodimenzionalnu matricu. Ulazni sloj u ovakvim mrežama ima istu funkciju kao i u dosadašnjim mrežama, ali neuroni u izlaznom sloju imaju potpuno drugačiju funkciju. Oni su u stanju kalsificirati ulazne podatke, odnosno izdvojiti ih u klase ovisno o tome koliko neurona je aktivno. Stoga se ovakve mreže nazivaju samoorganizirane (Slika 12.). Slika 12. Mreža sa 2 ulazna i 25 izlaznih neurona Ovakve mreže polaze od slučajno izabrane topološke mape i na kraju daju mapu koja odražava prirodne veze između ulaznih podataka. Topološko mapiranje senzornih i motornih fenomena postoji i u kori ljudskog mozga. Međutim, ne treba zaboraviti da se mehanizam funkcioniranja mozga razlikuje od samoorganiziranih neuronskih mreža. Osim što je struktura mozga drugačija, razlikuje se i način obrade podataka, kao i sami ulazni podaci. Biološki živčani sustav mnogo je kompleksniji u odnosu na neuronske mreže što se tiče topologije i broja neurona. 36 3.3. Backpropagation algoritam U procesu učenja backpropagation model neuronske mreže prolazi kroz svaki od ulaznih slučajeva pojedinačno, s nastojanjem minimizacije ukupne pogreške modela, korigirajući težinske koeficijente u modelu. Računajući pogrešku svakog neurona, algoritam propagira pogrešku od izlaznog sloja ka ulaznome, dakle unazad kroz mrežu. Zbog toga i naziv – backpropagation algoritam. Backpropagation algoritam ili u prijevodu algoritam mreže „širenje unatrag“ bio je presudan za široku upotrebu neuronskih mreža te ih je učinio široko upotrebljivanom i popularnom metodom u različitim područijima. Njezin tvorac bio je Paul Werbos 1974., a proširena je od strane Rumelhart – a, Hinton – a i Williams – a 1986. To je bila prva mreža s jednim ili više skrivenih slojeva. Ova mreža propagira input kroz mrežu od ulaznog do izlaznog sloja, a zatim određuje grešku te tu grešku propagira unazad sve do ulaznog sloja ugrađujući je u formulu za učenje. Glavni nedostatak algoritma je problem čestog pronalaženja lokalnog umjesto globalnog minimuma greške, zbog toga novija istraživanja uključuju njegovo unapređivanje nekim drugim determinističkim ili stohastičkim metodama. Slika 13. Backpropagation algoritam 37 4. PRIMJER NEURONSKE MREŽE Inspiracija za ovim projektom javila se zbog realnosti koja, iako nastojeći se promijeniti na bolje, iz dana u dan izgleda kao da samo nazaduje. 4.1. Predmet izgradnje neuronske mreže U nastavku će biti dizajnirana neuronska mreža koja će davati rezultate o financijskoj mogućnosti obitelji. Neovisno o činjenici koliko članova radi, gledat će se niihov cjelokupni prihod kao prihod obitelji, koji će predstavljati ulazne varijable neuronske mreže. 4.2. Program Neuronska mreža će se graditi u programu RapidMiner 5. Program je preuzet sa web stranice http://rapidminer.com/. Slika 14. RapidMiner 5 4.3. Opis tijeka projekta 38 4.3.1. Pripremanje podataka U kompleksim istraživanjima podaci su najčešće već spremljeni u t.z.v. skladište podataka (eng. DataWarehuose), jer se i samo istraživanje najčešće provodi zbog traženja interesantnih struktura, sličnosti ili neočekivanih veza među podacima. U ovom projektu podaci nisu prethodno nigdje spremljeni, nego su prikupljani kroz dulje vremensko razdoblje, analizirani i spremani za korištenje. Nakon prikupljanja podataka uslijedilo je njihovo unošenje u Microsoft Excel kako bi se mogli pravilno koristiti u RapidMineru. Prikupljeni podaci razvrstani su u sljedeće kategorije: visina prihoda obitelji trošak na djecu do 7 godina starosti trošak učenika trošak studenata režije hrana ostali troškovi (ukoliko obitelj ima kredite i sl.) ukupni troškovi da li su prihodi obitelji dovoljni Pri korištenju starijih programa koji su dizajnirani za izgradnju neuronskih mreža, potrebno je razvrstati podatke u dvije skupine; podatke za obučavanje neuronske mreže i posebno podatke za testiranje neuronske mreže. Pri tome su eksperti uvijek predlagali korištenje 2/3 podataka za obučavanje, a 1/3 za testiranje. Zahvaljujući napretku tehologije pojavili su se i programi koji samostalno obučavaju i treniraju neuronsku mrežu, tako da se podaci ne moraju razdvajati. RapidMiner također ima „sposobnost“ da samostalno i obučava i trenira neuronsku mrežu, zbog čega je svih 1100 podataka spremljeno u jedan Microsoft Excel dokument nazvan Podaci. Na sljedećoj slici (Slika 15.) prikazan je dio podataka. 39 Slika 15. Prikaz podataka u Microsoft Excel-u 4.3.2. Importiranje podataka Prikupljene podatke sada je potrebno importirati u program, a postupak je prikazan na sljedećim slikama (Sika 16. - Slika 21.). Prvi korak je odabir vrste dokumenta u kojoj su spremljeni podaci koji će se importirati. 40 Slika 16. Odabir vrste dokumenta Slijedi odabir dokumenta sa pripremljenim podacima, u ovom slučaju spremljeno je kao xlsx dokument i gumbom „Next“ se prelazi na sljedeći korak. 41 Slika 17. Pronalazak i odabir dokumenta Nakon toga prikazuju se podaci koji su učitani. Slika 18. Prikaz učitanih podataka 42 Slika 19. Obavijest o anotaciji pojedinih polja U 4.koraku potrebno je odabrati inačicu „label“ jer se radi o tekstualnim podacima i u suprotnom će javljati grešku pri radu programa te program neće moći doći do rezultata. 43 Slika 20. Odabir label-a 44 Slika 21. Imenovanje i spremanje podataka 4.3.3. Obučavanje i treniranje mreže 45 Slika 22. Otvaranje novog bloka Pošto se u ovom projektu radi o neuronskoj mreži, zadano stablo odlučivanja je potrebno ukloniti što je prikazano na sljedećoj slici (Slika 23.). 46 Slika 23. Uklanjanje stabla odlučivanja RapidMiner je jedan od programa koji sam i obučava i testira mrežu, što se vidi na sljedećoj slici. Slika 24. Odabir neuronske mreže 47 S obzirom da program sam obučava i trenira mrežu, ako korisnik nije zadovoljan rezultatom, podešavanjem broja skrivenih slojeva, ciklusa treniranja, stopa učenja i momenata učenja. Ovisno o razlici između rezultata programa i željenom rezultatu, korisnik podešava navedene postavke sve dok ne dobije željeni rezultat, odnosno dok se mreža ne obuči i istrenira. Slika 25. Podešavanje postavki obučavanja i treniranja Slika 26. Odabir podataka 48 Ako među podacima postoje prazna polja, ubacuje se tablica koja ta polja programu predstavlja kao polja sa vrijednostima jednakim nuli. Slika 27. Ubacivanje zamjene za prazna polja 4.3.4. Analiza rezultata Dobiveni rezultati neuronske mreže prikazani tumače se na nekoliko načina koji su objašnjeni u nastavku. 4.3.4.1. Performance Vector Performance Vector se prikazuje na tri načina: Table/Plot view (t.z.v. Konfuzijska matrica) Text view Annotations 49 4.3.4.1.1. Table/Plot view Table/Plot view, odnosno t.z.v. Konfuzijska matrica sadrži podatke o djelovanju klasifikatora nad testnim skupom podataka, odnosno rezultat klasifikatora i podatke o stvarnim razredima kojima podaci pripadaju. Broj točno klasificiranih podataka nalazi se nizduž dijagonale konfuzijske matrice: 560 + 540 = 1000, a svi ostali podaci (kojih u ovom slučaju nema) su broj primjera koji su neispravno klasificirani kao neki od preostalih razreda. Slika 28. Konfuzijska matrica 4.3.4.1.2. Text view Text view, kao što i sam naziv kaže, sadrži tekstualne rezultate. U ovom dijelu program automatski računa točnost i preciznost neuronske mreže (objašnjeno u poglavlju 4.3.5.2.) na osnovu Konfuzijske matrice. 50 Slika 29. Performance Vector 4.3.4.1.3. Annotations Anotacije se dodaju po potrebi. Slika 30. Annotations 51 4.3.4.2. Example Set Role Example Set Role se prikazuje kao: Data View Meta Data View; koji se najčešće koriste, dok se samo u posebnim pregledima koriste i : Plot view Advanced Charts Annotations 4.3.4.2.1. Data View Data View predstavlja pojedinačne rezultate klasifikatora za svaki podatak. Slika 30. Data View 4.3.4.2.2. Meta Data View 52 Slika 31. Meta Data View 4.3.4.3. Improved Neural Net Improved Neural Net je grafički prikaz neuronske mreže. Jasno se vidi ulazni sloj, broj skrivenih slojeva i izlazni sloj, po kojem se vidi da su bila dvije izlazne varijable, te veze među neuronima, s tim da nijedna veza nije jednake jačine, što je također prikazano na Slika 30. Slika 30. Improved Neural Net 53 4.3.5. Analiza uspješnosti Na osnovu konfuzijske matrice moguće je izračunati uspješnost neuronske mreže. Točnost (accuracy) se definira kao omjer broja ispravno klasificiranih primjera prema ukupnom broju klasificiranih primjera. Pogreška (error rate) se definira kao omjer broja neispravno klasificiranih primjera prema ukupnom broju klasificiranih primjera. U ovoj neuronskoj mreži točnost je 100%, a pogreška 0%, iz čega se zaključuje da je neuronska mreža zaista uspješna. 4.3.5.1. Matrica grešaka Matrica grešaka u ovom slučaju je matrica grešaka za klasifikacijski problem sa dva razreda (Slika 29.). 54 Slika 29.: Matrica grešaka za klasifikacijski problem sa dva razreda Stvarno pozitivni (TP) & Stvarno negativni (TN) = Ispravna klasifikacija Krivo pozitivni (FP) & Krivo negativni (FN) = Greške klasifikacije 4.3.5.2. Dodatne mjere analize uspješnosti 55 ZAKLJUČAK Neuronska mreža obrađuje podatke distribuiranim paralelnim radom svojih čovorova. Pri tome je obradbena moć mreže pohranjena u snazi veza između pojedinih neurona, odnosno težinama do kojih se dolazi postupkom prilagodbe, tj. učenjem iz skupa podataka za obučavanje. Neuronske mreže odlično rješavaju probleme klasifikacije i predviđanja i sve probleme kod kojih postoji odnos između prediktivnih (ulaznih) i zavisnih (izlaznih) varijabli, bez obzira na visoku složenost složenost te veze (nelinearnost). Znanje o obradi podataka kod neuronskih mreža pohranjeno je u obliku različitih iznosa težinskih koeficijenata. Takvo implicitno znanje teško je interpretirati i predočiti čovjeku u obliku pravila, kao npr. stabla odlučivanja. Zbog toga se neuronske mreže uglavnom koriste kada nam je bitan samo rezultat klasificiranja ili predikcije, ali ne i pravilo po kojem je ostavren rezultat. 56 LITERATURA 1) dr.sc. VIŠEKRUNA, Vojo: Inteligentni sustavi, Umjetna inteligencija2 (predavanja), kolegij Umjetna inteligencija, akademska godina 2009/2010. 2) MAČKIĆ, Kenan: Primjena neuronskih mreža u fizici i informatici, diplomski rad, 05.04.2014., http://www.phy.hr/~planinic/diplomski/Kenan_Mackic.pdf 3) MATIĆ, Ines: Neuronske mreže, završni rad, 2012. 4) Wikipedija: Umjetna inteligencija, 05.04.2014. <http://hr.wikipedia.org/wiki/Umjetna_inteligencija#Tipi.C4.8Dna_podru.C4.8 Dja_primjene> 5) Wikipedija: Deep Blue, 05.04.2014. <http://hr.wikipedia.org/wiki/Deep_Blue> 6) Wikipedija: Računalna lingvistika, 06.04.2014. <http://hr.wikipedia.org/wiki/Ra%C4%8Dunalna_lingvistika> 7) Wikipedija: Gari Kasparov, 06.04.2014. <http://hr.wikipedia.org/wiki/Gari_Kasparov> 8) Wikipedija: Ekspertni sustavi, 06.04.2014. <http://hr.wikipedia.org/wiki/Ekspertni_sustavi> 9) Wikipedija: Inteligentni agenti, 06.04.2014. <http://hr.wikipedia.org/wiki/Inteligentni_agenti> 10) Wikipedija: Robotika, 06.04.2014. <http://hr.wikipedia.org/wiki/Robotika> 11) Wikipedija: Robotika, 07.04.2014. <http://hr.wikipedia.org/wiki/Ra%C4%8Dunalni_vid> 12) Wikipedija: Optičko prepoznavanje znakova, 07.04.2014. <http://hr.wikipedia.org/wiki/Opti%C4%8Dko_prepoznavanje_znakova> 13) <https://www.google.ba/search?q=slika+mozga&espv=2&source=lnms&tbm=is ch&sa=X&ei=boSyU5qyKoKp0QW_sYGIAg&ved=0CAYQ_AUoAQ&biw=1 252&bih=579> 07.04.2014. 14) <https://www.google.ba/search?q=biolo%C5%A1ki+neuron&espv=2&source=l nms&tbm=isch&sa=X&ei=MYWyU5boM7Cz0QXJ5ICwAg&ved=0CAYQ_A UoAQ&biw=1252&bih=579> 07.04.2014. 57
© Copyright 2024 Paperzz