Dalším možným přístupem k učení RBF sítí je gradientní metoda popsaná
v kapitole 3. RBF agent použije v tomto případě služeb agenta
jménem Bart.
Bart (back.html)
Bart je agent realizující gradientní algoritmus
pro učení RBF sítí. Je schopen učit všechny parametry, které síť obsahuje, nebo
pouze vybrané z nich. Je tedy možné použít gradientní algoritmus jak pro učení
celé RBF sítě, tak pro poslední krok třífázového učení, kde budeme učit pouze
váhy.
Podívejme se na obrázek 6.6. RBF agent nejprve předá Bartovi zadání, tedy RBF síť (proměnná rbfnet) a odkaz na tréninkovou množinu (proměnná trainset). Poté pomocí příkazu <config/> specifikuje seznam parametrů, které se mají učit, koeficienty gradientního algoritmu, způsob inicializace a další parametry. Dále lze určit, jak často a kam se má ukládat mezivýsledek, pro případ výpadku hardwaru.
Lze učit všechny skupiny parametrů RBF sítě, pak není nutné předávat Bartovi celou RBF síť (rozuměj objekt obsahující všechny parametry sítě), ale stačí pouze předat konfiguraci sítě, kde specifikujeme počet RBF jednotek a určíme, zda mají mít RBF jednotky nastavitelnou šířku a matici normy.
Pokud je nějaká skupina parametrů známá, lze předat Bartovi RBF síť, která má tuto skupinu parametrů nastavenou a vynechat tuto skupinu v seznamu parametrů, které se mají učit.
Gradientní metoda začíná s náhodnými hodnotami parametrů sítě. Bart k počátečnímu nastavení používá dvě strategie. První je klasická, kdy středy jsou náhodně rozmístěny po vstupním prostoru, šířky a matice norem na hodnoty kolem jedničky a váhy na náhodné malé hodnoty.
Druhá strategie vznikla během experimentů s gradientní metodou a osvědčila se. Středy jsou náhodně vybrané body z tréninkové množiny, šířky jsou rovny jedné, matice norem jsou jednotkové matice a váhy jsou nulové. Síť tak začíná na konstantní nulové funkci, která je dostatečně hladká, a teprve během výpočtu se přizpůsobuje učené funkci. Nezačíná tedy z žádnými nežádoucími oscilacemi.
Inicializaci sítě lze samozřejmě přeskočit. To předpokládá, že Bart na počátku opravdu obdrží již inicializovanou RBF síť.
Při učení RBF sítě s jedním vstupem a jedním výstupem lze během výpočtu sledovat funkci sítě zobrazenou programem Gnuplot. Bart k tomu využívá agenta Plotter. Příkazy <gnuplot> <[on|off]/> </gnuplot> lze zapnout nebo vypnout toto zobrazování. Režie těchto výstupů je však poměrně vysoká a zobrazování je vhodné pouze pro malé funkce a malé tréninkové množiny.
Bart se dá také využít ke zjištění chybové funkce v genetickém algoritmu. Genetické algoritmy budou popsány v části 6.2.5. Bart může být připojen k Georgovi (viz obr. 6.2) jako účelová funkce. Pak je schopen přijmout dotaz na binární zpracování žádosti <query> <error/> </query>. Přes binární rozhraní pak obdrží RBF síť s nastavenou skrytou vrstvou. Na tuto síť aplikuje určitý počet iterací gradientího algoritmu a výslednou hodnotu chybové funkce vrátí jako hodnotu účelové funkce.
Vraťme se nyní k třífázovému učení z minulé kapitoly. Nyní už je zřejmé, co má RBF agent udělat, chce-li k hledání vah v třetí fázi použít gradientní metodu. Předá Bartovi síť s naučenou skrytou vrstvou a nakonfiguruje si Barta tak, aby doučil pouze její váhy.