Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 7, XP
  • Neuronske mreže rade. Jednostavnim riječima o kompleksu: šta su neuronske mreže

Neuronske mreže rade. Jednostavnim riječima o kompleksu: šta su neuronske mreže

Umjetna inteligencija, neuronske mreže, mašinsko učenje – šta svi ovi popularni koncepti zapravo znače? Za većinu neupućenih ljudi, kakav sam i ja, uvijek su izgledali kao nešto fantastično, a zapravo njihova suština leži na površini. Dugo sam imao ideju da pišem jednostavnim jezikom o umjetnim neuronskim mrežama. Naučite sami i recite drugima šta je ova tehnologija, kako funkcioniše, razmotrite njenu istoriju i izglede. U ovom članku pokušao sam ne ući u džunglu, već jednostavno i popularno ispričati o ovom obećavajućem smjeru u svijetu visokih tehnologija.

Umjetna inteligencija, neuronske mreže, mašinsko učenje – šta svi ovi popularni koncepti zapravo znače? Za većinu neupućenih ljudi, kakav sam i ja, uvijek su izgledali kao nešto fantastično, ali zapravo njihova suština leži na površini. Dugo sam imao ideju da pišem jednostavnim jezikom o umjetnim neuronskim mrežama. Naučite sami i recite drugima šta je ova tehnologija, kako funkcioniše, razmotrite njenu istoriju i izglede. U ovom članku pokušao sam ne ući u džunglu, već jednostavno i popularno ispričati o ovom obećavajućem smjeru u svijetu visokih tehnologija.

Malo istorije

Po prvi put, koncept umjetnih neuronskih mreža (ANN) nastao je prilikom pokušaja simulacije procesa u mozgu. Prvi veliki proboj u ovoj oblasti može se smatrati stvaranje McCulloch-Pitts modela neuronske mreže 1943. godine. Naučnici su prvi razvili model umjetnog neurona. Oni su također predložili izgradnju mreže ovih elemenata za izvođenje logičkih operacija. Ali što je najvažnije, naučnici su dokazali da je takva mreža sposobna da uči.

Sljedeći važan korak bio je razvoj od strane Donalda Hebba prvog algoritma za računanje ANN-a 1949. godine, koji je postao fundamentalan za narednih nekoliko decenija. Godine 1958. Frank Rosenblatt je razvio parceptron, sistem koji oponaša procese u mozgu. U jednom trenutku, tehnologija nije imala analoge i još uvijek je fundamentalna u neuronskim mrežama. 1986. godine, praktično istovremeno, nezavisno jedan od drugog, američki i sovjetski naučnici značajno su unapredili fundamentalnu metodu učenja višeslojnog perceptrona. Godine 2007. neuronske mreže su doživjele ponovno rođenje. Britanski informatičar Jeffrey Hinton je pionir algoritma dubokog učenja za višeslojne neuronske mreže, koji se sada, na primjer, koristi za upravljanje samovozećim automobilima.

Ukratko o glavnoj stvari

U opštem smislu te riječi, neuronske mreže su matematički modeli koji rade na principu mreže nervnih ćelija u životinjskom organizmu. ANN se mogu implementirati i u programibilna i u hardverska rješenja. Radi lakše percepcije, neuron se može zamisliti kao određena ćelija, koja ima mnogo ulaznih i jednu izlaznu rupu. Algoritam proračuna određuje koliko se broj ulaznih signala formira u odlazne. Efektivne vrijednosti se dostavljaju svakom ulazu neurona, koje se zatim propagiraju duž interneuronskih veza (sinopsis). Sinapse imaju jedan parametar - težinu, zbog čega se ulazna informacija mijenja pri prelasku s jednog neurona na drugi. Najlakši način da se zamisli kako funkcioniraju neuronske mreže može se predstaviti na primjeru miješanja boja. Plavi, zeleni i crveni neuroni imaju različite težine. Informacija tog neurona, čija će težina biti dominantnija u sljedećem neuronu.

Sama neuronska mreža je sistem mnogih takvih neurona (procesora). Pojedinačno, ovi procesori su prilično jednostavni (mnogo jednostavniji od procesora personalnog računara), ali kada su povezani u veliki sistem, neuroni su sposobni da obavljaju veoma složene zadatke.

Ovisno o području primjene, neuronska mreža se može tumačiti na različite načine. Na primjer, sa stanovišta mašinskog učenja, ANN je metoda prepoznavanja obrazaca. Sa matematičke tačke gledišta, ovo je problem sa više parametara. Sa stanovišta kibernetike, to je model adaptivne kontrole robotike. Za umjetnu inteligenciju, ANN je osnovna komponenta za modeliranje prirodne inteligencije korištenjem računskih algoritama.

Glavna prednost neuronskih mreža u odnosu na konvencionalne algoritme za računanje je njihova sposobnost učenja. U opštem smislu reči, učenje se sastoji u pronalaženju ispravnih koeficijenata sprege između neurona, kao i u generalizaciji podataka i identifikovanju složenih zavisnosti između ulaznih i izlaznih signala. U stvari, uspješna obuka neuronske mreže znači da će sistem moći identificirati tačan rezultat na osnovu podataka koji nisu prisutni u setu za obuku.

Današnja situacija

I bez obzira na to koliko bi ova tehnologija bila obećavajuća, do sada su ANN još uvijek jako daleko od mogućnosti ljudskog mozga i razmišljanja. Ipak, neuronske mreže se već koriste u mnogim područjima ljudske aktivnosti. Do sada nisu u stanju da donose visokointelektualne odluke, ali su u stanju da zamene osobu tamo gde je ranije bila potrebna. Među brojnim područjima primjene ANN-a mogu se izdvojiti: stvaranje samoučećih sistema proizvodnih procesa, bespilotna vozila, sistemi za prepoznavanje slika, inteligentni sigurnosni sistemi, robotika, sistemi za praćenje kvaliteta, interfejsi glasovne interakcije, sistemi za analizu i još mnogo toga. Ovako rašireno korištenje neuronskih mreža je, između ostalog, posljedica pojave različitih načina za ubrzavanje učenja ANN-a.

Danas je tržište neuronskih mreža ogromno - to je milijarde i milijarde dolara. Kao što pokazuje praksa, većina tehnologija neuronskih mreža širom svijeta malo se razlikuje jedna od druge. Međutim, korištenje neuronskih mreža je vrlo skupa vježba, koju u većini slučajeva mogu priuštiti samo velike kompanije. Za razvoj, obuku i testiranje neuronskih mreža potrebna je velika računarska snaga, očigledno je da veliki igrači na IT tržištu imaju dovoljno toga. Među glavnim kompanijama koje vode razvoj u ovoj oblasti su Google DeepMind, Microsoft Research, IBM, Facebook i Baidu.

Naravno, sve je to dobro: neuronske mreže se razvijaju, tržište raste, ali do sada glavni zadatak nije riješen. Čovječanstvo nije uspjelo stvoriti tehnologiju koja je čak i bliska po sposobnostima ljudskom mozgu. Pogledajmo glavne razlike između ljudskog mozga i umjetnih neuronskih mreža.

Zašto su neuronske mreže još uvijek daleko od ljudskog mozga?

Najvažnija razlika koja suštinski menja princip i efikasnost sistema je različit prenos signala u veštačkim neuronskim mrežama i u biološkoj mreži neurona. Činjenica je da u ANN-u neuroni prenose vrijednosti koje su stvarne vrijednosti, odnosno brojevi. U ljudskom mozgu se prenose impulsi sa fiksnom amplitudom, a ti impulsi su gotovo trenutni. Dakle, postoji niz prednosti ljudske mreže neurona.

Prvo, komunikacijske linije u mozgu su mnogo efikasnije i ekonomičnije nego u ANN-ima. Drugo, impulsno kolo osigurava jednostavnost implementacije tehnologije: dovoljno je koristiti analogna kola umjesto složenih računskih mehanizama. U konačnici, impulsne mreže su zaštićene od akustičnih smetnji. Valjani brojevi su skloni buci, što povećava vjerovatnoću grešaka.

Ishod

Naravno, u posljednjoj deceniji došlo je do pravog buma u razvoju neuronskih mreža. To je prvenstveno zbog činjenice da je proces učenja ANN-a postao mnogo brži i lakši. Također, počele su se aktivno razvijati takozvane "pretrenirane" neuronske mreže, koje mogu značajno ubrzati proces implementacije tehnologije. I ako je prerano reći hoće li neuronske mreže jednog dana moći u potpunosti reproducirati sposobnosti ljudskog mozga, vjerovatnoća da će u narednoj deceniji ANN moći zamijeniti ljude u četvrtini postojećih profesija postaje sve veća i veća. kao istina.

Za one koji žele znati više

  • Veliki neuronski rat: šta Google zaista sprema
  • Kako kognitivni kompjuteri mogu promijeniti našu budućnost
Algoritmi, mašinsko učenje

Dobrodošli u drugi dio tutorijala o neuronskoj mreži. Samo da se izvinim svima koji su drugi dio čekali mnogo ranije. Iz nekog razloga, morao sam da odložim pisanje. Zapravo, nisam očekivao da će prvi članak imati toliku potražnju i da će toliko ljudi biti zainteresovano za ovu temu. Uzimajući u obzir vaše komentare, nastojat ću vam pružiti što više informacija i istovremeno zadržati način na koji su predstavljene što je moguće jasnije. U ovom članku ću govoriti o načinima treniranja/treninga neuronskih mreža (posebno o metodi backpropagacije) i ako iz nekog razloga niste pročitali prvi dio, toplo preporučujem da počnete s njim. U procesu pisanja ovog članka želio sam govoriti i o drugim vrstama neuronskih mreža i metodama treninga, međutim, počevši pisati o njima, shvatio sam da bi to bilo protiv moje metode prezentacije. Razumijem da ste željni što više informacija, ali ove teme su veoma opsežne i zahtijevaju detaljnu analizu, a moj glavni zadatak nije da napišem još jedan članak sa površnim objašnjenjem, već da vam prenesem svaki aspekt teme podignuti i učiniti članak što lakšim.razvoj. Požurim da uznemirim one koji vole da "kodiraju", jer i dalje neću pribegavati korišćenju programskog jezika i sve ću objasniti na prste. Dosta je bilo uvoda, hajde da nastavimo naše proučavanje neuronskih mreža.

