Kao što smo videli, svaki neuron neuronske mreže je na neki način povezan sa drugim neuronima u mreži. Te veze su opisane težinama w koje zapravo predstavljaju parametre neuronske mreže koje je potrebno naučiti u toku treniranja. Broj parametara u neuronskoj mreži je uglavnom veliki. Recimo , za potpuno povezanu neuronsku mrežu koja ima 5 neurona u ulaznom sloju, jedan skriveni sloj sa 10 neurona i izlazni sloj sa 3 neurona, broj parametara koje treba naučiti je 93. U praksi, neuronske mreže imaju hiljade i milione parametara, čak i milijarde! Zato je potrebna velika količina podataka za njihovo obučavanje.

Success!Ulazni sloj ne sadrži nepoznate parametre - on samo propušta podatke u mrežu. Svaki neuron skrivenog sloja je povezan sa svakim neuronom ulaznog sloja, što znači da svaka od tih veza ima po 5 parametara i jedan slobodan član. To je ukupno 10x5 + 10x1 = 60 parametara. Svaki neuron izlaznog sloja je povezan sa svakim neuronom skrivenog sloja što znači da svaka od tih veza ima po 10 parametara i jedan slobodni član. To je ukupno 3x10 + 3x1 = 33 parametra. Kada saberemo obe vrednosti, to je 93 parametra.

Neuronske mreže se poput drugih modela obučavaju na skupu za treniranje i ocenjuju na skupu za testiranje. Pošto neuronske mreže predstavljaju kompleksne modele koji mogu da nauče složene zavisnosti između atributa i izlaza, one se lako mogu preprilagoditi podacima. Zato u toku obučavanja mreža uvek koristimo i validacioni skup. On nam pomaže da finije ispratimo tok treniranja i ranije primetimo preprilagođavanje i druga nepoželjna svojstva modela.

 U uvodu kursa smo rekli da se nepoznati parametri modela određuju tako što se definiše funkcija greške, a zatim primeni neka tehnika optimizacije (u koje spada i gradijentni spust) sa ciljem da se pronađu one vrednosti parametra za koje je funkcija greške najmanja. Ovaj protokol prati i priču o neuronskim mrežama s tim što se vrednosti greške ne izračunavaju za pojedinačne instance već za grupe instanci. Motivacija za ovakav dizajn je, pre svega, rad sa velikom količinom podataka i potreba da se ceo proces paralelizuje i ubrza. Zato se prvo svi podaci u skupu za treniranje podele u paketiće (eng. batch) jednakih veličina. Paketići se dalje, jedan po jedan, propuštaju kroz mrežu i za njih se izračunava vrednost funkcije greške tako što se uporede očekivane i dobijene vrednosti ciljne promenljive. Zatim se srazmerno svojim doprinosima vrednosti greške parametri neuronske mreže ažuriraju prolaskom kroz mrežu unazad. Opisani postupak ažuriranja parametara mreže se naziva propagacija unazad (eng. backpropagation) i omogućava nam da u iteracijama profinimo vrednosti parametara i stignemo do optimalnih vrednosti parametara. Njih , inače, u startu nasumično inicijalizujemo.

Jedan prolazak kroz ceo skup podataka, tj. jedna obrada svih paketića skupa za treniranje, naziva se epoha. Neuronske mreže se treniraju u više epoha. Nakon što se završi jedna epoha, podaci se ”promešaju”, potom ponovo podele u paketiće i propuste kroz mrežu. U koliko će se epoha trenirati model zavisi od uspešnosti treniranja i raspoloživih resursa. Zbog rada sa velikom količinom podataka, mrežama je potreban specijalizovan hardver koji može da paralelizuje izračunavanja (na primer, grafičke kartice ili tenzorske kartice) pa je samo treniranje mreža često i skupo i dugotrajno.

Ovakav način treniranja mreže kroz epohe nam omogućava da finije pratimo tok treniranja. Na kraju svake epohe se po pravilu izračuna greška modela na skupu za treniranje i greška modela na skupu za validaciju. Zatim se ove dve vrednosti prikažu na grafiku koji duž x-ose prikazuje redni broj epohe, a duž y-ose vrednost greške. Jedan takav grafik možeš da vidiš na donjoj slici. Dobro treniranje karakteriše uporedni pad ovih vrednosti do zadovoljavajuće vrednosti greške - što smo bliži nuli, to je model bolji. Podsetimo se da je ovaj zaključak utemeljen na tome što se u validacionom skupu nalaze podaci koji su razdvojeni od skupa za treniranje i koje mreža vidi prvi put.

Ukoliko primetimo da se vrednosti funkcije greške na skupu za treniranje smanjuju a na validacionom skupu rastu, zaključujemo da se model preprilagođava i zaustavljamo obučavanje. Dalje imamo dve opcije. Ako su vrednosti funkcije greške modela u epohi pre primećenog preprilagođavanja modela bile zadovoljavajuće, možemo da zadržimo tu verziju modela za dalje testiranje na skupu za testiranje (obično se u toku treniranja mreže sačuva nekoliko verzija modela sa idejom da se iskoriste za ovakve svrhe ili da se iskoriste ukoliko treba zaustaviti pa nastaviti proces obučavanja). U suprotnom, moramo da oprobamo nešto drugačiju arhitekturu mreže ili nešto drugačiji skup njenih hiperparametara. S obzirom na to da svaki sloj mreže ima svoja podešavanja (broj neurona, aktivacionu funkciju, inicijalni skup parametara), da slojeve možemo povezati na različite načine, da uporedo moramo pratiti sva podešavanja optimizacionog algoritma, recimo gradijentnog spusta i njegovog koraka učenja, i da treba zadovoljiti i neka očekivanja u pogledu mera kvaliteta, treniranje mreže je izazovan i kompleksan zadatak. Zato se za njega kaže da predstavlja umetnost treniranja.

Praćenje preprilagođavanja neuronske mreže na osnovu grafika vrednosti funkcije greške na skupu za treniranje i skupu za validaciju

Last modified: Friday, 23 January 2026, 10:57 AM