Učení s učitelem
V případě učení s učitelem má adaptační algoritmus dostupnou spočetnou konečnou (pmax prvků) množinu dvojic a které představují vstupy a odpovídající korektní výstupy řešené úlohy. Má tedy k dispozici příklady správného chování, správné transformace z vektorů vstupních na vektory výstupní. Tyto příklady mohou být získány například měřeníma zaznamenáním vstupních a výstupních hodnot systému, který chceme modelovat. Přímá transformace vstupních hodnot na hodnoty výstupní není známa. Analogie s usuzováním lidského experta je zde zřejmá.
(5) |
Množina všech dostupných hodnot tedy představuje známou část chování systému. Tato množina je pak použita adaptačním algoritmem k naučení sítě a také k ověření její funkce. Zpravidla je množina všech dostupných dat rozdělena na dvě části, na trénovací a testovací množinu. Poměr počtu prvků v trénovací a testovací množině není pevně dán. Je třeba jej volit s ohledem na charakter řešené úlohy a také dat dostupných adaptačnímu algoritmu. Trénovací množina obvykle představuje při dostatečném počtu vstupních dat cca 70%-80%, zbytek dvojic je pak zařazen do množiny testovací. Často používaný je i způsob, kdy je množina dostupných hodnot rozdělena místo dvou na tři disjunktní části, mimo množiny trénovací a testovací je vytvořena také množina validační. V průběhu učení je periodicky vyhodnocována chyba nikoli jen na trénovací množině, ale je určována i chyba na množině validační a adaptace je zastavena, pokud tato chyba po nějakou dobu neklesá. Tím je dosaženo větší obecnosti nalezené transformace.
Vlastní trénování neuronu (a po zobecnění i dopředných sítí) probíhá obvykle iterativně, kdy algoritmus jednotlivé prvky trénovací množiny předkládá postupně neuronu, zjišťuje jeho odezvu na předložený vstup a na základě odchylky jeho výstupu od výstupu požadovaného provádí korekci vah neuronu. Interval, ve kterém dojde k předložení všech vzorů trénovací množiny alespoň jednou, nazýváme epochou učení. K naučení sítě může být dle komplexnosti problému zapotřebí desítky až tisíce epoch.
Okamžik zastavení adaptace může být definován různými způsoby, nejčastěji dosažením požadovaně malé chyby transformace nad trénovací množinou či zastavením jejího poklesu, dosažením maximálního počtu epoch. Za účelem vyhodnocení okamžiku, kdy je vhodné adaptaci ukončit (nalezená transformace je dostatečně přesná, ale zároveň neztrácí na obecnosti) vyčleňujeme z trénovací množiny, respektive dostupných dat často ještě třetí, opět se nepřekrývající množinu validační. V průběhu adaptace je nad ní periodicky testována výkonnost nalezené transformace a při zastavení poklesu chyby nad validační množinou je proces adaptace ukončen. Rozdíl mezi validační množinou a množinou testovací je ten, že validační množina vstupuje do procesu adaptace jako parametr ukončující učení sítě, testovací množina nikoli a je na ní po ukončení adaptace pouze otestována předpokládaná výkonnost sítě v praxi.
Výkonnost naučeného neuronu či neuronové sítě pak po ukončení adaptace ověříme na testovací množině. Trénovací a testovací množinu volíme tedy jako nepřekrývající se, aby byla zaručena možnost nezávislého otestování úspěšnosti adaptace nad testovací množinou. Kriterií výkonnosti sítě a úspěšnosti adaptace může být více, nejčastěji se jedná o střední kvadratickou odchylku mezi výstupy nalezené transformace a výstupy očekávanými.
Rozsah a obsah trénovací množiny je často limitován už dostupnými daty. Přesto se snažíme, aby měl adaptační algoritmus k dispozici co nejvíce příkladů, které pokrývají pokud možno rovnoměrně celý vstupní prostor. Klademe tedy požadavek na reprezentativnost příkladů, které jsou adaptačnímu algoritmu předkládány.
Úspěšnost transformace nalezené nad trénovací množinou hodnotíme nad množinou testovací a odhadujeme tak úspěšnost proběhlé adaptace a obecnost nalezené transformace i pro jiné vstupy, než se nacházely v trénovací množině. Výkonnost nad testovací množinou je tedy hodnoceným kriteriem úspěšnosti adaptace.
Předpokládáme, že pokud je výkonnost nad testovací množinou dobrá, bude přibližně stejně dobrá i pro vstupy zcela mimo trénovací a testovací množinu. Je ale třeba zmínit, že tuto záruku obecnosti pro dosud neznámé vstupy nemáme.
Typické kroky iterativního učení neuronu či dopředné neuronové sítě s učitelem.
- Předzpracování vstupních dat
- Definice trénovací, testovací a případně validační množiny
- Definice struktury sítě/parametrů neuronu
- Inicializace vah neuronů, obvykle malá náhodná čísla
- počítadlo epoch učení
- Start: nastav epochu učení na
- Pokud je počet provedených epoch učení max ukonči učení, jdi na 14
- -tá epocha učení:
- Výběr a předložení jednoho vstupního vektoru neuronu z trénovací množiny (deterministicky, náhodně)
- Získání odezvy neuronu, vyhodnocení chyby klasifikace na základě porovnání skutečného a předpokládaného výstupu chyba klasifikace
- Korekce vah neuronu na základě získané chyby
- Pokud není epocha učení dokončena (neprověřeny všechny vstupy z trénovací množiny), jdi na bod 9
- Na konci epochy vyhodnoť chybu klasifikace přes celou trénovací množinu. Je-li chyba ukonči učení (bod 14), jinak jdi na bod 4. (Vyhodnocovat chybu lze i častěji a použít i validační množinu a použít tak jiné kriterium pro zastavení adaptace)
- Vyhodnocení úspěšnosti činnosti sítě na testovací množině, pokud je nedostatečná, jdi na bod 4, ev. 3. Případně ukonči algoritmus neúspěchem.