Šta je neuron pomaka?


Prije nego što započnemo našu glavnu temu, moramo uvesti koncept druge vrste neurona - neurona pomaka. Bias neuron ili bias neuron je treći tip neurona koji se koristi u većini neuronskih mreža. Posebnost ovog tipa neurona je da su njegov ulaz i izlaz uvijek jednaki 1 i nikada nemaju ulazne sinapse. Neuroni pomaka mogu biti prisutni u neuronskoj mreži jedan po jedan na sloju, ili biti potpuno odsutni, 50/50 ne može biti (težine i neuroni koji se ne mogu postaviti su prikazani crvenom bojom na dijagramu). Veze za neurone pomaka su iste kao i za obične neurone - sa svim neuronima sljedećeg nivoa, osim što ne može postojati sinapsa između dva bias neurona. Stoga se mogu postaviti na ulazni sloj i sve skrivene slojeve, ali ne i na izlazni sloj, jer jednostavno nemaju s čime da se povežu.

Čemu služi pristrasni neuron?



Neuron pomaka je potreban da bi se mogao dobiti izlazni rezultat pomicanjem grafa aktivacijske funkcije udesno ili ulijevo. Ako ovo zvuči zbunjujuće, pogledajmo jednostavan primjer gdje postoji jedan ulazni i jedan izlazni neuron. Tada se može utvrditi da će izlaz O2 biti jednak H1 ulazu pomnoženom njegovom težinom i proći kroz funkciju aktivacije (formula na slici lijevo). U našem konkretnom slučaju koristit ćemo sigmoid.

Iz školskog predmeta matematike znamo da ako uzmemo funkciju y = ax + b i promijenimo njene vrijednosti "a", tada će se promijeniti nagib funkcije (boje linija na grafikonu s lijeve strane) , a ako promijenimo "b", onda ćemo funkciju pomjeriti udesno ili ulijevo (boje linija na grafu desno). Dakle, "a" je težina H1, a "b" je težina neurona pristrasnosti B1. Ovo je grub primjer, ali ovako funkcionira (ako pogledate funkciju aktivacije desno na slici, primijetit ćete vrlo snažnu sličnost između formula). Odnosno, kada tokom treninga prilagodimo težine skrivenih i izlaznih neurona, mijenjamo nagib aktivacijske funkcije. Međutim, podešavanje težine neurona pristranosti može nam dati priliku da pomjerimo funkciju aktivacije duž X-ose i uhvatimo nova područja. Drugim riječima, ako je tačka odgovorna za vaše rješenje locirana, kao što je prikazano na grafikonu lijevo, tada vaša neuronska mreža nikada neće moći riješiti problem bez korištenja pristrasnih neurona. Stoga rijetko možete pronaći neuronske mreže bez pristrasnih neurona.

Također, bias neuroni pomažu u slučaju kada svi ulazni neuroni dobiju 0 kao ulaz i bez obzira na njihove težine, oni će sve prenijeti na sljedeći sloj 0, ali ne i u slučaju prisustva bias neurona. Prisustvo ili odsustvo neurona pristranosti je hiperparametar (o tome više kasnije). Ukratko, sami morate odlučiti da li trebate koristiti pristrasne neurone ili ne tako što ćete pokrenuti neuronsku mrežu sa i bez miješanja neurona i upoređujući rezultate.

BITAN imajte na umu da ponekad na dijagramima oni ne označavaju pristrasne neurone, već jednostavno uzimaju u obzir njihove težine prilikom izračunavanja ulazne vrijednosti, na primjer:

Ulaz = H1 * w1 + H2 * w2 + b3
b3 = pristranost * w3

Pošto je njegov izlaz uvijek 1, možemo jednostavno zamisliti da imamo dodatnu sinapsu sa težinom i dodati ovu težinu zbiru bez pominjanja samog neurona.

Kako naterati Narodnu skupštinu da daje tačne odgovore?

Odgovor je jednostavan - morate je obučiti. Međutim, koliko god da je odgovor jednostavan, njegova implementacija u smislu jednostavnosti ostavlja mnogo da se poželi. Postoji nekoliko metoda za podučavanje neuronskih mreža, a ja ću izdvojiti 3, po mom mišljenju, najzanimljivije:
  • Metoda razmnožavanja unazad
  • Otporno širenje (Rprop)
  • Genetski algoritam
Rprop i GA će biti razmatrani u drugim člancima, ali sada ćemo pogledati osnovne osnove - metodu backpropagacije, koja koristi algoritam gradijenta spuštanja.

Šta je Gradijentno spuštanje?

Ovo je način za pronalaženje lokalnog minimuma ili maksimuma funkcije pomicanjem duž gradijenta. Jednom kada shvatite suštinu gradijentnog spuštanja, ne biste trebali imati pitanja dok koristite metodu povratnog širenja. Prvo, hajde da shvatimo šta je gradijent i gde je prisutan u našoj neuronskoj mreži. Napravimo graf gdje će x-osa biti vrijednosti težine neurona (w), a y-osa će biti greška koja odgovara ovoj težini (e).


Gledajući ovaj graf, shvatit ćemo da je graf funkcije f (w) ovisnost greške o odabranoj težini. Na ovom grafikonu nas zanima globalni minimum - tačka (w2, e2) ili, drugim riječima, mjesto gdje se grafikon najbliže x-osi. Ova tačka će značiti da ćemo izborom težine w2 dobiti najmanju grešku - e2 i, kao posljedicu, najbolji mogući rezultat. Metoda gradijentnog spuštanja će nam pomoći da pronađemo ovu tačku (gradijent je prikazan žutom bojom na grafikonu). U skladu s tim, svaka težina u neuronskoj mreži će imati svoj vlastiti graf i gradijent, i svaki treba da pronađe globalni minimum.

Dakle, šta je ovo gradijent? Gradijent je vektor koji definira strminu nagiba i ukazuje na njegov smjer u odnosu na bilo koju tačku na površini ili grafikonu. Da biste pronašli gradijent, morate uzeti derivaciju grafa u datoj tački (kao što je prikazano na grafikonu). Krećući se u pravcu ovog gradijenta, glatko ćemo kliziti u nizinu. Sada zamislite da je greška skijaš, a graf funkcije planina. Shodno tome, ako je greška 100%, onda je skijaš na samom vrhu planine, a ako je greška 0%, onda u niziji. Kao i svi skijaši, buba ima tendenciju da se spusti što je brže moguće i smanji svoju vrijednost. Na kraju bismo trebali dobiti sljedeći rezultat:


Zamislite da se skijaš helikopterom baci na planinu. Koliko visoka ili niska zavisi od slučaja (slično kao u neuronskoj mreži, tokom inicijalizacije, težine se nasumično dodeljuju). Recimo da je greška 90% i ovo je naša polazna tačka. Sada skijaš treba da se spusti koristeći nagib. Na putu prema dolje, na svakoj tački ćemo izračunati gradijent koji će nam pokazati smjer spuštanja i, kada se nagib promijeni, prilagoditi ga. Ako je nagib ravan, onda ćemo nakon n-tog broja takvih radnji doći do nizije. Ali u većini slučajeva nagib (grafikon funkcije) će biti valovit i naš skijaš će se suočiti s vrlo ozbiljnim problemom - lokalnim minimumom. Mislim da svi znaju što je lokalni i globalni minimum funkcije, evo primjera za osvježavanje pamćenja. Ulazak u lokalni minimum bremenit je činjenicom da će naš skijaš zauvijek ostati u ovoj nizini i nikada neće kliziti niz planinu, stoga nikada nećemo moći dobiti tačan odgovor. Ali ovo možemo izbjeći tako da opremimo našeg skijaša mlaznim ranom koji se zove momentum. Evo kratke ilustracije trenutka:

Kao što ste vjerovatno već pretpostavili, ovaj ranac će skijašu dati potrebno ubrzanje da savlada brdo koje nas drži na lokalnom minimumu, ali postoji jedno ALI. Zamislimo da smo postavili određenu vrijednost za parametar momenta i da lako možemo savladati sve lokalne minimume i doći do globalnog minimuma. S obzirom da ne možemo jednostavno isključiti jetpack, možemo proći preko globalnog minimuma ako pored njega još uvijek postoje nizine. U krajnjem slučaju, to i nije toliko važno, jer ćemo se prije ili kasnije ipak vratiti na globalni minimum, ali vrijedi zapamtiti da što je trenutak veći, to je veći zamah s kojim će skijaš voziti po nizinama. Zajedno sa trenutkom, metoda propagacije unazad koristi i parametar kao što je brzina učenja. Kao što će mnogi vjerovatno pomisliti, što je veća stopa učenja, brže ćemo trenirati neuronsku mrežu. br. Stopa učenja, kao i trenutak, je hiperparametar - vrijednost koja se bira metodom pokušaja i grešaka. Brzina učenja može biti direktno povezana sa brzinom skijaša i slobodno se može reći da ćete ići tiše. Međutim, tu postoje i određeni aspekti, jer ako skijašu uopće ne damo brzinu, onda on neće nigdje ići, a ako damo malu brzinu, onda se vrijeme putovanja može protegnuti jako, jako dugo vremenski period. Šta se onda događa ako damo previše brzine?


