Nervový plyn


Expandující neurální plyn  je algoritmus , který umožňuje adaptivní shlukování vstupních dat, tedy nejen rozdělit prostor do shluků, ale také určit jejich potřebný počet na základě vlastností samotných dat. Expandující nervový plyn nevyžaduje a priori informace o datech, jako je odhad počtu shluků nebo tvaru shluků.“ [1] Toto je nová třída výpočetních mechanismů. Počet a umístění umělých neuronů v prostoru rysů není předem určeno, ale je výsledkem výpočtu v procesu trénovacích modelů na základě dat zadaných na vstupu [2] . V tomto modelu není okolí uzlů pevné, ale dynamicky se mění, jak se shlukování zlepšuje. Proměnnými nejsou pouze sousedské vztahy, ale také počet neuronů shluku.

Historie vytvoření

Existují techniky, které jsou schopny vybrat nejpodobnější objekty v prostoru a vytvořit z nich skupiny. Během analýzy je množina objektů organizována do podmnožin na základě měřené podobnosti. Typicky jsou metody založeny na standardním schématu: optimalizace vztahu mezi prostorovým uspořádáním vektorů a sadou objektů tak, že každý vektor určuje strukturu shluků . Většina technik má však dvě významné nevýhody: analýza závisí na daném počtu shluků a rozdělení do shluků je lokalizováno v čase. Všechny moderní metody shlukování byly statické a neuměly přizpůsobit výsledky, pokud byla k datům přidána nová data, bylo nutné algoritmus znovu spustit.

Popis algoritmu

Implementace algoritmu začíná dvěma neurony. Pak dochází k postupné změně (většinou ve směru zvyšování) jejich počtu, zároveň se mezi neurony vytvářejí spojení, která nejlépe odpovídají rozložení vstupních vektorů. Každému neuronu je přiřazena vnitřní proměnná, která akumuluje „lokální chybu“. Spojení mezi uzly popisuje proměnná zvaná „věk“ [3] .

Pokud jsou v této fázi uzly posunuty směrem ke vstupnímu vektoru, pak vítěz má tendenci "zprůměrovat" svou pozici vzhledem ke vstupním signálům umístěným v jeho blízkosti. V tomto případě nejlepší neuron mírně „táhne“ sousední neurony ve směru signálu.

Formulář struktury dat

Výzkumník si může sám nastavit podobu shlukové struktury, zda bude shlukování prováděno pro hypersféru , hypertrubici nebo nadrovinu . Pokud tyto znalosti nemá, pak díky hodnotě jeho vlastní kovarianční matice můžete určit potřebnou formu. Pokud má struktura alespoň o jednu vlastní hodnotu menší než práh zvolený uživatelem, pak bude model hyperlineární, jinak musí být struktura považována za nelineární varietu. Další testování ukáže, zda má model tvar koule nebo trubky. Test sféricity závisí na splnění nerovnosti np/na>ψ, kde np je počet vektorů uvnitř shluku, který se zjistí pomocí Jordan Brauerovy věty [4] a ap je plocha povrchu shluku. cluster a ψ je uživatelsky specifikovaný práh. Pokud má tato nerovnost tvar np/na<ψ, pak tvar shluku bude „hypertrubice“. [3]

Vzdálenost od vektoru X k neuronům ve shlucích různých tvarů

Pro shluk ve formě hypertrubice se vypočítá radiální vzdálenost:

kde Aj je kladná, jednoznačná matice vypočítaná tak, aby zohlednila excentricitu a orientaci hypertrubice [5] . Hodnota Aj pro tuto rovnici je nalezena pomocí Lownerova hyperlipsoidu pomocí Khachiyanova algoritmu [6] .

Chcete-li určit vzdálenosti v nadrovině, použijte následující vzorec:

kde Aj je libovolně kladná definitní symetrická hmotnostní matice. A bj, k se odhadne nalezením vlastních vektorů neurálních uzlů modelu.

Chcete-li určit vzdálenost v hypersféře, musíte použít vzorec:

kde wi je buď střední hodnota vektorů obsažených v rovině.

Vizualizace dat

Ve 3D prostoru jsou data velmi snadno vizualizovatelná. [3] Můžete to vidět na obrázku.

Pokud je však náš prostor větší než trojrozměrný, pak je vizualizace dat obtížná. K vyřešení tohoto problému se používá technika založená na DPH [7] . Podstatou konstrukce je nalezení minimální kostry modelu. Po dokončení procesu třídění lze shlukovou strukturu analyzovat pomocí čtverců poblíž úhlopříčky. Nejprve se v každém izolovaném grafu vypočítají normalizované, párově odlišné neurony. Různé neurony se pak přeskupí, aby se vytvořila nejhustší distribuce uvnitř seskupení. Poté je každý shluk natřen svou vlastní barvou a umístěn podél hlavní diagonály. V diagramu jsou také zahrnuty vztahy uvnitř shluků, bíle je vyznačena maximální vzdálenost mezi dvěma shluky a černě nejmenší vzdálenost. Jako další rozměr lze přidat objem shluku, jedná se o výšku čtverců.

Příklad expandujícího nervového plynu

Tento příklad ukazuje, jak se systém přizpůsobí, když jsou zadána nová data. Databáze se skládá z 1050 bodových objektů. Na začátku bylo provedeno 5000 iterací a do algoritmu se dostalo 75 % informací. Poté, co byla do systému vložena malá část 756 datových bodů, nervové vektory se začaly přizpůsobovat, aby vytvořily distribuci znázorněnou na obrázku níže.

Poté bylo spuštěno dalších 150 nových vektorů. To vedlo k vytvoření nové sférické třídy, naznačené na obrázku níže:

Navzdory prostorové blízkosti zelených a purpurových shluků algoritmus zaznamenal nárůst shluků a přizpůsobil se těmto změnám. V tomto případě bylo zbývajících 120 objektů opakovaně zamícháno mezi zelenými a purpurovými shluky. Algoritmus následně distribuoval data mezi dva shluky a zachoval původní počet shluků.

Poznámky

  1. Slovník Neural.ru . Datum přístupu: 15. června 2012. Archivováno z originálu 24. července 2012.
  2. Implementace rostoucího neurálního plynu v programovacím jazyce MQL5 . Získáno 15. června 2012. Archivováno z originálu 16. června 2012.
  3. 1 2 3 Isaac J. Sledge, Growing Neural Gas for Temporal Clustering/IEEE, 2008
  4. M. Berg, M. Kreveld, M. Overmars, O. Schwarzkopf, Computational Geometry, Springer-Verlag, New York, 2000.
  5. G. Carpenter, "Competitive Learning: From Interactive Activation to Adaptive Resonance", Cognitive Science, sv. 11, 1987.
  6. L. Khachiyan, M. Todd, "O složitosti aproximace maximálního vepsaného elipsoidu pro polytop", Math. Prog., 1993.
  7. J. Keller, I. Sledge, "A Cluster By Any Other Name", IEEE Proc., NAFIPS, 2007.

Viz také

  1. T. Martinetz, Neural Gas Network for Vector Organization a její aplikace na predikci časových řad/IEEE, sv. 4, 1993
  2. T. Martinetz, Neural Gas Network se učí topologie.