next 5.1.1 MAXNET
previous 5. Nekontrolované učenie na FF NN
up 5. Nekontrolované učenie na FF NN
Obsah


5.1 Konkurenčné učenie

Konkurenčné učenie predstavuje jednoduchý prístup nekontrolovaného učenia k spracovaniu dát za účelom zhlukovej analýzy. Topológia pre konkurenčné učenie je veľmi jednoduchá (vid obrázok  5.1). Teda na vstupnej vrstve je $M$-neurónov a na výstupe $N_{c}$ neurónov. Pri konkurenčnom učení môžeme zhrnúť úvahy do nasledujúcich bodov:

Obrázok 5.1: Zmena váh, ktoré smerujú k víťaznému neurónu
\begin{figure}
\begin{center}
\epsfig {file=img/51.ps}
\end{center}
\end{figure}

1.
výstupné neuróny majú aktivačnú funkciu - funkciu identity. Potom môžeme napísať, že
\begin{displaymath}
ou_{i}(t)~=~\sum_{j}^{M} w_{ij}(t)x_{j}(t)
\end{displaymath} (5.1)

Ku vzťahu (5.1) sa vrátime v ďalšom dôležitou poznámkou.
2.
vyberieme maximálnu hodnotu $ou_{i}(t)$ z $i=1,\dots,N_{c}$ a urobíme nasledovnú operáciu
\begin{displaymath}
ou_{i}(t)~=~\left\{ \matrix{
1 & ak~ou_{i}~=~max\{ou_{i},\forall~i=1,\dots,N_{c} \} \cr
0 & inak } \right.
\end{displaymath} (5.2)

teda neurón, ktorý má najvyššiu hodnotu bude nastavený na 1 a ostatné budú nastavené na 0. Túto procedúru nazývame víťaz berie všetko (winner takes all - v ďalšom WTA).
3.
Ďalším krokom bude zmena SV, ale iba tých, ktoré vstupujú do víťazného neurónu. Odvodenie adaptačného pravidla pre zmeny SV je analogické ako pri kontrolovanom učení a LMS prístupe. Kľúčovým momentom je stanovenie chybovej funkcie. V konkurenčnom učení ide o zámer, aby sa jednotlivé vstupy ${\bf x}$ premietli do hodnôt SV, ktoré smerujú k víťaznému neurónu, ktorý prísluší vstupu ${\bf x}$. Teda v konečnom dôsledku budú mať rôzne vstupy ${\bf x}$ rôzne víťazné neuróny a stredy rôznych zhlukov by sa mali premietnuť do hodnôt SV, ktoré smerujú k jednotlivým víťazným neurónom. V podstate budeme mať $N_{c}$ chybových funkcií typu5.3 :
\begin{displaymath}
J(t)~=~0.5 \sum_{j=1}^{M}{(w_{ij}(t)-x_{j}(t))}^{2}
\end{displaymath} (5.3)

Teda ide o rozdiel SV, ktoré smerujú k $i-$temu víťaznému neurónu a hodnoty vstupného neurónu. Teda minimalizáciou tohoto rozdielu, dochádza k premietnutiu vstupov do hodnôt SV, ktoré smerujú k jednotlivým víťazným neurónom. Samotné odvodenie zmeny SV bude jednoduché, teda :
\begin{displaymath}
\Delta w_{ij}(t)~=~-\gamma \frac{\partial J(t)}{\partial w_{ij}(t)}
\end{displaymath} (5.4)

kde $\gamma$ je opäť učiaci pomer. Potom vypočítame spomínanú deriváciu nasledovne
\begin{displaymath}
\frac{\partial J(t)}{\partial w_{ij}(t)}~=~\left\{ \matrix...
..._{j}(t)) & ak~''i''~ je~víťazný~neurón\cr
0 & inak } \right.
\end{displaymath} (5.5)

Na základe (5.5) dostaneme zmenu SV v tvare
\begin{displaymath}
\Delta w_{ij}(t)~=~-\gamma(w_{ij}(t)-x_{j}(t))
\end{displaymath} (5.6)

a z toho dostaneme vzťah pre novú hodnotu SV v tvare
\begin{displaymath}
w_{ij}(t+1)~=~w_{ij}(t)+\gamma(x_{j}^{k}(t)-w_{ij}(t))
\end{displaymath} (5.7)

v prípade ak "i"-ty neurón je víťazný.
4.
problémom ostáva inicializácia váh. Vo všeobecnosti sa to realizuje tým spôsobom, že sa náhodne vyberie $N_{c}$ vektorov zo vstupnej množiny a tieto sa použijú ako štartovacie hodnoty SV.
5.
ak sa vrátime ku vzorcu (5.1), tak v podstate ide o skalárny súčin dvoch vektorov ${\bf w}_{i}(t)$ a ${\bf x}(t)$, ktorý má tvar :
\begin{displaymath}
{\bf w}(t){\bf x}(t)~=~\vert {\bf w}~\vert~\vert {\bf x}~\vert~cos(\phi)
\end{displaymath} (5.8)