Kao što vidite, ništa dobro. Skijaš će početi kliziti pogrešnim putem, a možda čak i u drugom smjeru, što će nas, kao što razumijete, samo udaljiti od pronalaska pravog odgovora. Stoga je u svim ovim parametrima potrebno pronaći zlatnu sredinu kako bi se izbjegla nekonvergencija NN (više o tome kasnije).

Šta je metoda povratnog razmnožavanja (MPA)?

Dakle, došli smo do tačke u kojoj možemo razgovarati o tome kako osigurati da vaša neuronska mreža može pravilno učiti i donijeti ispravne odluke. MOP je vrlo dobro prikazan na ovom GIF-u:


Sada pogledajmo detaljnije svaku fazu. Ako se sećate da smo u prethodnom tekstu razmatrali izlaz Narodne skupštine. Na drugi način, ovo se zove naprijed prolaz, odnosno mi sekvencijalno prenosimo informacije od ulaznih neurona do izlaznih neurona. Nakon toga izračunavamo grešku i na osnovu nje pravimo postback, koji se sastoji u sekvencijalnoj promjeni težina neuronske mreže, počevši od težina izlaznog neurona. Težine će se mijenjati u smjeru koji nam daje najbolji rezultat. U svojim proračunima koristit ću metodu pronalaženja delte, jer je to najjednostavniji i najrazumljiviji način. Također ću koristiti stohastičku metodu za ažuriranje pondera (više o tome kasnije).

Sada nastavimo tamo gdje smo stali s proračunima u prethodnom članku.

Ovi zadaci iz prethodnog članka


Podaci: I1 = 1, I2 = 0, w1 = 0,45, w2 = 0,78, w3 = -0,12, w4 = 0,13, w5 = 1,5, w6 = -2,3.

H1ulaz = 1 * 0,45 + 0 * -0,12 = 0,45
H1izlaz = sigmoid (0,45) = 0,61

H2ulaz = 1 * 0,78 + 0 * 0,13 = 0,78
H2izlaz = sigmoid (0,78) = 0,69

O1ulaz = 0,61 * 1,5 + 0,69 * -2,3 = -0,672
O1izlaz = sigmoidni (-0,672) = 0,33

O1ideal = 1 (0xor1 = 1)

Greška = ((1-0,33) ^ 2) /1=0,45

Rezultat je 0,33, greška je 45%.


Pošto smo već izračunali rezultat NN i njegovu grešku, možemo odmah preći na MPA. Kao što sam ranije spomenuo, algoritam uvijek počinje sa izlaznim neuronom. U tom slučaju, izračunajmo vrijednost za to? (delta) po formuli 1.

Pošto izlazni neuron nema izlazne sinapse, koristićemo prvu formulu (? Izlaz), pa ćemo za skrivene neurone već uzeti drugu formulu (? Skriven). Ovdje je sve prilično jednostavno: izračunavamo razliku između željenog i dobivenog rezultata i množimo derivacijom aktivacijske funkcije iz ulazne vrijednosti zadanog neurona. Prije početka proračuna, želim da vam skrenem pažnju na izvod. Prvo, kao što je vjerovatno već postalo jasno, samo one aktivacijske funkcije koje se mogu razlikovati trebaju se koristiti sa MOP-ovima. Drugo, kako ne bi radili nepotrebne kalkulacije, derivativnu formulu možemo zamijeniti ugodnijom i jednostavnijom formulom u obliku:


Tako će naši proračuni za tačku O1 izgledati ovako.

Rješenje

O1izlaz = 0,33
O1idealno = 1
Greška = 0,45

O1 = (1 - 0,33) * ((1 - 0,33) * 0,33) = 0,148


Ovim se završavaju proračuni za neuron O1. Zapamtite da nakon izračunavanja delte neurona, moramo odmah ažurirati težine svih izlaznih sinapsi ovog neurona. Pošto ih nema u slučaju O1, idemo na neurone latentnog nivoa i radimo isto, osim što sada imamo drugu formulu za izračunavanje delte i njena suština je da pomnožimo derivaciju aktivacijske funkcije iz ulaza vrijednost zbirom proizvoda svih izlaznih težina i delte neurona s kojima je ova sinapsa povezana. Ali zašto su formule različite? Poenta je da je cijela poenta MOR-a da propagira grešku izlaznih neurona na sve težine neuronske mreže. Greška se može izračunati samo na izlaznom nivou, kao što smo već uradili, izračunali smo i deltu u kojoj ova greška već postoji. Shodno tome, sada ćemo umjesto greške koristiti deltu koja će se prenositi od neurona do neurona. U tom slučaju, pronađimo deltu za H1:

Rješenje

H1izlaz = 0,61
w5 = 1,5
O1 = 0,148

H1 = ((1 - 0,61) * 0,61) * (1,5 * 0,148) = 0,053


Sada moramo pronaći gradijent za svaku izlaznu sinapsu. Ovdje obično ubacuju razlomak od 3 kata s gomilom izvedenica i drugim matematičkim pakao, ali to je ljepota korištenja delta metode brojanja, jer će na kraju vaša formula za pronalaženje gradijenta izgledati ovako:

Ovdje je tačka A tačka na početku sinapse, a tačka B na kraju sinapse. Dakle, gradijent w5 možemo izračunati na sljedeći način:

Rješenje

H1izlaz = 0,61
O1 = 0,148

GRADw5 = 0,61 * 0,148 = 0,09


Sada imamo sve potrebne podatke za ažuriranje težine w5 i to ćemo učiniti zahvaljujući MOP funkciji koja izračunava iznos za koji treba promijeniti jednu ili drugu težinu i to izgleda ovako:


Toplo preporučujem da ne zanemarite drugi dio izraza i iskoristite trenutak jer će vam to omogućiti da izbjegnete probleme s lokalnim minimumom.

Ovdje vidimo 2 konstante o kojima smo već govorili kada smo razmatrali algoritam gradijenta spuštanja: E (epsilon) - brzina učenja,? (alfa) - trenutak. Prevodeći formulu u riječi, dobijamo: promjena težine sinapse jednaka je koeficijentu brzine učenja pomnoženom s gradijentom ove težine, dodajte trenutak pomnožen s prethodnom promjenom ove težine (na 1. iteraciji jednak je 0). U ovom slučaju, izračunajmo promjenu težine w5 i ažuriramo njenu vrijednost dodavanjem W5.

Rješenje

E = 0,7
? = 0.3
w5 = 1,5
GRADw5 = 0,09
w5 (i-1) = 0

W5 = 0,7 * 0,09 + 0 * 0,3 = 0,063
w5 = w5 +?w5 = 1,563


Dakle, nakon primjene algoritma, naša težina se povećala za 0,063. Sada predlažem da uradite isto za H2.

Rješenje

H2izlaz = 0,69
w6 = -2,3
O1 = 0,148
E = 0,7
? = 0.3
w6 (i-1) = 0

H2 = ((1 - 0,69) * 0,69) * (-2,3 * 0,148) = -0,07

GRADw6 = 0,69 * 0,148 = 0,1

W6 = 0,7 * 0,1 + 0 * 0,3 = 0,07

W6 = w6 +?W6 = -2,2


I naravno, ne zaboravite na I1 i I2, jer i oni imaju sinapse težine koje također moramo ažurirati. Međutim, zapamtite da ne moramo pronaći delte za ulazne neurone, jer oni nemaju ulazne sinapse.

Rješenje

w1 = 0,45,?w1 (i-1) = 0
w2 = 0,78,?w2 (i-1) = 0
w3 = -0,12,?w3 (i-1) = 0
w4 = 0,13,?w4 (i-1) = 0
H1 = 0,053
H2 = -0,07
E = 0,7
? = 0.3

GRADw1 = 1 * 0,053 = 0,053
GRADw2 = 1 * -0,07 = -0,07
GRADw3 = 0 * 0,053 = 0
GRADw4 = 0 * -0,07 = 0

W1 = 0,7 * 0,053 + 0 * 0,3 = 0,04
w2 = 0,7 * -0,07 + 0 * 0,3 = -0,05
? w3 = 0,7 * 0 + 0 * 0,3 = 0
? w4 = 0,7 * 0 + 0 * 0,3 = 0

W1 = w1 +?W1 = 0,5
w2 = w2 +?w2 = 0,73
w3 = w3 +?w3 = -0,12
w4 = w4 +?w4 = 0,13


Sada se uvjerimo da smo sve uradili ispravno i ponovo izračunajmo izlaz neuronske mreže samo s ažuriranim težinama.

Rješenje

I1 = 1
I2 = 0
w1 = 0,5
w2 = 0,73
w3 = -0,12
w4 = 0,13
w5 = 1,563
w6 = -2,2

H1ulaz = 1 * 0,5 + 0 * -0,12 = 0,5
H1izlaz = sigmoid (0,5) = 0,62

H2ulaz = 1 * 0,73 + 0 * 0,124 = 0,73
H2izlaz = sigmoid (0,73) = 0,675

O1ulaz = 0,62 * 1,563 + 0,675 * -2,2 = -0,51
O1izlaz = sigmoidni (-0,51) = 0,37

O1ideal = 1 (0xor1 = 1)

Greška = ((1-0,37) ^ 2) /1=0,39

Rezultat je 0,37, greška je 39%.


Kao što vidimo nakon jedne iteracije MPA, uspjeli smo smanjiti grešku za 0,04 (6%). Sada ovo morate ponavljati iznova i iznova dok vaša greška ne bude dovoljno mala.

