Videli sme, že v algoritme x-najbližšieho suseda je potrebné vopred zafixovať hodnotu čísla k a že rôzne voľby vedú k rôznym záverom. Ako vieme, ktorú hodnotu zvoliť? Táto otázka sa riadi všetkými ostatnými algoritmami strojového učenia, v ktorých sa objavujú niektoré hodnoty, ktoré musíme vopred definovať. Takéto hodnoty sa nazývajú hyperparametre alebo metaparametre .

Spomenuli sme, že pri delení datasetu vždy vyberieme tréningový súbor, testovací súbor a validačný súbor. Validačnú množinu sme doteraz nepoužili. V skutočnosti ho potrebujeme vždy, keď sú v našom algoritme učenia nejaké hyperparametre, ktorých najlepšiu hodnotu musíme určiť. Príbeh, o ktorý sa podelíme, sa vzťahuje na všetky algoritmy, ale budeme pokračovať v používaní algoritmu k-najbližšieho suseda.

Vráťme sa k otázke, ako zvoliť najlepšiu hodnotu hyperparametra k. Je prirodzené myslieť si: vyskúšame viacero hodnôt, napríklad všetky čísla od 1 do 10, a potom vyberieme najlepšiu hodnotu! Urobíme to, ale budeme veľmi opatrní v tom, kde sa snažíme, aká dobrá je naša voľba. Ak to urobíme na testovacom balíku, porušíme zlaté pravidlo strojového učenia o prísnom oddelení testovacieho balíka a vývoja modelu: použijeme testovací balík na rozhodnutie, aká je najlepšia hodnota hyperparametra k, a potom, keď trénujeme model, opäť použijeme testovací balík na vyhodnotenie, aký je dobrý! Budete súhlasiť, že to nedáva veľký zmysel!

Je správne urobiť nasledovné: otestujeme, ktoré hodnoty hyperparametrov sú najlepšie na overovacej množine. Tento súbor nezdieľa informácie ani s tréningovým súborom, ani s testovacím súborom, takže prispeje k objektivite našich záverov. Teraz, keď sme to zistili, môžeme sa pustiť do určovania najlepšej hodnoty hyperparametra k.

Pre každú z hodnôt hyperparametra k, ktorú chceme testovať, samostatne natrénujeme model na trénovacom súbore a vypočítame jeho mieru kvality na validačnom súbore. V tomto prípade je to presné. Získané hodnoty je možné zobraziť graficky umiestnením rôznych hodnôt parametra k pozdĺž osi x a hodnôt presnosti pozdĺž osi y. Hodnota hyperparametra k, pre ktorú dostaneme najlepšiu hodnotu miery kvality na validačnej množine, je hodnota hyperparametra, ktorý hľadáme. V grafe sa to zvyčajne zobrazuje ako oblasť, kde sú hodnoty najvyššie.

Preukázanie presnosti modelu na validačnom súbore

Na základe predchádzajúceho grafu môžeme vidieť, že optimálne hodnoty hyperparametra k sú v skutočnosti 9, 10, 11, 12 a 13, pretože všetky majú za následok rovnakú, najvyššiu presnosť modelu.

Podobnú grafiku je možné nakresliť pre hodnoty hyperparametrov a chybové funkcie. Potom nastavíme rôzne hodnoty hyperparametra pozdĺž osi x a hodnoty chybovej funkcie pozdĺž osi y. Teraz je dôležité poznamenať si hodnoty hyperparametra, pre ktoré je chybová funkcia najmenšia.

Ak je v učebnom algoritme prítomných viacero hyperparametrov, cieľom je nájsť najlepšiu kombináciu hyperparametrov. Určujeme ho aj na základe nastavenej validácie sledovaním úspešnosti modelu a hľadaním kombinácie, ktorá poskytuje najlepšiu hodnotu miery kvality (alebo rovnako sledovaním chyby modelu a hľadaním kombinácie, ktorá poskytuje najmenšiu hodnotu chyby). Problém je v tom, že tento proces môže byť dosť pomalý a výpočtovo náročný pre veľké množstvo hyperparametrov: napríklad, ak chceme preskúmať 10 rôznych hodnôt k a 3 rôzne funkcie vzdialenosti, v skutočnosti máme 10 x 3 = 30 rôznych kombinácií, takže musíme trénovať a vyhodnocovať 30 rôznych modelov.

Last modified: Sunday, 13 April 2025, 9:57 AM