next up previous contents
Next: Gradientní učení Up: Implementace učení RBF sítí Previous: Iterační algoritmus   Obsah


Třífázové učení

Třífázové učení popsané v kapitole 4 se skládá z kroků, v nichž postupně řešíme dílčí úlohy -- vektorovou kvantizaci, nastavení šířek a určení vah.

Prvním krokem je nalezení středů RBF jednotek. RBF agent umí jen přímočaré metody, tedy rovnoměrné rozmístění středů ve vstupním prostoru a vybrání náhodných vzorků z tréninkové množiny.

Pokud je po něm požadováno použití nějaké metody vektorové kvantizace, požádá o to agenta pro vektorovou kvantizaci jménem Victor. Předá mu potřebné informace, tedy odkaz na tréninkovou množinu, požadovaný počet středů a případné další parametry. Po skončení výpočtu od něj převezme výsledek a nastaví středy své RBF sítě na odpovídající hodnoty.

Jinou možností je nahrazení vektorové kvantizace genetickým algoritmem. O tom více v kapitole 6.2.5.

Pokud mají RBF jednotky nějaké další adaptovatelné parametry, nastavují se v druhé fázi. RBF agent má přehled o tom, zda takové parametry existují a jako metodou je chceme učit. Opět je výběr mezi jednoduchou heuristikou (nastavení šířek úměrně vzdálenosti několika nejbližších sousedů), kterou RBF agent realizuje sám, nebo časově náročnější minimalizací chybové funkce (4.12). Tuto minimalizi ovládá agent jménem Giorgino. RBF agent mu předá skrytou vrstvu s nastavenými středy a Giorgino mu dopočte hodnoty ostatních parametrů.

Zbývá poslední fáze, nastavení vah výstupních jednotek. RBF agent zformuluje pomocí tréninkové množiny soustavu rovnic a předá známé matice agentovi jménem Lilly. Může si zvolit, jakou metodu nejmenších čtverců má Lilly použít. Lilly pak provede samotný výpočet a vrátí RBF agentovi hledanou matici, tedy matici vah.

Druhou možností pro hledání vah je použití gradientního algoritmu. To popíšeme v podkapitole 6.2.4.


Tabulka 6.1: Přehled agentů realizujících třífázového učení.
  metoda agent
1. fáze rovnoměrné rozmístění středů Rafael
  náhodné tréninkové vzory Rafael
  vektorová kvantizace Victor
  genetický algoritmus George, Vivian
2. fáze heursitika $q$ sousedů Rafael
  gradientní mimimalizace Giorgino
3. fáze nejmenší čtverce Lilly
  gradientní algoritmus Bart


V tabulce 6.1 je přehled metod a agentů používaných v třífázovém učení. Nyní se podívejme podrobněji na jednotlivé agenty.

Victor (vq.html)
Victor je agent, který dokáže řešit úlohu vektorové kvantizace. Tedy k množině bodů v $n$-rozměrném prostoru najde $k$ reprezentantů.

Tuto úlohu umí řešit pomocí Lloydova algoritmu, Kohonenova učení a Kohonenova učení s radiálním růstem, respektive lokální pamětí. Všechny tyto algoritmy mají stejný charakter, proto sdílejí jednoho agenta, a jsou iterativní, proto je Victor potomkem Iteračního algoritmu.

Obrázek 6.3: Průběh komunikace s Victorem. 1. Inicializace výpočtu. 2. Start. 3. Výpočet běží. 4. Výpočet skončil. 5. Předání výsledků.
\begin{figure}
\leavevmode
\centering\epsfxsize =\textwidth
\epsfbox {victor1.eps}\end{figure}

Obrázek 6.3 zobrazuje typický průběh komunikace Victora s uživatelem. Uživatelem rozumíme takový objekt (osobu, agenta), který po Victorovi požaduje nějakou službu. V našem případě to bude RBF agent. Ten Victorovi nejprve předá odkaz na tréninkovou množinu a požadovaný počet reprezentantů. Může také specifikovat, kterou metodu použít, a určit její parametry. Poté spustí výpočet a po jeho skončení získá výsledek.

Typ metody a případné další parametry lze předat příkazem <config> konfigurace </config>, kde konfigurace obsahuje XML řetězec určující dané parametry. Pro parametry, které nejsou v konfiguraci obsaženy, se použijí přednastavené hodnoty.

Úloha se zadá pomocí přístupu k proměnným trainset a k. Zápis do proměnné trainset umožňuje specifikovat tréninkovou množinu, a to buď jménem souboru s tréninkovou množinou nebo jménem agenta spravujícího nějakou tréninkovou množinu. Proměnná k určuje požadovaný počet reprezentantů.

Binární rozhraní umožňuje předání výsledku pomocí <query> <result/>
</query>.

Giorgino (gradient.html)
Agent Giorgino je specializován na nalezení vhodných šířek a matic norem RBF jednotek. Hodnoty hledá pomocí minimalizace chybové funkce (4.12) jednoduchým gradientním algoritmem. Gradientní algoritmus má iterativní charakter, tedy Giorgino je potomkem Iteračního algoritmu.

Obrázek 6.4: Průběh komunikace: 1. Předání zadání 2. Start. 3. Výpočet běží. 4. Výpočet skončil. 5. Předání výsledků.
\begin{figure}
\leavevmode
\centering\epsfxsize =\textwidth
\epsfbox {giorgino1.eps}\end{figure}

Na obrázku 6.4 je znázorněn typický průběh komunikace Giorgina se svým uživatelem, nyní RBF agentem. RBF agent nejprve předá skrytou vrstvu RBF sítě. Dále může pomocí příkazu <config/> předat hodnoty parametrů a koeficientů gradientní metody a specifikovat, které parametry chce naučit. Poté spustí výpočet a po jeho skončení převezme skrytou vrstvu RBF sítě, doplněnou o hodnoty hledaných parametrů.

Předání RBF sítě před a po výpočtu probíhá přes binární rozhraní zpracování příkazu <set> <var> <net/> </var> </set> a dotazu <get> <var> <net/>
</var> </get>.

Lilly (leastsquares.html)
Agent jménem Lilly hledá řešení soustavy ${\bf A}{\bf X} = {\bf B}$ ve smyslu nejmenších čterců. Řešení umí najít pomocí SVD rozkladu, QR rozkladu nebo Moore-Penroseovy pseudoinverze (viz kapitola 4.3).

Obrázek 6.5: Průběh komunikace: 1. Konfigurace 2. Žádost o řešení problému 3. Předání výsledku
\begin{figure}
\leavevmode
\centering\epsfxsize =0.6\textwidth
\epsfbox {lilly1.eps}\end{figure}

Uživatel, který požaduje řešení problému, nejprve příkazem <config/> určí metodu, kterou má Lilly použít. Neučiní-li tak, použije se SVD rozklad, který Lilly považuje za nejsilnější metodu. Poté požádá o binární rozhraní a provedení příkazu <solve/>, přes binární rozhraní předá objekt obsahujcí zadání, t.j. matice ${\bf A}$ a ${\bf B}$. Lilly spočte řešení a spolu s hodnotou chyby a případnou chybovou hláškou je předá uživateli, opět přes binární rozhraní.


next up previous contents
Next: Gradientní učení Up: Implementace učení RBF sítí Previous: Iterační algoritmus   Obsah
Petra Kudova
2001-04-19