Šta još trebate znati o procesu učenja?

Neuronska mreža se može podučavati sa ili bez nastavnika (učenje pod nadzorom, učenje bez nadzora).

Učenje pod nadzorom- Ovo je tip obuke svojstven problemima kao što su regresija i klasifikacija (koristili smo je u gornjem primjeru). Drugim riječima, ovdje se ponašate kao nastavnik, a NS kao učenik. Vi dajete ulazne podatke i željeni rezultat, odnosno učenik će, gledajući ulazne podatke, shvatiti da treba da teži rezultatu koji ste mu dali.

Učenje bez nastavnika- ova vrsta treninga nije tako česta. Ovdje nema nastavnika, pa mreža ne postiže željeni rezultat ili je njihov broj vrlo mali. U osnovi, ovaj tip treninga je svojstven neuronskim mrežama u kojima je zadatak grupirati podatke prema određenim parametrima. Recimo da Habréu pošaljete 10.000 članaka i nakon analize svih ovih članaka Narodna skupština će moći da ih kategorizira na osnovu, na primjer, riječi koje se često pojavljuju. Članci koji pominju programske jezike, programiranje i gdje riječi poput Photoshopa dizajniraju.

Postoji i tako zanimljiva metoda kao što je učenje s pojačanjem(učenje s pojačanjem). Ova metoda zaslužuje poseban članak, ali ću pokušati ukratko opisati njenu suštinu. Ova metoda je primenljiva kada možemo, na osnovu rezultata dobijenih od Narodne skupštine, da joj damo ocenu. Recimo, želimo da naučimo Narodnu skupštinu da igra PAC-MAN, pa ćemo svaki put kada Narodna skupština dobije mnogo poena, to podsticati. Drugim riječima, dajemo pravo NS-u da pronađe bilo koji način za postizanje cilja, sve dok daje dobar rezultat. Na taj način će mreža početi da razumije šta želi postići od nje i pokušava pronaći najbolji način za postizanje tog cilja bez stalnog dostavljanja podataka od strane „nastavnika“.

Također, obuka se može izvoditi korištenjem tri metode: stohastička metoda, batch metoda i mini-batch metoda. Postoji toliko mnogo članaka i studija o tome koja je metoda najbolja, a niko ne može dati opći odgovor. Ja sam pristalica stohastičke metode, ali ne poričem činjenicu da svaka metoda ima svoje prednosti i mane.

Ukratko o svakoj metodi:

Stohastic(ponekad se naziva i online) metoda radi prema sljedećem principu - pronađeno?w, odmah ažurirati odgovarajuću težinu.

Batch metoda radi drugačije. Sumiramo?W svih pondera u trenutnoj iteraciji i tek onda ažuriramo sve težine koristeći ovu sumu. Jedna od najvažnijih prednosti ovog pristupa je značajna ušteda u vremenu računanja, dok se u ovom slučaju može ozbiljno narušiti tačnost.

Mini batch metoda je zlatna sredina i pokušava kombinirati prednosti obje metode. Ovdje je princip sljedeći: slobodno raspoređujemo pondere među grupama i mijenjamo njihove težine za zbir?W svih pondera u jednoj ili drugoj grupi.

Šta su hiperparametri?

Hiperparametri su vrijednosti koje je potrebno odabrati ručno i često pokušajem i greškom. Među ovim vrijednostima su:
  • Trenutak i brzina učenja
  • Broj skrivenih slojeva
  • Broj neurona u svakom sloju
  • Prisustvo ili odsustvo neurona pomaka
U drugim vrstama neuronskih mreža postoje dodatni hiperparametri, ali o njima nećemo govoriti. Odabir pravih hiperparametara je vrlo važan i direktno će utjecati na konvergenciju vaše neuronske mreže. Dovoljno je lako razumjeti da li treba koristiti pristrasne neurone ili ne. Broj skrivenih slojeva i neurona u njima može se izračunati grubom silom na osnovu jednog jednostavnog pravila - što je više neurona, to je rezultat tačniji i eksponencijalno više vremena ćete potrošiti na obuku. Međutim, vrijedi zapamtiti da ne biste trebali napraviti neuronsku mrežu sa 1000 neurona da biste riješili jednostavne probleme. Ali s izborom trenutka i brzinom učenja, sve je malo složenije. Ovi hiperparametri će varirati, ovisno o zadatku i arhitekturi neuronske mreže. Na primjer, za XOR rješenje, stopa učenja može biti u rasponu od 0,3 - 0,7, ali u neuronskoj mreži koja analizira i predviđa cijenu dionica, stopa učenja veća od 0,00001 dovodi do loše konvergencije neuronske mreže. Ne biste se sada trebali fokusirati na hiperparametre i pokušati temeljito razumjeti kako ih odabrati. Ovo će doći s iskustvom, ali za sada vam savjetujem da samo eksperimentirate i potražite primjere rješavanja određenog problema na mreži.

Šta je konvergencija?



Konvergencija pokazuje da li je arhitektura neuronske mreže ispravna i da li su hiperparametri ispravno odabrani u skladu sa zadatkom. Recimo da naš program ispisuje NS grešku pri svakoj iteraciji u dnevnik. Ako se greška smanjuje sa svakom iteracijom, onda smo na dobrom putu i naša neuronska mreža konvergira. Ako greška skače gore-dolje ili se zamrzne na određenom nivou, tada se NN ne konvergira. U 99% slučajeva to se rješava promjenom hiperparametara. Preostalih 1% znači da imate grešku u arhitekturi neuronske mreže. Takođe se dešava da na konvergenciju utiče preobuka neuronske mreže.

Šta je prekvalifikacija?

Preopterećenost, kao što ime govori, je stanje neuronske mreže kada je prezasićena podacima. Ovaj problem nastaje ako je potrebno predugo za obuku mreže na istim podacima. Drugim riječima, mreža će početi ne da uči iz podataka, već da ih pamti i "trpa". Shodno tome, kada već predate nove podatke na ulaz ove neuronske mreže, može se pojaviti šum u primljenim podacima, što će uticati na tačnost rezultata. Na primjer, ako NA pokažemo različite fotografije jabuka (samo crvene) i kažemo da je ovo jabuka. Tada, kada NS vidi žutu ili zelenu jabuku, neće moći da utvrdi da je to jabuka, jer je zapamtila da sve jabuke moraju biti crvene. Nasuprot tome, kada NS vidi nešto crveno i oblik jabuke, kao što je breskva, reći će da je to jabuka. Ovo je buka. Na grafikonu će šum izgledati ovako.


Može se vidjeti da graf funkcije jako fluktuira od tačke do tačke, što je izlaz (rezultat) naše neuronske mreže. U idealnom slučaju, ovaj graf bi trebao biti manje valovit i manje ravan. Da biste izbjegli preopterećenje, ne biste trebali dugo trenirati NN na istim ili vrlo sličnim podacima. Također, prekomjerno prilagođavanje može biti uzrokovano velikim brojem parametara koje unosite na ulaz neuronske mreže ili previše složenom arhitekturom. Dakle, kada primijetite greške (šum) u izlazu nakon faze obuke, tada bi trebali koristiti jednu od metoda regularizacije, ali u većini slučajeva to neće biti potrebno.

Zaključak

Nadam se da je ovaj članak bio u stanju da razjasni ključne tačke tako teške teme kao što su neuronske mreže. Međutim, vjerujem da koliko god članaka pročitali, nemoguće je savladati ovako složenu temu bez prakse. Stoga, ako ste tek na početku puta i želite proučavati ovu perspektivnu i razvijajuću se industriju, onda vam savjetujem da počnete vježbati pisanjem vlastite neuronske mreže, a tek nakon toga pribjegnete korištenju raznih okvira i biblioteka. Takođe, ako ste zainteresovani za moj način predstavljanja informacija i želite da pišem članke o drugim temama vezanim za mašinsko učenje, onda glasajte u anketi ispod za temu koja vas zanima. Vidimo se u narednim člancima :)

Shodno tome, neuronska mreža uzima dva broja kao ulaz i mora dati drugi broj na izlazu - odgovor. Sada o samim neuronskim mrežama.

Šta je neuronska mreža?


Neuronska mreža je niz neurona povezanih sinapsama. Struktura neuronske mreže došla je u svijet programiranja direktno iz biologije. Zahvaljujući ovoj strukturi, mašina stječe sposobnost analiziranja, pa čak i pamćenja različitih informacija. Neuronske mreže su također u stanju ne samo da analiziraju dolazne informacije, već i da ih reprodukuju iz svoje memorije. Za one koji su zainteresovani, obavezno pogledajte 2 videa sa TED Talks-a: Video 1 , Video 2). Drugim riječima, neuronska mreža je strojna interpretacija ljudskog mozga, koja sadrži milijune neurona koji prenose informacije u obliku električnih impulsa.

Šta su neuronske mreže?

Za sada ćemo razmotriti primjere najosnovnijeg tipa neuronskih mreža - ovo je feedforward mreža (u daljem tekstu FNS). Također u narednim člancima predstavit ću više koncepata i reći vam o rekurentnim neuronskim mrežama. DSS je, kao što naziv govori, mreža sa serijskom vezom neuronskih slojeva, u kojoj informacije uvijek idu samo u jednom smjeru.

Čemu služe neuronske mreže?

Neuronske mreže se koriste za rješavanje složenih problema koji zahtijevaju analitičke proračune slične onima u ljudskom mozgu. Najčešće upotrebe neuronskih mreža su:

Klasifikacija- distribucija podataka po parametrima. Na primjer, na ulazu se daje skup ljudi i potrebno je odlučiti kome od njih dati kredit, a kome ne. Ovaj posao može obaviti neuronska mreža koja analizira informacije kao što su starost, solventnost, kreditna istorija, itd.

Predviđanje- sposobnost predviđanja sljedećeg koraka. Na primjer, porast ili pad dionice na osnovu situacije na berzi.

Priznanje- trenutno najraširenija upotreba neuronskih mreža. Koristi se na Google-u kada tražite fotografiju ili u kamerama telefona kada detektuje položaj vašeg lica i ističe ga i još mnogo toga.

Sada, da bismo razumjeli kako funkcioniraju neuronske mreže, pogledajmo njihove komponente i njihove parametre.

Šta je neuron?

Neuron je računska jedinica koja prima informacije, vrši jednostavne proračune na njima i dalje ih prenosi. Podijeljeni su u tri glavna tipa: ulazni (plavi), skriveni (crveni) i izlazni (zeleni). Tu su i neuron pristranosti i neuron konteksta, o kojima ćemo govoriti u sljedećem članku. U slučaju kada se neuronska mreža sastoji od velikog broja neurona, uvodi se pojam sloj. Prema tome, postoji ulazni sloj koji prima informacije, n skrivenih slojeva (obično ne više od 3) koji ih obrađuju i izlazni sloj koji daje rezultat. Svaki od neurona ima 2 glavna parametra: ulazne podatke i izlazne podatke. U slučaju ulaznog neurona: ulaz = izlaz. U ostalom, ukupne informacije svih neurona iz prethodnog sloja ulaze u ulazno polje, nakon čega se normaliziraju pomoću aktivacijske funkcije (za sada samo predstavite f(x)) i ulaze u izlazno polje.


Važno je zapamtiti da neuroni rade sa brojevima u rasponu ili [-1,1]. Ali šta, pitate se, onda upravljati brojevima koji izlaze iz ovog raspona? U ovoj fazi, najjednostavniji odgovor je podijeliti 1 tim brojem. Ovaj proces se naziva normalizacija i vrlo se često koristi u neuronskim mrežama. Više o ovome kasnije.

Šta je sinapsa?


Sinapsa je veza između dva neurona. Sinapse imaju 1 parametar - težinu. Zahvaljujući njemu, ulazna informacija se mijenja kada se prenosi s jednog neurona na drugi. Recimo da postoje 3 neurona koji prenose informacije sljedećem. Tada imamo 3 težine koje odgovaraju svakom od ovih neurona. Za neuron veće težine, ta informacija će biti dominantna u sljedećem neuronu (na primjer, miješanje boja). U stvari, skup pondera neuronske mreže ili matrica težina je neka vrsta mozga čitavog sistema. Zahvaljujući ovim težinama ulazne informacije se obrađuju i pretvaraju u rezultat.

Važno je zapamtiti da se tokom inicijalizacije neuronske mreže, težine dodeljuju nasumično.

Kako funkcionira neuronska mreža?


U ovom primjeru prikazan je dio neuronske mreže, gdje slova I označavaju ulazne neurone, slovo H označava skriveni neuron, a slovo w označava težine. Iz formule se može vidjeti da je ulazna informacija zbir svih ulaznih podataka pomnožen odgovarajućim težinama. Zatim dajemo ulaz 1 i 0. Neka je w1 = 0,4 i w2 = 0,7 Ulazni podaci neurona H1 će biti sljedeći: 1 * 0,4 + 0 * 0,7 = 0,4. Sada kada imamo ulaz, možemo dobiti izlaz uključivanjem ulaza u funkciju aktivacije (više o tome kasnije). Sada kada imamo izlaz, prenosimo ga dalje. I tako, ponavljamo za sve slojeve dok ne dođemo do izlaznog neurona. Pokrenuvši takvu mrežu po prvi put, videćemo da je odgovor daleko od tačnog, jer mreža nije obučena. Mi ćemo je obučiti da poboljša svoje rezultate. Ali prije nego što naučimo kako to učiniti, hajde da predstavimo nekoliko pojmova i svojstava neuronske mreže.

Funkcija aktivacije

Aktivacijska funkcija je način za normalizaciju ulaznih podataka (o tome smo ranije govorili). Odnosno, ako imate veliki broj na ulazu, nakon što ste ga prošli kroz funkciju aktivacije, dobit ćete izlaz u rasponu koji vam je potreban. Postoji mnogo aktivacijskih funkcija, pa ćemo razmotriti one najosnovnije: Linearnu, Sigmoidnu (Logističku) i Hiperboličku tangentu. Njihova glavna razlika je raspon vrijednosti.

Linearna funkcija


Ova funkcija se gotovo nikada ne koristi, osim kada trebate testirati neuronsku mrežu ili prenijeti vrijednost bez transformacija.

Sigmoid


Ovo je najčešća funkcija aktivacije i njen raspon vrijednosti. Na njemu je prikazana većina primjera na webu, ponekad se naziva i logistička funkcija. Shodno tome, ako u vašem slučaju postoje negativne vrijednosti (na primjer, dionice mogu ići ne samo gore, već i dolje), tada će vam trebati funkcija koja bilježi i negativne vrijednosti.

Hiperbolički tangent


Ima smisla koristiti hiperboličku tangentu samo kada vaše vrijednosti mogu biti i negativne i pozitivne, jer je raspon funkcije [-1,1]. Neprikladno je koristiti ovu funkciju samo s pozitivnim vrijednostima, jer će značajno pogoršati rezultate vaše neuronske mreže.

Set za obuku

Skup za obuku je niz podataka na kojima neuronska mreža radi. U našem slučaju, izuzetan ili (xor) imamo samo 4 različita ishoda, odnosno imaćemo 4 trening skupa: 0xor0 = 0, 0xor1 = 1, 1xor0 = 1.1xor1 = 0.

Iteracija

Ovo je vrsta brojača koji se povećava svaki put kada neuronska mreža prođe kroz jedan trening set. Drugim riječima, ovo je ukupan broj skupova za obuku koje prolazi neuronska mreža.

Epoha

Prilikom inicijalizacije neuronske mreže, ova vrijednost je postavljena na 0 i ima ručno postavljeni plafon. Što je epoha veća, to je mreža bolje obučena i, shodno tome, njen rezultat. Epoha se povećava svaki put kada prođemo kroz cijeli skup skupova obuke, u našem slučaju 4 seta ili 4 iteracije.


Bitan nemojte brkati iteraciju sa epohom i razumjeti redoslijed njihovog povećanja. Prvi n
jednom se povećava iteracija, a zatim epoha a ne obrnuto. Drugim riječima, ne možete prvo trenirati neuronsku mrežu samo na jednom skupu, zatim na drugom, itd. Svaki set morate trenirati jednom po eri. Na ovaj način možete izbjeći greške u proračunima.

Greška

Greška je postotak koji predstavlja neslaganje između očekivanih i primljenih odgovora. Greška se formira svake epohe i trebalo bi da opada. Ako se to ne dogodi, onda radite nešto pogrešno. Greška se može izračunati na različite načine, ali ćemo razmotriti samo tri glavna načina: Srednja kvadratna greška (u daljem tekstu MSE), Root MSE i Arctan. Ne postoji ograničenje upotrebe kao u funkciji aktivacije, a vi ste slobodni da odaberete metodu koja vam daje najbolje rezultate. Treba samo uzeti u obzir da svaka metoda broji greške na različite načine. U Arctan-u će greška, gotovo uvijek, biti veća, jer radi po principu: što je veća razlika, veća je greška. Korijenski MSE će imati najmanju grešku, stoga se najčešće koristi MSE, koji održava ravnotežu u proračunu greške.


Root MSE



Princip izračunavanja greške je isti u svim slučajevima. Za svaki skup brojimo grešku, oduzimajući je od idealnog odgovora. Nadalje, ili ga kvadriramo, ili izračunamo kvadratnu tangentu iz ove razlike, nakon čega rezultujući broj podijelimo s brojem skupova.

Zadatak

Sada, da se testirate, izračunajte rezultat date neuronske mreže koristeći sigmoid i njenu grešku koristeći MSE.

Podaci: I1 = 1, I2 = 0, w1 = 0,45, w2 = 0,78, w3 = -0,12, w4 = 0,13, w5 = 1,5, w6 = -2,3.

Neuralne mreže

Dijagram jednostavne neuronske mreže. Zeleno označeno unos elementi, u žutoj boji - slobodan dan element

Umjetne neuronske mreže(ANN) - matematički modeli, kao i njihove softverske ili hardverske implementacije, izgrađene na principu organizacije i funkcionisanja bioloških neuronskih mreža - mreža nervnih ćelija živog organizma. Ovaj koncept je nastao kada se proučavaju procesi koji se dešavaju u mozgu tokom razmišljanja i kada se pokušavaju modelirati te procese. Prvi takav model mozga bio je perceptron. Kasnije su se ovi modeli počeli koristiti u praktične svrhe, obično u problemima predviđanja.

Neuronske mreže nisu programirane u uobičajenom smislu riječi, one su obučeni... Učenje je jedna od glavnih prednosti neuronskih mreža u odnosu na tradicionalne algoritme. Tehnički, trening se sastoji u pronalaženju koeficijenata veza između neurona. Tokom obuke, neuronska mreža je u stanju da identifikuje složene zavisnosti između ulaznih podataka i izlaza, kao i da izvrši generalizaciju. To znači da će, u slučaju uspješnog treninga, mreža moći vratiti ispravan rezultat na osnovu podataka koji su bili odsutni u setu za obuku.

Hronologija

Poznate aplikacije

Grupiranje

