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 -neurónov a na výstupe
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
1.
výstupné neuróny majú aktivačnú funkciu - funkciu identity. Potom
môžeme napísať, že
(5.1)
Ku vzťahu (5.1) sa vrátime v ďalšom dôležitou poznámkou.
2.
vyberieme maximálnu hodnotu
z
a urobíme nasledovnú operáciu
(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
premietli do hodnôt SV, ktoré smerujú k
víťaznému neurónu, ktorý prísluší vstupu .
Teda v
konečnom dôsledku budú mať rôzne vstupy
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ť
chybových funkcií
typu5.3 :
(5.3)
Teda ide o rozdiel SV, ktoré smerujú k 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 :
(5.4)
kde
je opäť učiaci pomer. Potom vypočítame spomínanú deriváciu
nasledovne
a z toho dostaneme vzťah pre novú hodnotu SV v tvare
(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
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
a ,
ktorý má tvar :
(5.8)
kde
je uhol medzi vektormi
a .
V prípade, že sú
a
rovné " 1", potom samotný
sa
rovná5.4
(5.9)
Ak sú
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
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
a pre
,
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 :
(5.10)
a to isté urobíme pre SV. V uvedenom príklade dostaneme vektory
,
a
.
Potom5.5
pre
a pre .
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
to bude hodnota
(5.11)
kde
sú hodnoty vstupu a
sú hodnoty SV, ktoré smerujú
k neurónu "i". Tento výpočet ale mení vzťah (5.2) do tvaru
(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
a
,
č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ť.