Pređi na sadržaj

Нацрт:Arhitektura neuronske mreže

S Vikipedije, slobodne enciklopedije

Osnovna arhitektura neuronskih mreža[uredi | uredi izvor]

Postoje dve osnovne vrste neuronskih mreža: jednoslojne i višeslojne neuronske mreže. U jednoslojnim mrežama skup ulaza direktno se mapiran na izlaz korišćenjem generalizovane varijante linearne funkcije. Ova tip neuronske mreže naziva se perceptron. U višeslojnim neuronskim mrežama, ulazi su razdvojeni od izlaza određenim brojem slojeva, koji se nazivaju skriveni slojevi. Svaki skriveni sloj sačinjen je od određenog broja neurona. Ovaj arhitektura neuronskih mreža poznata je kao nauronska mreža sa propagacijom greške unapred.

Perceptron[uredi | uredi izvor]

Perceptron predstavlja najjednostavniji tip neuronske mreže. Ova neuronska mreža sadrži ulazni sloj i izlazni neuron. Ako se pretpostavi da je jedan trening primer dat u formi , predstavlja ulaznu promenljivu oblika koja se sastoji od atributa i , koja predstavlja klasu kojoj ulazna promenljiva pripada. U binarnim problemima . Vrednost promenljive je data uz ulazni skup podataka. Krajnji cilj je naučiti model da predviđa vrednost izlazne promenljive. Tako da za ulazne podatke za koje nije poznata izlazna vrednost, ona može da se predvidi.

Ulazni sloj perceptron mreže sadrži čvorova na koje se dovodi atrbuta ulazne promenljive . Ulazni sloj ne izvodi

bilo kakvu vrstu izračunavanja. U izlaznom čvoru izračunava se linearna funkcija oblika , gde predstavlja težinske koeficijente. Težinski koeficijenti imaju ulogu da izdvoje korisne informacije iz podataka. Znak realnog broja koji se dobija iz datog proizvoda se koristi da se predvidi klasa kojoj ulazna promenljiva pripada. Sledi da se vrednost koja se predviđa računa na sledeći način:

Funkcija znaka mapira dobijenu realnu vrednost ili u +1 ili u -1, što je odgovarajuće za binarnu klasifikaciju. Kapica koja se nalazi na izlaznoj promenljivoj ukazuje da se radi o vrednosti koja je dobije predviđanjem, a ne o stvarnoj vrednosti. Iz toga sledi da je greška predviđanja jednaka , i može uzeti jednu vrednost iz skupa . U slučajevima kada je vrednost greške različita od nule, potrebno je ažurirati vrednosti težinskih koeficijenata neuronske mreže.

Funkcija znaka služi kao aktivaciona funkcija. Različitim izbor aktivacionih funkcija mogu se simulirati različite vrste modela koji se koriste u mašinskom učenju, poput metode potpornih vektora, ili logističke regresije. Većina osnovnih modela mašinskog učenja može se lako predstaviti neuronskom mrežom. Ulazni sloj se ne broji prilikom računanja ukupnog broja slojeva od kojih se jedna neuronska mreža sastoji. Perceptron se sastoji od dva sloja, ali s obzirom da se samo jedan sloj u kome se odvija računanje, smatra se da je perceptron jednoslojna mreža.

U najvećem broju slučajeva, postoji još jedna promenljiva unutar modela, koja se nikada ne menja i naziva se naklonjenost ili bias. U slučajevima binarne klasifikacije gde je skup podataka jako nebalansiran, pristup koji je gorespomenut neće biti dovoljan za predviđanje. Potrebno je uvrstiti dodatnu promenljivu , koja predstavlja nakloljenost i koji uspeva da otkloni nepromenljiv deo predviđanja:

Perceptron je dizajniran da heuristički minimizuje broj pogrešnih klasifikacija. Minimizacija se postiže primenom funkcije gubitaka.

Iako je funkcija gubitaka definisana nad celim skupom, prilikom treniranja, mreži se podaci prosleđuju jedan po jedan(ili u malim gomilama) kako bi se dobilo određeno predviđanje . Zatim se ažuriraju težinski koeficijenti u odnosu na vrednost greške .

Ažuriranje, koje se još naziva i metoda gradijentnog spusta, se izvodi na sledeći način:

Parametar reguliše stopu učenja neuronske mreže. Perceptron algoritam nasumično prolazi kroz sve trening primere i iterativno podešava težinske koeficijente sve dok se ne dostigne konvergencija. Svaki prolazak kroz sve trening primere, u toku treniranja, naziva se epoha ili epizoda.

Perceptron algoritam primenjuje stohastičku metodu za ažuriranje težinskih koeficijenata. To znači da se greška predviđanja minimizuje ažuriranjem težinskih koeficijenata nakon treniranja svakog pojedinačnog podatka. Pretpostavka je da neuronska mreža nasumično bira podatke u toku treniranja i menja težinske koeficijente sa ciljem da smanji grešku predviđanja za dati podatak. Ažuriranje težinskih koeficijenata se vrši samo kada , a to se dešava samo kada su napravljene greške u predviđanju. U mini batch stohastičkom gradijentnom spustu, koeficijenti se ažuriraju nakon što se trenira nasumično izabrana grupa podataka veličine :

Perceptron predstavlja linearan model, model kod kog jednakost predstavlja linearnu hiperravan. Vrednost je pozitivna za vrednosti koje se nalaze sa jedne strane hiperravni, i negativna za vrednosti koje se nalaze sa druge strane hiperravni. Ovaj tip modela postiže jako visoku tačnost kada su podaci linearni separabilni. Kada podaci nisu linearno separabilni, model postiže jako loše rezultate. Dati primer ukazuje na ograničenja koja perceptron ima. Iz tog razloga je potrebno koristiti kompleksnije arhitekture neuronskih mreža.

Višeslojna neuronska mreža[uredi | uredi izvor]

Višeslojne neuronske mreže sadrže više od jednog sloja računanja. Perceptron sadrži ulazni i izlazni sloj, od kojih je izlazni sloj jedini sloj koji izvršava određeno računanje. Ulazni sloj prenosi podatke na izlazni sloj, a sva računanja su potpuno vidljiva korisniku. Višeslojne neuronske mreže sadrže računske slojeve. Dodatni međuslojevi(koji se nalaze između ulaza i izlaza) nazivaju se skriveni slojevi jer izračunavanja koja se odvijaju u njima nisu vidljiva za korisnika. Specifična arhitektura višeslojnih neuronskih mreža naziva se feed-forward mrežama, jer uzastopni slojevi ulivaju jedan u drugi od ulaza ka izlazu. Podrazumevana arhitektura mreža sa prosleđivanjem podataka unapred pretpostavlja da su svi neuroni u jednom sloju povezani sa svim neuronima u sledećem sloju. Iz tog razloga je arhitektura neuronske mreže skoro u potpunosti definisana, kada se definiše broj slojeva i broj neurona u svakom sloju. Jedina stvar koju je naknadno potrebno definisati jeste funkcija gubitka.

Kao i u slučaju jednoslojnih mreža, bias se može koristiti kod neurona koji se nalaze u skrivenim slojevima i kao i u u izlaznim slojevima. Primeri višeslojnih mreža sa ili bez bias-a prikazani su na slici (a) i (b), respektivno. U oba slučaja, neuronska mreža sadrži tri sloja. Ulazni sloj se često ne računa, prilikom prebrojavanja slojeva, jer samo prenosi podatke i ne vrši nikakvo izračunavanje. Ako neuronska mreža sadrži neurona u svakom od svojih slojeva, onda vektorske reprezentacije ovih slojeva, označene sa imaju dimenzionalnosti . Iz tog razloga broj neurona u svakom sloju predstavlja dimenzionalnost tog sloja.

Aktivaciona funkcija[uredi | uredi izvor]

U slučaju perceptrona, izbor funkcija znaka kao aktivaciona funkcija motivisan je činjenicom da se radi o binarnom klasifikacionom problemu. Ako je potrebno da se predvidi verovatnoća pripadanja binarnoj klasi, kao aktivaciona funkcija se može koristiti sigmoid, na taj način će predviđena vrednost predstavljati sigurnost sa kojom može da se garantuje da je predviđanje tačno. Što je broj bliži jedinici, sa većom sigurnošću se može garantovati da je predviđanje tačno. Važnost nelinearnih aktivacionih funkcija postaje vidljiva kada se pređe sa posmatranja perceptrona na posmatranje višeslojnih neuronskih mreža. Neke od najčešće korišćenih nelinearnih funkcija su sigmoid, tangens hiperbolički i ispravljena linearna funkcija. One se mogu koristiti kao aktivacione funkcije u svakom skrivenom sloju. Znak se koristi da označi aktivacionu funkciju:

Iz ovoga sledi da neuron računa dve jednačine unutar sebe. Vrednost koja se dobija pre primene aktivacione funkcije, naziva se pre-aktivaciona vrednost, dok se vrednost koja se dobije nakon primene aktivacione funkcije naziva aktivaciona vrednost. Izlaz iz neurona uvek predstavlja aktivacionu vrednost. Pre-aktivaciona promenljive se koriste u raznim analizama, jedna od njih je prilikom primene algoritma za promagaciju greške unazad(back propagation algorithm).

Najjednostavnija aktivaciona funkcija je linearna aktivaciona funkcija, poznata još i kao funkcija identiteta, koja ne pruža nelinearnost:

Linearna aktivaciona funkcija se obično koristi u izlaznom čvoru, kada je vrednost koja treba da se dobije realan broj.

Klasične aktivacione funkcije koje su se koristile u ranom razvoju neuronskih mreža su funkcija znaka, sigmoid i tangens hiperbolički:

- funkcija znaka

- sigmoid funkcija

- tangens hiperbolički funkcija

Funkcija sigmoid daje vrednosti iz opsega i iz tog razloga je pogodna u računu koji se može interpretirati kroz verovatnoću. Korisna je u kreiranju funkcija gubitaka maksimalnog očekivanja(maximum likelihood). Funkcija tangens hiperbolički ima oblik sličan sigmoidu, s time da je horizontalno i vertikalno skalirana u opsegu . Tangens hiperbolički i sigmoid su povezani na sledeći način:

Poželjnije je koristiti tangens hiperbolički u odnosu na sigmoid kada su vrednosti na izlazu i pozitivne i negativne. Zbog većeg gradijenta(koji je uslovljen razvlačenjem) lakše su za treniranje od sigmoidne funkcije. Sigmoid i tangens hiperbolički su dugo godina bili prvi izbor za unos nelinearnosti u neuronsku mrežu. U novije vreme, nove nelineanre funkcije su postale popularniji izbor za aktivacione funkcije:

- Rectified linear unit [ReLU]

- Hard tanh

Navedene aktivacione funkcije su u velikoj meri zamenile sigmoid i tangens hiperbolički u modernim neuronskim mrežama jer je proces treniranja višeslojnih mreža jednostavniji kada se one koriste.

Sve navedene aktivacione funkcije su monotone funkcije. Mnoge od ovih funkcija su poznate još i kao potiskujuće funkcije jer mapiraju podatke iz proizvoljno velikog skupa, na ograničen skup vrednosti. Nelinearnost aktivacije igra fundamentalnu ulogu u povećanju moći oblikovanja neuronske mreže. Ako bi višeslojna neuronska mreža koristila linearne aktivacione funkcije, to bi efektivno bilo isto kao da mrežu čini jedan linearni sloj.

Izbor i broj izlaznih čvorova u velikoj meri zavisi od izbora aktivacione funkcije, koja opet zavisi od zadatka koji je potrebno uraditi. Ako se radi klasifikacije za k-vrednosti, potrebno je izračunati k vrednosti. Dati problem se rešava primenom funkcije mekog maksimuma (softmax) kao aktivacione funkcije. Aktivaciona funkcija za neki i-ti izlaz je jednaka:

Svaka od k vrednosti odgovara verovatnoći da dati podatak pripada jednoj od k klasa. Poslednji skriveni sloj obično kao aktivacionu funkciju ima funkciju indentiteta, kada je u izlaznom sloju aktivaciona funkcija mekog maksimuma. U sloju u koje se nalazi funkcija mekog maksimuma ne postoje težinski koeficijenti. Ako si funkcija mekog maksimuma koristi u modelu koji ima samo jedan skriveni sloj u kome su sve aktivacione funkcije linearne, takav model predstavlja multinomijalu logističku regresiju.

Funkcija gubitaka[uredi | uredi izvor]