Grupiranje se podrazumijeva kao podjela skupa ulaznih signala na klase, pri čemu ni broj ni karakteristike klasa nisu unaprijed poznati. Nakon obuke, takva mreža može odrediti kojoj klasi pripada ulazni signal. Mreža također može signalizirati da ulazni signal ne pripada nijednoj od odabranih klasa - to je znak novih podataka koji su odsutni u uzorku za obuku. Dakle, slična mreža može identificirati nove, ranije nepoznate klase signala... Korespondenciju između klasa koje dodjeljuje mreža i klasa koje postoje u domeni uspostavlja osoba. Grupiranje se vrši, na primjer, pomoću Kohonenove neuronske mreže.

Eksperimentalni odabir karakteristika mreže

Nakon odabira opće strukture, potrebno je eksperimentalno odabrati parametre mreže. Za mreže kao što je perceptron, to će biti broj slojeva, broj blokova u skrivenim slojevima (za Word mreže), prisustvo ili odsustvo premosnih veza, prijenosne funkcije neurona. Prilikom odabira broja slojeva i neurona u njima treba polaziti od činjenice da sposobnost mreže da generalizuje je veća, što je veći ukupan broj veza između neurona... S druge strane, broj veza je omeđen odozgo brojem zapisa u podacima o obuci.

Eksperimentalni odabir parametara treninga

Nakon odabira određene topologije, potrebno je odabrati parametre za obuku neuronske mreže. Ova faza je posebno važna za mreže za učenje pod nadzorom. Ispravan izbor parametara ne zavisi samo od toga koliko brzo će odgovori mreže konvergirati tačnim odgovorima. Na primjer, odabir niske stope učenja povećat će vrijeme konvergencije, ali ponekad izbjegava paralizu mreže. Povećanje momenta učenja može dovesti do povećanja i smanjenja vremena konvergencije, ovisno o obliku površine greške. Na osnovu ovako kontradiktornog utjecaja parametara, možemo zaključiti da njihove vrijednosti treba birati eksperimentalno, vodeći se kriterijem završetka obuke (na primjer, minimiziranje greške ili ograničavanje vremena treninga).

Stvarna obuka mreže

Tokom treninga, mreža skenira uzorak za obuku određenim redoslijedom. Redoslijed skeniranja može biti sekvencijalan, nasumičan, itd. Neke mreže bez nadzora, na primjer, Hopfield mreže, skeniraju uzorak samo jednom. Druge, kao što su Kohonenove mreže i nadzirane mreže, skeniraju uzorak više puta, jednim punim prolazom kroz uzorak tzv. era učenja... Prilikom podučavanja sa nastavnikom, skup početnih podataka se dijeli na dva dijela – sam uzorak obuke i podaci testa; princip razdvajanja može biti proizvoljan. Podaci o obuci se šalju mreži za obuku, a podaci o validaciji se koriste za izračunavanje mrežne greške (podaci validacije se nikada ne koriste za obuku mreže). Dakle, ako se greška na testnim podacima smanji, tada se mreža generalizira. Ako greška na podacima o treningu nastavi da se smanjuje, a greška na podacima testa raste, tada je mreža prestala da generalizuje i jednostavno "pamti" podatke o obuci. Ova pojava se naziva preopterećenje mreže ili preopterećenje. U takvim slučajevima se obuka obično prekida. Tokom procesa učenja mogu se pojaviti i drugi problemi, kao što je paraliza ili mreža koja pogađa lokalni minimum površine greške. Nemoguće je unaprijed predvidjeti manifestaciju određenog problema, kao i dati nedvosmislene preporuke za njihovo rješavanje.

Provjera adekvatnosti obuke

Čak i u slučaju uspješnog, na prvi pogled, učenja, mreža ne nauči uvijek ono što je kreator od nje želio. Poznat je slučaj kada je mreža bila obučena da prepoznaje slike tenkova sa fotografija, ali se kasnije ispostavilo da su svi tenkovi fotografisani na istoj pozadini. Kao rezultat toga, mreža je "naučila" da prepozna ovu vrstu terena, umjesto da "nauči" da prepozna tenkove. Dakle, mreža „razumije“ ne ono što se od nje traži, već ono što je najlakše generalizirati.

Klasifikacija prema vrsti ulaznih informacija

  • Analogne neuronske mreže (koristiti informacije u obliku realnih brojeva);
  • Binarne neuronske mreže (funkcionišu sa informacijama predstavljenim u binarnom obliku).

Klasifikacija prema prirodi učenja

  • Nadzirano učenje – poznat je izlazni prostor rješenja neuronske mreže;
  • Učenje bez nadzora – neuronska mreža formira izlazni prostor rješenja samo na osnovu inputa. Takve mreže se nazivaju samoorganizirajućim;
  • Reinforcement Learning je sistem za dodeljivanje kazni i nagrada iz okruženja.

Klasifikacija prema prirodi podešavanja sinapse

Klasifikacija vremena prijenosa signala

U brojnim neuronskim mrežama, funkcija aktiviranja može ovisiti ne samo o težinskim koeficijentima veza. w ij, ali i na vrijeme prijenosa impulsa (signala) kroz komunikacione kanale τ ij... Dakle, općenito, aktivirajuća (prenosna) komunikacijska funkcija c ij od elementa u i do elementa u j izgleda kao:. Onda sinhrone mreže ij svaka veza je jednaka ili nuli ili fiksnoj konstanti τ. Asinhroni je mreža za koju je vrijeme prijenosa τ ij za svaku vezu između elemenata u i i u j svoj, ali i konstantan.

Klasifikacija prema prirodi veza

Mreže za prosljeđivanje

Sve veze su strogo usmjerene od ulaznih neurona do izlaznih neurona. Primjeri takvih mreža su Rosenblattov perceptron, višeslojni perceptron, Word mreže.

Rekurentne neuronske mreže

Signal sa izlaznih neurona ili neurona skrivenog sloja djelimično se prenosi natrag na ulaze neurona ulaznog sloja (povratna informacija). Rekurentna mreža Hopfieldova mreža "filtrira" ulazne podatke, vraćajući se u stabilno stanje i na taj način omogućava rješavanje problema kompresije podataka i izgradnje asocijativne memorije. Dvosmjerne mreže su poseban slučaj rekurentnih mreža. U takvim mrežama postoje veze između slojeva kako u smjeru od ulaznog sloja prema izlaznom sloju, tako iu suprotnom smjeru. Klasičan primjer je Koskoova neuronska mreža.

Radijalne bazne funkcije

Umjetne neuronske mreže koje koriste mreže radijalne baze kao aktivacijske funkcije (takve mreže su skraćeno RBF mreže). Opšti pogled na funkciju radijalne baze:

, Na primjer,

gdje x je vektor ulaznih signala neurona, σ je širina prozora funkcije, φ ( y) je opadajuća funkcija (najčešće jednaka nuli izvan određenog segmenta).

Mrežu radijalne osnovne linije karakteriziraju tri karakteristike:

1. Jedini skriveni sloj

2. Samo neuroni skrivenog sloja imaju nelinearnu aktivacijsku funkciju

3. Sinaptičke težine veza ulaznog i skrivenog sloja jednake su jedan

O proceduri obuke - pogledajte literaturu

Samoorganizirajuće karte

Takve mreže predstavljaju konkurentnu neuronsku mrežu sa učenjem bez nadzora, obavljajući zadatak vizualizacije i grupiranja. To je metoda projektovanja višedimenzionalnog prostora u prostor niže dimenzije (najčešće dvodimenzionalne), koristi se i za rješavanje problema modeliranja, predviđanja itd. Jedna je od verzija Kohonenovih neuronskih mreža. Samoorganizirajuće Kohonenove karte se prvenstveno koriste za vizualizaciju i početnu („istraživačku“) analizu podataka.

Signal Kohonenovoj mreži ide do svih neurona odjednom, težine odgovarajućih sinapsi se tumače kao koordinate položaja čvora, a izlazni signal se formira po principu "pobjednik uzima sve" - ​​tj. neuron najbliži (u smislu težina sinapse) ulaznom signalu ima objekat izlaznog signala različit od nule. U procesu treninga težine sinapse se podešavaju na način da se čvorovi rešetke „lociraju“ na mjestima lokalnih kondenzacija podataka, odnosno opisuju klastersku strukturu oblaka podataka, s druge strane, veze između neurona odgovaraju odnosima susjedstva između odgovarajućih klastera u prostoru karakteristika.

Pogodno je takve karte smatrati dvodimenzionalnim mrežama čvorova koji se nalaze u višedimenzionalnom prostoru. U početku, samoorganizirajuća mapa je mreža čvorova, povezanih vezama. Kohonen je razmatrao dvije opcije za povezivanje čvorova - u pravokutnoj i heksagonalnoj mreži - razlika je u tome što je u pravokutnoj mreži svaki čvor povezan sa 4 susjedna čvora, a u heksagonalnoj mreži - sa 6 najbližih čvorova. Za dvije takve mreže, proces izgradnje Kohonenove mreže razlikuje se samo po mjestu gdje se pomiču susjedi najbliži datom čvoru.

Početno ugniježđenje mreže u prostor podataka je proizvoljno. Autorski paket SOM_PAK nudi opcije za slučajni početni raspored čvorova u prostoru i opciju rasporeda čvorova u ravni. Nakon toga, čvorovi se počinju kretati u prostoru prema sljedećem algoritmu:

  1. Tačka podataka je nasumično odabrana x .
  2. Najbliže do xčvor kartice (BMU - najbolja jedinica za usklađivanje).
  3. Ovaj čvor se pomjera za određeni korak prema x. Međutim, ne kreće se sam, već nosi određeni broj najbližih čvorova iz određenog susjedstva na karti. Od svih pokretnih čvorova, centralni čvor - onaj najbliži tački podataka - je najjače pomjeren, a ostali doživljavaju manje pomake, što su dalje od BMU. Postoje dvije faze u podešavanju mape - faza naručivanja i faza finog podešavanja. U prvoj fazi odabiru se velike vrijednosti susjedstva i kretanje čvorova je kolektivne prirode - kao rezultat toga, karta se "ispravlja" i otprilike odražava strukturu podataka; u fazi finog podešavanja, radijus susjedstva je 1-2 i pojedinačne pozicije čvorova se podešavaju. Osim toga, vrijednost pomaka opada ravnomjerno tokom vremena, odnosno velika je na početku svake od faza treninga i blizu nule na kraju.
  4. Algoritam ponavlja određeni broj epoha (jasno je da broj koraka može jako varirati ovisno o zadatku).

Poznati tipovi mreža

  • Hamming mreža;
  • Neocognitron;
  • Haotična neuronska mreža;
  • Counter Spread Network;
  • Mreža radijalnih baznih funkcija (RBF-mreža);
  • Mreža generalizirane regresije;
  • Vjerovatna mreža;
  • sijamska neuronska mreža;
  • Adaptivne rezonantne mreže.

Razlike od mašina sa von Neumannovom arhitekturom

Dug period evolucije dao je ljudskom mozgu mnoge kvalitete koji nedostaju u mašinama sa von Neumannovom arhitekturom:

  • Masovna paralelnost;
  • Distribuirana prezentacija informacija i proračuna;
  • Sposobnost učenja i generalizacije;
  • prilagodljivost;
  • Svojstvo kontekstualne obrade informacija;
  • Tolerancija na greške;
  • Mala potrošnja energije.

Neuronske mreže - univerzalni aproksimatori

Neuronske mreže su univerzalni uređaji za aproksimaciju i mogu simulirati bilo koji kontinuirani automat sa bilo kojom preciznošću. Dokazana je generalizirana teorema aproksimacije: korištenjem linearnih operacija i kaskadne veze, moguće je dobiti uređaj iz proizvoljnog nelinearnog elementa koji izračunava bilo koju kontinuiranu funkciju sa bilo kojom unaprijed određenom točnošću. To znači da nelinearna karakteristika neurona može biti proizvoljna: od sigmoidnog do proizvoljnog valnog paketa ili talasa, sinusa ili polinoma. Složenost određene mreže može ovisiti o izboru nelinearne funkcije, ali sa bilo kojom nelinearnošću, mreža ostaje univerzalni aproksimator i, uz ispravan izbor strukture, može aproksimirati funkcioniranje bilo kojeg kontinuiranog automata koliko god se to želi.

Primjeri primjene

Predviđanje finansijskih vremenskih serija

Ulazni podaci - cijena dionica za godinu. Zadatak je odrediti sutrašnji kurs. Izvodi se sljedeća transformacija - postrojava se kurs za danas, jučer, za prekjučer, za prekjučer. Sljedeći red se pomjera po datumu za jedan dan i tako dalje. Na rezultirajućem skupu se obučava mreža sa 3 ulaza i jednim izlazom - odnosno izlaz: stopa za datum, ulazi: stopa za datum minus 1 dan, minus 2 dana, minus 3 dana. Za obučenu mrežu predajemo kurs za danas, jučer, prekjučer i dobijamo odgovor za sutra. Lako je vidjeti da će u ovom slučaju mreža jednostavno prikazati ovisnost jednog parametra od tri prethodna. Ako je poželjno uzeti u obzir neki drugi parametar (na primjer, opći indeks za industriju), onda se on mora dodati kao ulaz (i uključiti u primjere), mreža mora biti preobučena i dobijeni novi rezultati. Za najprecizniji trening vrijedi koristiti ORO metodu, jer je najpredvidljivija i jednostavnija za implementaciju.

Psihodijagnostika

Serija radova M. G. Dorrera i drugih posvećena je proučavanju pitanja mogućnosti razvoja psihološke intuicije u ekspertnim sistemima neuronskih mreža. Dobijeni rezultati daju pristup otkrivanju mehanizma intuicije neuronskih mreža, koji se manifestuje kada rješavaju psihodijagnostičke zadatke. Kreiran nestandardan za kompjutersku tehniku intuitivno pristup psihodijagnostici, koji se sastoji u isključivanju konstrukcije opisanu stvarnost... Omogućava vam da skratite i pojednostavite rad na psihodijagnostičkim tehnikama.

Hemoinformatika

Neuronske mreže se široko koriste u hemijskim i biohemijskim istraživanjima. Trenutno su neuronske mreže jedna od najrasprostranjenijih metoda hemoinformatike za pronalaženje kvantitativnih odnosa strukture i svojstava, zbog čega se aktivno koriste i za predviđanje fizičko-hemijskih svojstava i biološke aktivnosti hemikalija. spojeva, te za usmjereni dizajn hemijskih jedinjenja i materijala sa unaprijed određenim svojstvima, uključujući i razvoj novih lijekova.

Bilješke (uredi)

  1. McCulloch W.S., Pitts W., Logički proračun ideja vezanih za nervnu aktivnost // U kolekciji: "Automata" izd. C.E. Shannon i J. McCarthy. - M.: Izdavačka kuća stranih. lit., 1956.-- str 363-384. (Prijevod engleskog članka iz 1943.)
  2. Prepoznavanje uzoraka i prilagodljiva kontrola. BERNARD WIDROW
  3. Widrow B., Stearns S., Adaptivna obrada signala. - M.: Radio i komunikacija, 1989.-- 440 str.
  4. Werbos P. J., Izvan regresije: Novi alati za predviđanje i analizu u bihevioralnim naukama. dr.sc. teza, Univerzitet Harvard, Cambridge, MA, 1974.
  5. Galushkin A.I. Sinteza višeslojnih sistema za prepoznavanje obrazaca. - M.: "Energija", 1974.
  6. Rumelhart D.E., Hinton G.E., Williams R.J., Učenje internih reprezentacija širenjem greške. U: Paralelna distribuirana obrada, vol. 1, str. 318-362. Cambridge, MA, MIT Press. 1986.
  7. Bartsev S.I., Okhonin V.A. Adaptivne mreže za obradu informacija. Krasnojarsk: Institut za fiziku, Sibirski ogranak Akademije nauka SSSR, 1986. Preprint N 59B. - 20 str.
  8. Laboratorije BaseGroup - Praktična primjena neuronskih mreža u problemima klasifikacije
  9. Ovaj tip kodiranja se ponekad naziva "1 od N" koda.
  10. Otvoreni sistemi - uvod u neuronske mreže
  11. Mirkes E. M., Logički transparentne neuronske mreže i proizvodnja eksplicitnog znanja iz podataka, U knjizi: Neuroinformatika / A. N. Gorban, V. L. Dunin-Barkovsky, A. N. Kirdin i drugi - Novosibirsk: Nauka. Sibirsko preduzeće RAS, 1998.-- 296 sa ISBN 5020314102
  12. Pominjanje ove priče u časopisu Popular Mechanics
  13. http://www.intuit.ru/department/expert/neuro/10/ INTUIT.ru - Ponavljajuće mreže kao asocijativni uređaji za skladištenje]
  14. Kohonen, T. (1989/1997/2001), Samoorganizirajuće karte, Berlin - New York: Springer-Verlag. Prvo izdanje 1989, drugo izdanje 1997, treće prošireno izdanje 2001, ISBN 0-387-51387-6, ISBN 3-540-67921-9
  15. A. Yu. Zinovjev Vizualizacija višedimenzionalnih podataka. - Krasnojarsk: Ed. Krasnojarsk State Technical University, 2000.-- 180 str.
  16. Gorban A. N., Teorema generalizovane aproksimacije i računarske mogućnosti neuronskih mreža, Sibirski časopis za računarsku matematiku, 1998. Tom 1, br. 1. P. 12-24.
  17. Gorban A.N., Rossiyev D.A., Dorrer M.G., MultiNeuron - Simulator neuronskih mreža za medicinske, fiziološke i psihološke aplikacije, Wcnn'95, Washington, DC: Svjetski kongres o neuronskim mrežama 1995. Godišnji sastanak Međunarodnog društva za neuronske mreže: Renaissance Hotel, Washington, DC, SAD, 17-21. 1995.
  18. Dorrer M.G., Psihološka intuicija umjetnih neuronskih mreža, Diss. ... 1998. Ostali primjerci online:,
  19. Baskin I.I., Palyulin V.A., Zefirov N.S., Primena veštačkih neuronskih mreža u hemijskim i biohemijskim istraživanjima, Vestn. Moskva Un-Ta. Ser. 2. Hemija. 1999. Tom 40. br. 5.
  20. Galberstam N.M., Baskin I.I., Palyulin V.A., Zefirov N.S. Neuronske mreže kao metoda za pronalaženje strukture zavisnosti - svojstva organskih jedinjenja // Napredak u hemiji... - 2003. - T. 72. - Br. 7. - S. 706-727.
  21. Baskin I.I., Palyulin V.A., Zefirov N.S. Višeslojni perceptroni u proučavanju odnosa strukture i svojstava za organska jedinjenja // Ruski hemijski časopis (časopis Ruskog hemijskog društva po D. I. Mendeljejevu)... - 2006. - T. 50. - S. 86-96.

