Bevezető: Az irányítástechnikában egyre gyakoribb, hogy a folyamat optimalizálása érdekében az értéktartó és követő szabályozásokon túlmutató módszereket használunk. Ezeket összefoglaló néven advanced control-nak nevezzük. Ezen eszközök ma már minden korszerű folyamatirányító rendszerben kontrollerszinten rendelkezésre állnak, vagy ha nem, vannak rendszerfüggetlen neurális háló szoftverek, melyek hibatűrő PC-n futtathatóak és OPC-n, vagy egy Modbus kapcsolaton integrálhatók a gyengébb, öregebb vagy olcsóbb folyamatirányító rendszerekbe. Az advanced control módszerek széleskörű elterjedését gátolja, hogy alkalmazásukhoz alapos technológiai és irányítástechnikai tudásra van szükség, valamint hogy egy advanced control elkészítése igen időigényes, az elérhető profit viszont előre nem mindig számítható, garantálható, ezáltal a project nem biztos hogy zöld lámpát kap... Ilyen advanced control eszköz a már ismertetett fuzzy logic, vagy a most áttekintendő neurális háló is.
Hol használják?
Az élet számtalan területén találkozhatunk vele: Brókerek becsültetik vele az egyes politikai események tőzsdére gyakorolt hatását (nem vicc...), a gyártásautomatizálásban alakfelismerést végeztetnek vele, és a korszerű robbanóanyag- és kábítószer detektorok is ezt alkalmazzák. Általában a feladat az alábbi kategóriák egyikébe esik:
- Becslés
- Osztályozás
- Elemzés
- Szűrés
A mi szakmánkban egy jellemző alkalmazás a soft-senzor azaz egy olyan tulajdonság számítása és szabályozása, melyre nem lehet egyszerű mérést tenni. Ilyen az iparban rengeteg akad: Illat, melt-index, íz, fajlagos önköltség, stb...
Mi a neurális háló?
Az agyunk idegsejtek hálózataként működik. Az egyes sejtek feladata viszonylag könnyen leírható, a nagyszámú idegsejt (neuron) együttes működése viszont igen bonyolult feladatokat is képes megoldani. Ezt az architektúrát technikai eszközökkel leképezve egy jól használható matematikai-fizikai eszközt kapunk.
A neuron:
Az idegsejt egy specializálódott sejt, melynek három fő része van, mint az a jobboldali ábrán látható. A sejt a dendrit-nek nevezett nyúlványaival fogja fel a külvilág, vagy a többi neuron jeleit, a sejtmagban végrehajt egy elektrokémiai számítási műveletet, majd az axon nevű nyúlványa a kémiai végeredményt elektromossá alakítja és továbbítja a fizikai kimenetre, mondjuk egy izom felé. A többi idegsejtek nem az axonról veszik le a kimenetet, hanem szinapszisoknak nevezett konnektorokon keresztül közvetlenül a sejtmagról. (Megspórol egy csomó átalakítót...) A dolgok bonyolultságának érzékeltetésére: Az agyunk több billió(milliószor millió) idegsejtből áll és egy idegsejt akár 200.000 másikhoz is közvetlenül kapcsolódhat. (Hogy a feldolgozási sebességgel a T. felhasználó elégedett legyen, az agy nem alkalmaz buszokat az információ továbbításra, hanem mindent mindennel fizikailag összedrótoz, mint egy relészekrény.)
A technikai leképezés:
A neuron működését az alsó ábra szerinti "számítóművel" utánozhatjuk. A napjainkban használt neurális hálók "neuronjai" jóval egyszerűbbek mint a biológiaiak, és sokkal kevesebb is van belőlük. A számítómű minden egyes bemenetét szorozza egy-egy konstanssal (súlyozás), a szorzatokat összegzi, az összeget egy "karakterisztika" függvénnyel transzponálja a kimeneti tartományba, majd kiadja.
Szőjünk hálót! Az agy idegsejtek 3d-s hálója, tele visszacsatolásokkal. A technikai modell ennek szegényes, lebutított mása, ahol a 3d-s struktúrát 2d-s mátrix-ok (rétegek) egymásra helyezésével képezzük le (alsó ábra). A rétegek közötti információátadás is többnyire egyirányú (Input, feldolgozás(1),… feldolgozás(n), output). Visszacsatolás igen ritka, mert nagyon megbonyolítja a dolgot. A gyakorlatban alkalmazott neurális hálók általában kevesebb mint 10 réteget alkalmaznak. Van még mit tanulnunk a természettől!
A tervezés: Erre a feladatra kész szoftverek vannak, ezek megtervezik, betanítják és a kontrollerbe töltik a kész neurális hálót, mintha az egy sima szabályozókör lenne. A bonyolultság miatt ennek memória- és processzorigénye igen nagy! Az is elképzelhető, hogy abban a kontrollerben, melyben a neurális háló fut, más nem is lesz! (Ez még mindig jobb, mint a régi idők zenéje, mikor egy neurális háló futtatásához egy családi ház áráért UNIX munkaállomást kellett venni. - Supervisory station.) Mi most csupán a dolog általános elvi működését tekintjük át:
A rétegek száma: Mindenképpen szükségünk lesz egy bemeneti- és egy kimeneti rétegre, valamint közöttük egy feldolgozó rétegre. Ha az eredmény nem kielégítő, először a rétegben levő neuronok számát szokás növelni, a rétegek számát csak akkor, ha minden kötél szakad.
A bemeneti réteg neuronjainak száma: Egy neuronnnak egy karakterisztika függvénye van. Ha az input paramétereknek a kimenetre gyakorolt hatása azonos jellegű, csupán erejük más, elég lenne egyetlen neuron. Ez általában nem áll, így azután szépen szét kell válogatni az inputokat olyan csoportokba, melyek minden tagja azonosan hat a kimenetekre (pl. exponenciálisan).
A közbenső réteg neuronjainak száma: A folyamat bonyolultsága szabja meg, komoly irodalma van a méretezésnek. Ezt majd a szoftver megoldja...
A kimeneti réteg neuronjainak száma: Annyi, mint a fizikai kimenetek száma.
Összeköttetések: Kisebb alkalmazásokban minden neuron össze van kötve az azonos rétegen levő összes többivel. Nagy rendszerekben már optimalizálni kell. Az eddig elmondottakból látható, hogy nem elég megvenni egy neurális háló generáló szakértői rendszert, érteni is kell a dologhoz. (Meg a technológiához is...)
Vezérlés: Az input- és output réteg vezérlése egyszerű:Beolvas-kiszámol-kiad. A közbenső rétegek bonyolultabbak: A beolvasás után csinálni kell több "kiszámol" ciklust, mivel egymás kimeneteit bemenetként olvassák. Általában vagy fix számú "kiszámol" ciklust csinálnak, vagy addig számol a réteg, míg egy adott feltétel nem teljesül.
Betanítás: Igen bonyolult lenne a neurális hálót kézzel megtervezni, a neuronok, rétegek, összeköttetések számát meghatározni, az együtthatókat kiszámítani, stb., ezt - a betanításnak nevezett lépést - a szoftvernek kell megcsinálni.
A gyakorlat három betanítási módot ismer:
1. Munka útján való tanítás: A neurális háló közbenső rétegei maguk szerveződnek (a szoftver szervezi az egészet) oly módon, hogy nem a háló kimeneteit figyeli, hanem a folyamat válaszait, azaz a bemenő jeleket.
2. Mintakereső tanítás: A szoftver a közbenső réteget véletlenszerűen elrendezi, paraméterezi, majd az eredményt egy előre megadott eredményhez hasonlítja. Addig finomítja a közbenső rétegeket, míg az általa generált eredmény az előre megadott "minta eredményt" adott pontossággal meg nem közelíti. Érdekesség, hogy az sem jó, ha a hálót "túltanítottuk". Ekkor ugyanis a technológián előzőleg megmért és összegyűjtött mintában szükségszerűen jelenlevő hibákat is megtanulja és elő is állítja...
A fenti két eljárás elég lassú és véletlenszerű elemeket is tartalmaz, ezért nem mindig szül optimális eredményt.
3. Hibaközléses tanítás: Ez a második módszernek a továbbfejlesztése oly módon, hogy a szoftver - mint a jó tanár - megmondja a hálónak, hogy melyik részen hibázik. Nyilvánvaló, hogy erre csak igen intelligens szakértői rendszerek képesek. Az eredmény sokkal gyorsabb és jobb, nyilván az ár magasabb...
Az ismertetett módszerek folyhatnak offline (mikor előzetesen gyűjtött adatokkal tápláljuk a hálónkat), és online, (amikor realtime mért értékekkel dolgozunk). Az ipari technológiák többnyire nem engedik meg az online kísérletezgetést, így többnyire az offline marad számunkra az egyetlen út.
Tanulási törvények: A tanulás mint matematikai folyamat nem túl egyszerű. A neurális hálókkal foglalkozó szakemberek alkottak néhány "ökölszabályt", melyek hasznunkra lehetnek, ha a szoftver által generált hálót finomítani szeretnénk (Csak profiknak!): Ilyenek a Hebb-szabály, Hopfield szabály, a Delta-törvény, a Kohonen szabály. A részletek után érdeklődők eredményesen használhatják az Internet-et ezek ingyenes letöltésére.
Előre magyarok! A neurális hálókkal Magyarországon is több egyetemünkön, komolyan foglalkoznak. Az iparban is számos helyen alkalmaznak magyar fejlesztésű neurális hálókat. A folyamat azonban még messze van lehetőségeinek határától. Hasznos lenne, ha mind az ipari, mind a tudományos szféra szakemberei komolyabban is elkezdenék építeni kapcsolataikat. A PID.hu szívesen ad helyt ilyen célú publikációknak is.