Co je to neuronová síť GMDH?
GMDH síť / filtr je algoritmus patřící do oblasti číslicového zpracování signálů typu neuronová síť. Patří trochu k netypickým neuronovým sítím, protože se tak chová pouze při učení sítě, kdy dochází k adaptaci na druh signálů, které má později filtrovat. Po naučení již se GMDH chová jako filtr pevné struktury s pevně danými koeficienty. Právě nastavená struktura i koeficienty jsou výsledkem předchozího učení. To probíhá metodou učení s učitelem, kdy je nutné síti předkládat jak druh filtrovaného signálu, tak i ideální výstup.
K čemu to je ?
GMDH síť je vhodná pro filtrování všech signálů, které mají nějakou společnou vlastnost, na kterou je možné síť naučit. Nejvhodnější je pro filtraci úzkopásmových stacionárních signálů nebo rušení.
Například:
- Filtrace rušících harmonických signálů o neznámých frekvencích
- Filtrace slabého šumu z užitečného signálu
Z obecného praktického použití lze jmenovat:
- Náhrada adaptivního FIR filtru vysokého řádu
- Odstranění sinusových rušících signálů na indukovaných ve vedení od senzoru
- Automatické zjištění a dorovnání útlumu některých frekvencí způsobené vedením
- Odstranění síťového rušení 50Hz z přenášeného signálu
- Odstranění hluku nahraného společně se zvukem
Na jakém principu GMDH síť pracuje ?
Základem je adaptování GMDH sítě, resp. filtru, v závislosti na neznámém rušení, které chceme odstranit. V případě porovnání s jiným filtrem, například s adaptivním FIR filtrem s LMS, je tedy princip trošku složitější. Celou fázi práce filtru lze rozdělit do dvou částí:
- Učící a testovací fáze filtru - nastavení koeficientů a adaptivní
tvoření struktury filtru z předkládaných zarušených signálů, tzv. učících
a testovacích signálů.
- Pracovní fáze filtru - filtrace libovolného signálu s rušením, na které byla předtím síť (filtr) naučena. Struktura filtru i jeho koeficienty se již nemění (jsou pevné) a struktura se tak chová jako pevný filtr
Hlavní rozdíl proti jiným metodám je adaptivní změna struktury samotného filtru během fáze učení tak, aby filtr co nejlépe postihoval chybový rušící signál, který má být odstraněn ze signálu užitečného.
STRUKTURA GMDH sítě
Samotná výsledná struktura se tvoří během fáze učení a testování. Výsledná struktura naučeného sítě, která pak již tvoří pevný filtr může například vypadat jako na obrázku 1, kde X jsou vstupy a y je výstup.
Struktura je složená z tzv. aktivních neuronů - výkonný prvek (modré prvky v obrázku 1.) a pasivních neuronů - transportní prvek (černé prvky v obrázku 1.). Pasivní neurony se vyskytují jen v tzv. vstupní vrstvě a fyzicky jsou vlastně tvořeny jen paměťovými místy (buffer) v paměti CPU. Jejich počet určuje šířku (velikost) filtru. V dalších vrstvách se vyskytují jen aktivní neurony (viz. obrázek 2.), jejichž počet je závislý buď na programátorovy nebo na učícím algoritmu, který sám zvolí potřebný počet vrstev i počet neuronu v každé z nich.
Obr. 2. Blokové schéma aktivního neuronu a jeho rovnice výstupu
Každý aktivní neuron realizuje kvadratický polynom s výstupem y (pozn. k určuje pořadí neuronu ve vrstvě) určeným vstupy i a j a rovnicí na obrázku 2. Cílem učícího algoritmu je najít hodnoty koeficientů a až f tohoto polynomu. K tomu je potřeba použít sadu 6 hodnot vstupů (i a j) ze vstupního zarušeného signálu a k tomu odpovídající 6 výstupů y čistého užitečného signálu bez rušení. K učení je tedy nutné mít dvojce zarušených vstupů a čistých výstupů stejného užitečného signálu na něž se filtr tzv. naučí.
Princip a postup učení GMDH sítě na zarušený signál
Cíl je tedy vytvoření takového GMDH filtru, který pak bude při praktickém využívání odstraňovat dané rušení (harmonické, šum nebo jiné). Samotný postup učení sítě, kterým cíl dosáhneme se dá popsat několika kroky. Já jej ukážu na praktické ukázce vytvoření filtru pro odstranění šumu ze signálu zpracovávaného v čase, tzn. přímo jednotlivé vzorky se přímo nebo s časovým zpožděním přivádějí na vstup GMDH sítě. V mém případě jde o 4 následující vzorky například z A/D převodníku (viz. obrázek 4.).
Postup (kroky) učení:
|
Obr. 4. Výsledná struktura GMDH filtru, kde z konečný výstup 3-vrství struktury je y3[n], ale zároveň lze v případě potřeby použít i výstupy z předchozích vrstev y1[n] a y2[n].
Příklady výsledků z testování
V následujících řádcích ukážu některé dosažené výsledky GMDH filtru struktury podobné té na obrázku 4.
Rušení neznámím sinusovým signálem
Na následujícím obrázku 5. jsou výsledky získané filtrací zarušeného užitečného signálu proměnného v čase sinusovým signálem o neznámé frekvenci. Struktura má však 10 vstupních hodnot, resp. ve vstupní vrtsvě je 10 prvků. Užitečný čistý signál (Reference signal) má průběh uvedený v pořadí 3. (nespodnějším) průběhem na obrázku 5. Zarušený signál (Input signal - směs čistého užitečného signálu a sinusovky), zobrazen úplně horním 1. průběhem na obr. 5., je přiveden na vstup naučené GMDH sítě, přefiltrován a výstupní signál (Output signal) je zobrazen jako 2. průběh. Je tedy možné porovnat téměř shodu výstupního signálu a referenčního čistého. Pouze v okolí skokové změny průběhu užitečného signálu je oba průběhy lehce liší.
Obr. 5. Výsledky získané použitím naučeného GMDH filtru na rušení sinusovým signálem neznámé frekvence - průběh signálu v čase (vlevo) a spektrogram (vpravo)
Zvukový signál rušený šumem
Též jsem provedl složitější test a to filtraci řečového signálu (nahraná řeč) smíchaná s hlukem jedoucího automobilu. Struktura přesně odpovídá té na obrázku 4. Průběhy signálů a výsledek je zobrazen na obrázku 6. stejným způsobem, jak je tomu na obrázku 4. Vstupní zašuměný signál má SNR = 5 dB. Výstupní signál z naučeného filtru (prostřední průběhy obrázku 5.) se tentokrát dost liší od ideálního čistého průběhu (spodní průběh). Filtrace je příliš silná a s odstraněním šumu se odstraní a některé složky řeči. Samotný GMDH síť/filtr není tedy příliš vhodný pro filtraci a odstranění tak složitého a silného rušení z řeči, jako v uvedeném případě.
Obr. 6. Výsledky získané použitím naučeného GMDH filtru na směs řeči a hluku - průběh signálu v čase (vlevo) a spektrogram (vpravo)
Závěr
V tomto článku jsem se pokusil zjednodušeně přiblížit princip a funkci GMDH neuronové sítě. Protože se nejedná o typickou neuronovou síť, jak se obvykle v literatuře a časopisech prezentuje na síti typu perceptron, její funkce a vhodnost použití se trochu liší. Obecně s neuronovými sítěmi typu perceptron má společný princip učení - učení s učitelem, naopak rozdílná je struktura, která se vytváří během samotného učení narozdíl od jiných typů neuronových sítí, jejichž velikost a strukturu je nutné pevně stanovit již před učením. Naučená struktura se pak dále používá celá narozdíl od GMDH, kde se využívají jen některé prvky (neurony) a spoje. To snižuje náročnost implementace na procesorech. Z hlediska použití se hodí pro aplikace, kde by sice šlo použít adaptivní filtr, ale s nejistými nebo horšími výsledky.
Antonín Vojáček