Linkovi

  • Veštačka neuronska mreža za PHP 5.x - Ozbiljan projekat razvoja neuronskih mreža u PHP 5.X programskom jeziku
  • Forum o neuronskim mrežama i genetskim algoritmima
  • Mirkes E. M., Neuroinformatika: Udžbenik. priručnik za studente sa programima za laboratorijske radove.
  • Korak po korak primjeri implementacije najpoznatijih tipova neuronskih mreža u MATLAB-u, Neural Network Toolbox
  • Izbor materijala o neuronskim mrežama i prediktivnoj analizi
  • suparnička primjena neuronskih mreža u predviđanju cijena dionica
Shodno tome, neuronska mreža uzima dva broja kao ulaz i mora dati drugi broj na izlazu - odgovor. Sada o samim neuronskim mrežama.

Šta je neuronska mreža?


Neuronska mreža je niz neurona povezanih sinapsama. Struktura neuronske mreže došla je u svijet programiranja direktno iz biologije. Zahvaljujući ovoj strukturi, mašina stječe sposobnost analiziranja, pa čak i pamćenja različitih informacija. Neuronske mreže su također u stanju ne samo da analiziraju dolazne informacije, već i da ih reprodukuju iz svoje memorije. Za one koji su zainteresovani, obavezno pogledajte 2 videa sa TED Talks-a: Video 1 , Video 2). Drugim riječima, neuronska mreža je strojna interpretacija ljudskog mozga, koja sadrži milijune neurona koji prenose informacije u obliku električnih impulsa.

Šta su neuronske mreže?

Za sada ćemo razmotriti primjere najosnovnijeg tipa neuronskih mreža - ovo je feedforward mreža (u daljem tekstu FNS). Također u narednim člancima predstavit ću više koncepata i reći vam o rekurentnim neuronskim mrežama. DSS je, kao što naziv govori, mreža sa serijskom vezom neuronskih slojeva, u kojoj informacije uvijek idu samo u jednom smjeru.

Čemu služe neuronske mreže?

Neuronske mreže se koriste za rješavanje složenih problema koji zahtijevaju analitičke proračune slične onima u ljudskom mozgu. Najčešće upotrebe neuronskih mreža su:

Klasifikacija- distribucija podataka po parametrima. Na primjer, na ulazu se daje skup ljudi i potrebno je odlučiti kome od njih dati kredit, a kome ne. Ovaj posao može obaviti neuronska mreža koja analizira informacije kao što su starost, solventnost, kreditna istorija, itd.

Predviđanje- sposobnost predviđanja sljedećeg koraka. Na primjer, porast ili pad dionice na osnovu situacije na berzi.

Priznanje- trenutno najraširenija upotreba neuronskih mreža. Koristi se na Google-u kada tražite fotografiju ili u kamerama telefona kada detektuje položaj vašeg lica i ističe ga i još mnogo toga.

Sada, da bismo razumjeli kako funkcioniraju neuronske mreže, pogledajmo njihove komponente i njihove parametre.

Šta je neuron?


Neuron je računska jedinica koja prima informacije, vrši jednostavne proračune na njima i dalje ih prenosi. Podijeljeni su u tri glavna tipa: ulazni (plavi), skriveni (crveni) i izlazni (zeleni). Tu su i neuron pristranosti i neuron konteksta, o kojima ćemo govoriti u sljedećem članku. U slučaju kada se neuronska mreža sastoji od velikog broja neurona, uvodi se pojam sloj. Prema tome, postoji ulazni sloj koji prima informacije, n skrivenih slojeva (obično ne više od 3) koji ih obrađuju i izlazni sloj koji daje rezultat. Svaki od neurona ima 2 glavna parametra: ulazne podatke i izlazne podatke. U slučaju ulaznog neurona: ulaz = izlaz. U ostalom, ukupne informacije svih neurona iz prethodnog sloja ulaze u ulazno polje, nakon čega se normaliziraju pomoću aktivacijske funkcije (za sada samo predstavite f(x)) i ulaze u izlazno polje.


Važno je zapamtiti da neuroni rade sa brojevima u rasponu ili [-1,1]. Ali šta, pitate se, onda upravljati brojevima koji izlaze iz ovog raspona? U ovoj fazi, najjednostavniji odgovor je podijeliti 1 tim brojem. Ovaj proces se naziva normalizacija i vrlo se često koristi u neuronskim mrežama. Više o ovome kasnije.

Šta je sinapsa?


Sinapsa je veza između dva neurona. Sinapse imaju 1 parametar - težinu. Zahvaljujući njemu, ulazna informacija se mijenja kada se prenosi s jednog neurona na drugi. Recimo da postoje 3 neurona koji prenose informacije sljedećem. Tada imamo 3 težine koje odgovaraju svakom od ovih neurona. Za neuron veće težine, ta informacija će biti dominantna u sljedećem neuronu (na primjer, miješanje boja). U stvari, skup pondera neuronske mreže ili matrica težina je neka vrsta mozga čitavog sistema. Zahvaljujući ovim težinama ulazne informacije se obrađuju i pretvaraju u rezultat.

Važno je zapamtiti da se tokom inicijalizacije neuronske mreže, težine dodeljuju nasumično.

Kako funkcionira neuronska mreža?


U ovom primjeru prikazan je dio neuronske mreže, gdje slova I označavaju ulazne neurone, slovo H označava skriveni neuron, a slovo w označava težine. Iz formule se može vidjeti da je ulazna informacija zbir svih ulaznih podataka pomnožen odgovarajućim težinama. Zatim dajemo ulaz 1 i 0. Neka je w1 = 0,4 i w2 = 0,7 Ulazni podaci neurona H1 će biti sljedeći: 1 * 0,4 + 0 * 0,7 = 0,4. Sada kada imamo ulaz, možemo dobiti izlaz uključivanjem ulaza u funkciju aktivacije (više o tome kasnije). Sada kada imamo izlaz, prenosimo ga dalje. I tako, ponavljamo za sve slojeve dok ne dođemo do izlaznog neurona. Pokrenuvši takvu mrežu po prvi put, videćemo da je odgovor daleko od tačnog, jer mreža nije obučena. Mi ćemo je obučiti da poboljša svoje rezultate. Ali prije nego što naučimo kako to učiniti, hajde da predstavimo nekoliko pojmova i svojstava neuronske mreže.

Funkcija aktivacije

Aktivacijska funkcija je način za normalizaciju ulaznih podataka (o tome smo ranije govorili). Odnosno, ako imate veliki broj na ulazu, nakon što ste ga prošli kroz funkciju aktivacije, dobit ćete izlaz u rasponu koji vam je potreban. Postoji mnogo aktivacijskih funkcija, pa ćemo razmotriti one najosnovnije: Linearnu, Sigmoidnu (Logističku) i Hiperboličku tangentu. Njihova glavna razlika je raspon vrijednosti.

Linearna funkcija


Ova funkcija se gotovo nikada ne koristi, osim kada trebate testirati neuronsku mrežu ili prenijeti vrijednost bez transformacija.

Sigmoid


Ovo je najčešća funkcija aktivacije i njen raspon vrijednosti. Na njemu je prikazana većina primjera na webu, ponekad se naziva i logistička funkcija. Shodno tome, ako u vašem slučaju postoje negativne vrijednosti (na primjer, dionice mogu ići ne samo gore, već i dolje), tada će vam trebati funkcija koja bilježi i negativne vrijednosti.

Hiperbolički tangent


Ima smisla koristiti hiperboličku tangentu samo kada vaše vrijednosti mogu biti i negativne i pozitivne, jer je raspon funkcije [-1,1]. Neprikladno je koristiti ovu funkciju samo s pozitivnim vrijednostima, jer će značajno pogoršati rezultate vaše neuronske mreže.

Set za obuku

Skup za obuku je niz podataka na kojima neuronska mreža radi. U našem slučaju, isključivi ili (xor) imamo samo 4 različita ishoda, odnosno imat ćemo 4 trening skupa: 0xor0 = 0, 0xor1 = 1, 1xor0 = 1.1xor1 = 0.

Iteracija

Ovo je vrsta brojača koji se povećava svaki put kada neuronska mreža prođe kroz jedan trening set. Drugim riječima, ovo je ukupan broj skupova za obuku koje prolazi neuronska mreža.

Epoha

Prilikom inicijalizacije neuronske mreže, ova vrijednost je postavljena na 0 i ima ručno postavljeni plafon. Što je epoha veća, to je mreža bolje obučena i, shodno tome, njen rezultat. Epoha se povećava svaki put kada prođemo kroz cijeli skup skupova obuke, u našem slučaju 4 seta ili 4 iteracije.


Bitan nemojte brkati iteraciju sa epohom i razumjeti redoslijed njihovog povećanja. Prvi n
jednom se povećava iteracija, a zatim epoha a ne obrnuto. Drugim riječima, ne možete prvo trenirati neuronsku mrežu samo na jednom skupu, zatim na drugom, itd. Svaki set morate trenirati jednom po eri. Na ovaj način možete izbjeći greške u proračunima.

Greška

Greška je postotak koji predstavlja neslaganje između očekivanih i primljenih odgovora. Greška se formira svake epohe i trebalo bi da opada. Ako se to ne dogodi, onda radite nešto pogrešno. Greška se može izračunati na različite načine, ali ćemo razmotriti samo tri glavna načina: Srednja kvadratna greška (u daljem tekstu MSE), Root MSE i Arctan. Ne postoji ograničenje upotrebe kao u funkciji aktivacije, a vi ste slobodni da odaberete metodu koja vam daje najbolje rezultate. Treba samo uzeti u obzir da svaka metoda broji greške na različite načine. U Arctan-u će greška, gotovo uvijek, biti veća, jer radi po principu: što je veća razlika, veća je greška. Korijenski MSE će imati najmanju grešku, stoga se najčešće koristi MSE, koji održava ravnotežu u proračunu greške.

Top srodni članci