Izbor funkcije gubitaka je kritičan u definisanju izlaza koji će davati najbolje rešenje za dati problem. Na primer, regresija najmanjeg kvadrat sa numeričkim izlazima zahteva jednostavnu kvadratnu funkciju gubitaka koja ima oblik za jedan trening primer, gde predstavlja stvarnu vrednost, a vrednost dobijenu predviđanjem. Takođe se mogu koristiti druge vrste funkcije gubitka kao što je gubitak šarke(hinge loss), kod koje je , a uzima realne vrednost:

Gubitak šarke se može koristiti za implementaciju metode učenja, koja se naziva metoda potpornih vektora.

Za višeklasna predviđanja (kao na primer predviđanje identifikatora reči ili predviđanje jedna od više klasa), funkcija mekog maksimuma na izlazu je posebno dobra. Međutim, izlaz funkcije mekog maksimuma predstavlja verovatnoću i stoga zahteva drugačiji tip funkcije gubitka. Za predviđanja koja kao rezultat daju verovatnoću predviđanja, koriste se dve različite vrste funkcija gubitka, u zavisnosti od toga da li je predviđanje binarno ili je višeklasno:

Binaran izlaz (logistička regresija): U ovom slučaju, pretpostavlja se da je posmatrana vrednost uzima vrednosti iz skupa , a predviđanje je proizvoljna numerička vrednost. U tom slučaju, funkcija gubitka za jedan trening primer sa posmatranom vrednošću i predviđanjem je definisana na sledeći način:

Ova vrsta funkcije gubitka implementira fundamentalni metod mašinskog učenja, koji se naziva logistička regresija. Alternativno, može se koristiti sigmoidna aktivaciona funkcija da bi se dobio izlaz u opsegu , što ukazuje na verovatnoću da je posmatrana vrednost jednaka jedinici. Zatim, negativni logaritam od definiše funkciju gubitaka, pod pretpostavkom da je definisano u skupu . To je zato što ukazuje na verovatnoću da je predviđanje tačno. Ovo zapažanje ilustruje da se mogu koristiti različite kombinacije aktivacionih funkcija i funkcija gubitka da bi se postigao isti rezultat.

Kategorički izlazi: U ovom slučaju, ako su verovatnoće klasa (koristeći funkciju mekog maksimuma kao aktivacionu funkciju), a -ta klasa je klasa sa ispravnim izlazom, onda je funkcija gubitka za pojedinačnu instancu definisana na sledeći način:

Multinomijalna logistička regresija implementira ovu funkciju gubitka i naziva se cross entropy funkcija gubitaka. Binarna logistička regresija je identična multinomijalnoj logističkoj regresiji, kada je vrednost postavljena jednaka .

Izvodi aktivacionih funkcija[uredi | uredi izvor]

Prvenstveno se učenja kod neuronskih mreža odnosi na primenu gradijentnog spusta sa aktivacionim funkcijama.

Linearne i znak aktivacije: Izvod linearne aktivacije funkcije je jednak na svim mestima. Izvod je jednak za sve vrednosti osim za , gde je diskontinuiran i nediferenciran. Zbog nultog gradijenta i nediferencijativnosti ove aktivacione funkcije, ona se retko koristi kao funkcija gubitaka. Izvodi linearne i znak aktivacione funkcije prikazani su na slici (a) i (b), respektivno.

Aktivacija sigmoida: Izvod sigmoidne aktivacione funkcije je krajnje jednostavan, kada se izražava u obliku izlaza iz sigmoida, a ne ulaza. Neka je izlaz sigmoidne funkcije sa argumentom :

Zatim se izvod može napisati na sledeći način:

Koji se može napisati i na sledeći način:

Izvod sigmoida se češće koristi kao funkcija izlaza, nego kao funkcija ulaza. Izvod sigmoidne aktivacione funkcije je prikazan na slici (c).

Aktivacija tangens hiperboličke funkcije: Kao i u slučaju sigmoidne aktivacije, aktivacija tangens hiperboličke funkcije se često koristi kao funkcija od izlaza , a ne od ulaza :

Prvi izvod je jednak:

Koji se može napisati i na sledeći način:

Izvod aktivacije tangens hiperboličke funkcije prikazan je na slici (d).

ReLU aktivacija: ReLU uzima vrednost parcijalnog izvoda jednaku za nenegativne vrednosti svog argumenta, i , u suprotnom. Izvod ReLU aktivacije je prikazan na slici (e) .