Jste zde

GMDH neuronová síť (filtr) pro digitální zpracování signálů

Aby bylo možné některé užitečné signály vůbec zpracovat, je nutné je předtím "předpřipravit", například zbavit nežádoucího rušení. K tomu je možné použít algoritmus GMDH, což je neuronová síť, která se od klasických neuronových sítí liší tím, že dá přirovnat k adaptivnímu filtru. Tím je vhodná pro aplikace vyžadující složitější filtraci, ve kterých se nehodí klasický FIR adaptivní filtr s NLMS algoritmem. Následující článek se snaží GMDH síť jednoduše popsat.

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.

Obr. 1. Příklad naučené struktury GMDH sítě

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 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í:

  1. Zvolení velikosti vstupní vrstvy - tj. počet pasivních transportních prvků = N1 prvků

  2. Vytvoření 1. skryté vrstvy obsahující N*(N-1) / 2 aktivních výkonných prvků sítě a jejich propojení se vstupní vrstvou tak, aby žádná kombinace vstupů se neopakovala (viz. pravá část obrázku)

  3. Z vybraných šesti čtveřic vstupů X1X2 a k nim příslušné hodnoty výstupů y1y6, kterých chceme dosáhnout (tj. vstupní signál je zarušený a výstupní ideální čistý bez rušení), se vypočítají koeficienty af (soustava rovnic dle obrázku 2).

  4. Na vstup se přiloží jiné signály, tzv. testovací, a určí se chyba získaná rozdílem získaných výstupů y1y6 s referenčním ideálně čistým signálem.

  5. Vyberou se a ponechají jen N2 výstupů, které mají nejmenší chybu (rozdíl). V mém případě jsou to prvky onačené čísly 2, 3, 4 a 6 (viz. obrázek 3.).

  6. Pak se již vše opakuje s tím rozdílem, že na vstup další nové vytvořené vrstvy již přivádíme výstupy vrstvy předchozí , tzn. výstupy y2, y3, y4 a y6.

  7. Postup se stále opakuje, dokud se nevytvoří struktura podobná například obrázku 4. Vyvedené výstupy z každé vrstvy (y1 až y3) označují v mém případě výstupy s nejmenší chybou od ideálního výsledku.

 

Obr. 3. Struktura GMDH filtru po kroku učení 4

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

Hodnocení článku: