next up previous contents
Next: Algoritmus 4.1.2: Up: První fáze Previous: Algoritmus 4.1.1:   Obsah

Kohonenovo učení

Dalším algoritmem je tzv. Kohoneno učení (v literatuře často označované jako k-means clustering). Jedná se o modifikaci Lloydova algoritmu, kdy k adaptaci dochází po každém předložení tréninkového vzoru.

Algoritmus lze reprezentovat jednoduchou samoorganizační neuronovou sítí. Vstupní vrstva je tvořena $n$ neurony a slouží pouze k přenosu vstupních hodnot $\vec{x} \in \mathbb {R}^n$. Druhá, výstupní vrstva se skládá z $h$ jednotek, které představují hledané reprezentanty. Každé výstupní jednotce přísluší váhový vektor $ \vec{c}_j = (c_{1}, \cdots ,c_{h})$, který určuje její umístění ve vstupním prostoru. Výstupy sítě nabývají hodnot $\{0,1\}$ a to tak, že výstupní hodnotu $1$ má vždy právě jeden neuron. Takový neuron se nazývá aktivní. Po předložení tréninkového vzoru $\vec{x}^t$, si každý neuron spočte svoji vzdálenost od tohoto vstupu $\parallel\vec{x}^t - \vec{c}\parallel $. Poté proběhne kompetice, kterou vyhrává neuron $j$, pro který platí

\begin{displaymath}j = {\rm argmin}_{i=1, \cdots,h} \{ \parallel\vec{x}^t - \vec{c}_i\parallel \} .\end{displaymath} (4.6)

Tento neuron se stává aktivním.

Učení této jednoduché sítě vychází z Lloydova algoritmu. Procházíme tréninkovou množinu, každý vzor předložíme síti a výherce kompetice $j$ posuneme směrem k danému vstupu


\begin{displaymath}
\vec{c}_{j}^{\,t} = \vec{c}_{j}^{\,t-1} + \theta(\vec{x}^{\,t-1} - \vec{c}_j^{\,t-1})
\end{displaymath} (4.7)

Parametr $ 0 < \theta \leq 1$ určuje míru změny, na počátku učení je dobré jej volit blízký jedné, během učení jej snižovat až k nule.



Subsections
next up previous contents
Next: Algoritmus 4.1.2: Up: První fáze Previous: Algoritmus 4.1.1:   Obsah
Petra Kudova
2001-04-19