Úvod do umělých neuronových sítí v řídicích aplikacích

Obrázek 1: Základní architektura neuronové sítě. Obrázky použity se souhlasem autora článku Obrázek 1: Základní architektura neuronové sítě. Obrázky použity se souhlasem autora článku

Použití umělých neuronových sítí (Artificial Neural Networks – ANN) pro řídicí systémy, nelineární systémy, simulaci časově optimálních řídicích prvků a pro modely řízených systémů (zařízení) založených na ANN.

Při přečtení nadpisu „Úvod do umělých neuronových sítí v řídicích aplikacích“ si možná položíte otázku, zda má cenu číst více o umělých neuronových sítích (ANN), jež byly úspěšně vyřešeny před desítkami let, zejména s ohledem na tisíce článků o ANN na internetu. (Odpověď zní: „Ano.“ Prosím, pokračujte.)

Když jsem se začal zajímat o ANN, prošel jsem stovky článků o ANN. Jen hrstka z nich mi pomohla pochopit, jak ANN fungují a jak je lze implementovat. Přesto se mi nepodařilo najít žádný článek o tom, jak by se dal řídicí systém využívající ANN realizovat.

Strávil jsem stovky hodin experimentováním s programováním v jazyce Python a simulacemi ANN a řídicích systémů, dokud jsem nebyl spokojen s tím, jak ANN fungují v aplikacích řídicích systémů.

Dnešní profesionálové nemusejí řešit problémy ANN od začátku. Mohou využívat propracované knihovny tříd, funkcí atd., které jsou součástí podpůrných materiálů (knihoven) mnoha programovacích platforem/jazyků. Pokud však potřebujete nejprve pochopit základy ANN pro řídicí systémy, měl by vám pomoci tento článek.

Základy neuronových sítí

Neuronové sítě se snaží napodobit schopnosti lidských a zvířecích mozků. Nejdůležitější z těchto schopností je přizpůsobivost. Moderní počítače sice v mnoha ohledech předčí lidský mozek, ale stále se jedná o „statická“ zařízení, a proto počítače nemohou využít veškerý svůj potenciál. Použití umělých neuronových sítí se snaží zavést funkce mozku do počítače kopírováním chování nervových systémů. Neuronovou síť si můžeme představit jako matematickou funkci, která mapuje danou vstupní množinu na požadovanou výstupní množinu. Neuronové sítě se skládají z následujících komponent:

  • jedna vstupní vrstva – x;
  • jedna nebo více skrytých vrstev;
  • jedna výstupní vrstva – ŷ;
  • soubor vah a zkreslení (bias) mezi jednotlivými vrstvami – W a b;
  • aktivační funkce pro každou skrytou vrstvu – σ.

Obrázek 1 ukazuje architekturu dvouvrstvé neuronové sítě. (Poznámka: Při počítání počtu vrstev v neuronové síti se obvykle vylučuje vstupní vrstva.) Zkreslení (bias) se zobrazují jako další neuron (uzel) na vstupu a ve skryté vrstvě, který má pevnou nenulovou hodnotu (například 1), jež se před přidáním do součtů uzlů další vrstvy upraví (vynásobí) konkrétními hodnotami váhových koeficientů.

Na pravé straně obrázku 1 vidíte jeden takový (j-tý) uzel skryté vrstvy. Nejprve se sečtou všechny signály přicházející ze vstupních (i-tých) uzlů, každý ovlivněný – vynásobený svým váhovým koeficientem. Než součet opustí výstup uzlu, projde aktivační funkcí – omezovačem. Nejoblíbenějším omezovačem je sigmoidní funkce S(x), protože ji lze relativně jednoduše diferencovat:

S(x) = 1 / (1 + e-x)

Podobné uzly jsou použity i ve výstupní vrstvě. Právě jejich vstupní signály přicházejí z uzlů skryté vrstvy.

