next up previous contents
Next: Kanonický genetický algoritmus Up: Genetické algoritmy Previous: Algoritmus 5.1.1:   Obsah


Učení RBF sítí pomocí GA

Učení neuronové sítě můžeme formulovat jako úlohu nalezení minima chybové funkce v závislosti na parametrech sítě. K použití genetického algoritmu na tuto úlohu potřebujeme zakódovat parametry sítě a dokázat ohodnotit takového jedince odpovídající hodnotou účelové funkce.

Zakódování parametrů
Připomeňme si model RBF sítě z části 2.2. Vidíme, že síť je určena svými RBF jednotkami a váhami spojů od těchto jednotek k výstupním jednotkám. Každá jednotka je pak určena svými parametry - středem, případně šířkou a maticí normy. Nabízí se tedy jednoduchá možnost zakódování parametrů sítě do řetězce $h$ bloků, kde $h$ je počet RBF jednotek a každý blok obsahuje zřetězení parametrů dané jednotky a vah spojů vedoucí z této jednotky do výstupní vrstvy. Zakódování je zřejmé z obrázku 5.2.Určení počtu RBF jednotek může být součástí učení. Délka jedince pak není konstantní.

Obrázek 5.1: Jedinec reprezentující neuronovou síť typu RBF. Blok reprezentující $i$-tou RBF jednotku, $c_{ij}$ označuje souřadnici středu, $a_{jk}^i$ prvek matice $\Sigma ^{-1}_i$, $b_i$ šířku a $w_{ij}$ hodnotu váhy vedoucí k $j$-té výstupní jednotce
\begin{figure}\leavevmode
\centering\epsfysize =4cm
\epsfbox {genom.1}\end{figure}



Počáteční populace
První populaci vygenerujeme náhodně. Neznáme-li počet RBF jednotek, zvolíme nějakou horní mez a každému jedinci určíme počet náhodně. Středy volíme náhodně ve vstupním prostoru (t.j oblast výskytu tréninkových vzorů).

Účelová funkce
Hodnotu účelové funkce $\mathcal{F}$ pro daného jedince spočteme na základě hodnoty chybové funkce sítě (viz část 2.4) určené tímto jedincem.
\begin{displaymath}
\mathcal{F}(I_i) = C - \sum_{t=1}^k \parallel \vec{d}^{(t)} -
\vec{f}^{(t)}\parallel^{2},
\end{displaymath} (5.1)

kde $C \in \mathbb {R}$ je odhad maximální chyby, případně maximální chyba v dané populaci. V případě, že délka jedince není pevně dána, přidáme k účelové funkci další člen, který bude penalizovat jedince s velkým počtem RBF jednotek.

Selekce
Použijeme tzv. ruletovou selekci. Představme si, že jedince vybíráme pomocí ruletového kola, které je rozdělené na výseče odpovídající jednotlivým jedincům. Velikost výseče odpovídá pravděpodobnosti $p_i$ výběru daného jedince $i$. Tuto pravděpodobnost určíme znormováním hodnot účelové funkce.
\begin{displaymath}
p_i = \frac{\mathcal{F}(I_i)}{\sum_{j=1}^N \mathcal{F}(I_j)}
\end{displaymath} (5.2)

Selekci je navíc vhodné zkombinovat s tzv. elitářským mechanismem. Elita je tvořená určitým počtem (např. 3-5%) nejlepších jedinců z dané populace, kteří jsou reprodukováni do nové generace beze změny. Tak zajistíme, že maximum hodnot účelové funkce neklesá.

Křížení
Použijeme jednobodové křížení. Vybrané jedince budeme označovat jako otce a matku. Náhodně zvolíme body křížení pro otce i matku tak, aby ležely na hranici bloků. V případě pevné délky jedince volíme bod křížení u otce i matky na stejné pozici v řetězci. Nové jedince pak vytvoříme spojením první části kódu otce s druhou částí kódu matky a naopak.

Mutace
U vybraného jedince náhodně zvolíme jeden blok a jeho hodnoty nebo některé z jeho hodnot náhodně změníme.


next up previous contents
Next: Kanonický genetický algoritmus Up: Genetické algoritmy Previous: Algoritmus 5.1.1:   Obsah
Petra Kudova
2001-04-19