- View
Ako sme videli, každý neurón neurónovej siete je nejakým spôsobom prepojený s inými neurónmi v sieti. Tieto spojenia sú popísané váhami w, ktoré vlastne predstavujú parametre neurónovej siete, ktoré je potrebné sa naučiť počas tréningu. Počet parametrov v neurónovej sieti je vo všeobecnosti veľký. Povedzme, že pre plne prepojenú neurónovú sieť, ktorá má 5 neurónov vo vstupnej vrstve, jednu skrytú vrstvu s 10 neurónmi a výstupnú vrstvu s 3 neurónmi, je počet parametrov, ktoré sa treba naučiť, 93. V praxi majú neurónové siete tisíce a milióny parametrov, dokonca miliardy! Preto je na ich trénovanie potrebné veľké množstvo údajov.
Neurónové siete, podobne ako iné modely, sa trénujú na trénovacom súbore a vyhodnocujú sa na testovacom súbore. Keďže neurónové siete sú zložité modely, ktoré sa dokážu naučiť zložité vzťahy medzi atribútmi a výstupmi, dajú sa ľahko prispôsobiť údajom. Preto pri školení siete vždy používame validačnú sadu. Pomáha nám jemnejšie sledovať priebeh tréningu a skôr si všimnúť nadmerné úpravy a iné nežiaduce vlastnosti modelu.
V úvode kurzu sme povedali, že neznáme parametre modelu sa určujú definovaním chybovej funkcie a následným použitím niektorých optimalizačných techník (ktoré zahŕňajú gradientný zostup) s cieľom nájsť tie hodnoty parametrov, pre ktoré je chybová funkcia najmenšia. Tento protokol nadväzuje na príbeh neurónových sietí, ale chybové hodnoty sa nepočítajú pre jednotlivé inštancie, ale pre skupiny inštancií. Motiváciou pre tento návrh je v prvom rade práca s veľkým množstvom dát a potreba paralelizácie a zrýchlenia celého procesu. Preto sa všetky údaje v trénovacom súbore najskôr rozdelia na pakety (batch) rovnakej veľkosti. Pakety sa potom jeden po druhom prechádzajú sieťou a hodnota chybovej funkcie sa pre ne vypočíta porovnaním očakávaných a získaných hodnôt cieľovej premennej. Potom, úmerne k ich príspevkom, sa chybové hodnoty neurónovej siete aktualizujú spätným chodom cez sieť. Popísaný proces aktualizácie sieťových parametrov sa nazýva spätné šírenie (backpropagation ) a umožňuje nám spresniť hodnoty parametrov v iteráciách a dosiahnuť optimálne hodnoty parametrov. V opačnom prípade začneme od začiatku.

Jeden prechod cez celý súbor údajov, t. j. jedno spracovanie všetkých paketov trénovacieho súboru, sa nazýva epocha (epoch). Neurónové siete sú trénované v niekoľkých epochách. Po dokončení jednej epochy sa údaje "zamiešajú", potom sa opäť rozdelia na pakety a prejdú cez sieť. V ktorej epoche bude model trénovaný, závisí od úspešnosti tréningu a dostupných zdrojov. Vzhľadom na prácu s veľkým množstvom údajov potrebujú siete špecializovaný hardvér, ktorý dokáže paralelizovať výpočty (napríklad grafické karty alebo tenzorové karty), takže tréningové siete sú často drahé a časovo náročné.
Tento spôsob trénovania siete v priebehu epochy nám umožňuje jemnejšie sledovať priebeh tréningu. Na konci každej epochy sa vypočíta chyba modelu v trénovacom súbore a chyba modelu v overovacej množine. Tieto dve hodnoty sa potom zobrazia v grafe, ktorý zobrazuje poradové číslo epochy pozdĺž osi x a chybovú hodnotu pozdĺž osi y. Jednu takúto grafiku môžete vidieť na obrázku nižšie. Dobrý tréning sa vyznačuje komparatívnym poklesom týchto hodnôt na uspokojivú chybovú hodnotu - čím bližšie sme k nule, tým lepší je model. Pripomeňme, že tento záver je založený na skutočnosti, že overovací súbor obsahuje údaje, ktoré sú oddelené od trénovacieho súboru a ktoré sieť vidí prvýkrát.

Ak si všimneme, že hodnoty chybovej funkcie na trénovacom súbore klesajú a na validačnom súbore sa zvyšujú, dospejeme k záveru, že model sa preposúva a prestávame trénovať. Ďalej máme dve možnosti. Ak boli hodnoty funkcie chyby modelu v epoche pred pozorovaným presadením modelu uspokojivé, môžeme si túto verziu modelu ponechať na ďalšie testovanie na testovacej množine (zvyčajne sa počas trénovania siete uloží niekoľko verzií modelu s myšlienkou použiť ich na tento účel, alebo na použitie, ak je potrebné zastaviť a pokračovať v tréningovom procese). V opačnom prípade musíme vyskúšať trochu inú sieťovú architektúru alebo trochu inú sadu jej hyperparametrov. Vzhľadom na to, že každá vrstva siete má svoje vlastné nastavenia (počet neurónov, aktivačná funkcia, počiatočná sada parametrov), že vrstvy je možné spájať rôznymi spôsobmi, že musíme súčasne sledovať všetky nastavenia optimalizačného algoritmu, napríklad gradientný zostup a jeho krok učenia, a že je potrebné splniť určité očakávania z hľadiska opatrení kvality, Školenie siete je náročná a zložitá úloha. Preto sa hovorí, že predstavuje umenie koučovania .

Monitorovanie readaptácie neurónovej siete na základe grafov hodnôt chybových funkcií na trénovacom súbore a validačnom súbore