Správné hodnoty váhových koeficientů určují sílu předpovědí, tj. přesnost, s jakou bude vstupní množina transformována na množinu výstupní. Obrázek 2 ukazuje typické mapování vstupní → výstupní množiny (na levé straně) a způsob, jakým ANN může toto mapování aproximovat lineární funkcí y = W x + b (na pravé straně). Vhodné mapování lze nalézt i bez použití zkreslení (bias) (posunu – offset), ale obecně by přidání zkreslení (posunu) mělo přinést lepší aproximaci. Přidání více skrytých vrstev umožňuje i nelineární mapování.

CTL2202 MAG2 F1 Automation ANNforControls PGalan Fig2 neural network mappingObrázek 2: Vstup – výstup mapování neuronové sítě

Proces jemného doladění váhových koeficientů ze vstupní a skryté vrstvy uzlů se nazývá trénování neuronové sítě. Každá iterace tréninkového procesu se skládá z následujících kroků:

  • výpočet predikovaného výstupu ŷ, proces známý jako feedforward;
  • aktualizace váhových koeficientů, proces známý jako zpětné šíření

Výstup ŷ jednoduché 2vrstvé neuronové sítě se vypočítá takto:

ŷ = ϐ(W2ϐ(W1x + b1) + b2)

Predikovaný výstup ŷ se bude přirozeně lišit od požadovaného výstupu y, alespoň na začátku tréninkového procesu. Jak moc se liší, nám řekne ztrátová funkce. Existuje mnoho dostupných ztrátových funkcí, ale jednoduchá chyba součtu čtverců je dobrou ztrátovou funkcí.

CTL2202 MAG2 F1 Automation ANNforControls PGalan Equation 1

y = požadovaný výstup

Naším cílem při trénování je najít nejlepší sadu vah, která minimalizuje ztrátovou funkci. Matematicky řečeno, musíme najít extrém ztrátové funkce (v našem případě minimum). Taková ztrátová funkce nezávisí pouze na jedné proměnné (x). Může se jednat o vícerozměrnou funkci, jež má složitý tvar s mnoha lokálními minimy. Naším cílem je najít globální minimum ztrátové funkce.

Najděme první odvození chybové funkce součtu čtverců ∂Loss(y,ŷ)/∂W. Naše ztrátová funkce bohužel nezávisí přímo na váhových koeficientech, takže pro její derivovaný výpočet musíme použít následující řetězové pravidlo:

CTL2202 MAG2 F1 Automation ANNforControls PGalan Equation 2

U = (Wx + b)

První parciální derivace dává: 2(y – ŷ)

Druhá parciální derivace dává: ϐ'

Poslední parciální derivace je pouze: x

 

Nakonec získáme ∂Loss(y,ŷ)/∂W = 2(y – ŷ) * ϐ' * x, a to je to, co budeme muset implementovat jako proces zpětného šíření. Výhodou použití sigmoidní funkce je jednoduchá implementace její derivace ϐ’:

ϐ’(u) = ϐ(u)(1 – ϐ(u))

Výše uvedený vzorec popisuje, jak postupovat: Zpětné šíření z výstupu neuronové sítě do skryté vrstvy, která leží před výstupní vrstvou a která je propojena s výstupní vrstvou prostřednictvím vah W2. Stejný postup je třeba znovu použít při přechodu ze skryté vrstvy do vstupní vrstvy, jež je se skrytou vrstvou propojena prostřednictvím vah W1. První člen řetězce při odvození ztrátové funkce ve skryté vrstvě – ∂Loss(h,ĥ)/∂ĥ – bude třeba vypočítat jinak, protože explicitně neznáme požadované hodnoty skryté vrstvy – h. 

Peter Galan je technik řídicího softwaru v důchodu; upravil Mark T. Hoske, obsahový ředitel časopisu Control Engineering, www.controleng.com, CFE Media and Technology, www.cfemedia.com, Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript..

Control Engineering Česko

Control Engineering Česko je přední časopis o průmyslové automatizaci. Je vydáván v licenci amerického Control Engineering, které poskytuje novinky z této oblasti více než 60 let.

www.controlengcesko.com