kde $\phi$ je uhol medzi vektormi ${\bf w}(t)$ a ${\bf x}(t)$. V prípade, že sú $\vert {\bf w}(t) \vert$ a $\vert {\bf x}(t) \vert$ rovné " 1", potom samotný $cos(\phi)$ sa rovná5.4
\begin{displaymath}
cos(\phi)~=~~\sum_{j}^{M} w_{ij}(t)x_{j}(t)
\end{displaymath} (5.9)

Ak sú $\vert {\bf x}(t) \vert$ rovné " 1", sú normalizované. Potrebu normalizácie si ozrejmime na nasledujúcom prípade. Vzhľadom na zhlukovací charakter celej procedúry je potrebné dať pozor na prípady, keď sú vektory nesprávne zaradené, resp. vyhráva nesprávny neurón. Majme situáciu na obr.  5.2.

Obrázok 5.2: Príklad jednoduchého zhlukovania do 2 zhlukov v dvojrozmernom príznakovom priestore
\begin{figure}
\begin{center}
\epsfig {file=img/52.ps}
\end{center}
\end{figure}

Ak na vstup dáme vektor (1,4) a SV majú také hodnoty, ako je naznačené na obrázku, potom na základe vzťahu (5.1) dostaneme pre ${\bf ou1~=~13}$ a pre ${\bf ou2~=~24}$, teda podľa stratégie WTA vyhráva neurón 2. Ak si pripomenieme, že vlastne naším cieľom je premapovať vstupy do hodnôt SV, dostali sme výsledok ktorý hovorí, že vektor (1,4) má bližšie k vektoru (4,5) ako k vektoru (1,3) - čo je logicky nesprávne. Túto situáciu riešime pomocou normalizácie vstupných vektorov a aj hodnôt SV. A potom skutočne môžeme použiť vzorec (5.5) a dostaneme lepšie výsledky. Tu treba dať pozor aký normalizačný prístup zvolíme. Napríklad ak zvolíme :
\begin{displaymath}
{\bf x_{nor}}~=~\frac{{\bf x}}{\sqrt{{\sum_{i=1}^{M} x_{i}^{2}}}}
\end{displaymath} (5.10)

a to isté urobíme pre SV. V uvedenom príklade dostaneme vektory $(\frac{1}{\sqrt{17}},
\frac{4}{\sqrt{17}})$, $(\frac{1}{\sqrt{10}},\frac{3}{\sqrt{10}})$ a $(\frac{4}{\sqrt{41}},
\frac{5}{\sqrt{41}})$. Potom5.5 pre $ou1~=~0.997$ a pre $ou2~=~0.7$. Teda pomocou príslušnej normalizácie vstupných vektorov a samotných SV sme dosiahli správne správanie sa procedúry zhlukovania. Vyriešením tohoto problému sme však dospeli k problému pre určité typy vektorov. Napr. v prípade, že použijeme normalizáciu, tak nebudeme schopní rozlíšiť vektory, ktoré majú rovnaký smer, ale rôzne veľkosti, lebo my v podstate spočítavame uhol medzi týmito vektormi. Riešením môže byť doplnenie vstupného vektrora a SV o ďalší príznak5.6, teda budeme pracovať nie v n-rozmernom priestore ale v (n+1)-rozmernom priestore. Po normalizácii už tieto vektory nebudú mať rovnaký smer. Dokonca v prípadoch, keď tieto smery sú blízke, sa procedúra nechová korektne. Ak chceme predísť týmto problémom, musíme zmeniť prístup k výpočtu hodnoty pre víťazný neurón teda vzťah (5.1). Vzhľadom na to, že vlastne chceme hľadať rozdiel medzi vstupným vektorom a SV, tak môžeme novú hodnotu neurónu vypočítať ako Euklidovu vzdialenosť medzi jednotlivými vektormi, teda pre neurón $x_{i}$ to bude hodnota
\begin{displaymath}
ou_{i}~=~\sum_{l=1}^{M}{(w_{l}-x_{l})}^{2}
\end{displaymath} (5.11)

kde $x_{l}$ sú hodnoty vstupu a $w_{l}$ sú hodnoty SV, ktoré smerujú k neurónu "i". Tento výpočet ale mení vzťah (5.2) do tvaru
\begin{displaymath}
ou_{i}(t)~=~\left\{ \matrix{
1 & ak~ou_{i}~=~{\bf min} \{ou_{i},\forall~i=1,\dots,N_{c} \} \cr
0 & inak } \right.
\end{displaymath} (5.12)

Tento prístup má výhodu voči predošlému v tom, že nie je požadovaná normalizácia a odpadávajú problémy s vektormi rovnakých smerov. Ak sa vrátime k predošlému prípadu, tak dostaneme výsledky $ou1~=~1$ a $ou2~=~
\sqrt{10}$, čo znamená, že vyhráva neurón 1.
Výsledok samotného procesu zhlukovania je skrytý v hodnotách jednotlivých SV, ktoré reprezentujú centrá zhlukov, ktoré systém vedel nájsť.

previous next up
CIG Homepage(E-mail us!)