A mesterséges neurális hálózatok napjaink egyik leggyakrabban használt gépi tanulás algoritmusa. Gyakorlatilag minden probléma megoldására lehet használni, beszéljünk gépi látás, nyelvfeldolgozás, vagy akár önvezető autók témaköréről. Különösen sok esetben használatos a mély tanulás, komplex vagy sok adatot tartalmazó összefüggések értelmezésére.
A neurális hálózatokat, alkalmazási módszereit 3 cikkben szeretném bemutatni: elsőként az intuíció és a felhasználás alapvető fogalmait, kérdésköreit tisztázzuk. A második cikkben a hálózatok típusairól, és elrendezési lehetőségeit fogom bemutatni. Legvégül egy esettanulmányban, valódi adatok alapján fogunk előrejelzéseket készíteni neurális hálózatok segítségével.
Intuíció a neurális hálózatok mögött
Ha a neurális jelzőt olvassuk, az első dolog ami az eszünkbe jut az nem más, mint az agyban található neuronok. Ezek az egységek és a belőlük felépülő hálózatok felelősek az agy döntéshozatali funkciójáért. Az egyik legnagyobb különbség az ember és a robot vagy számítógépes program között, hogy az emberi agy önmagától képes felismerni, analizálni és tanulni a környezetében tapasztalható ingerekből.

Egy számítógépes program ezzel szemben megadott utasításokat követ és a végrehajtás visszajelzéseiből nem fejleszti önmagát. Ahogy egy korábbi cikkben is bemutattam, mesterséges intelligencia és gépi tanulás módszerekkel a statikus programkódok is alkalmasak lehetnek a környezet változásával bekövetkező események kezelésére.
A gépi tanulás és azon belül a neurális hálózatok módszertan képes tanulási fázisban önmaga fejlesztésére, ezáltal pontosabb becslési hatékonyság megvalósítására. Amikor az információ keresztül halad a neurális hálózaton, a rendszer érzékeli az elvárt és tényleges kimeneti adatok között az eltérést, így változtatja a paramétereit. Minél több adat halad keresztül a hálózaton, annál pontosabb becslést biztosít a rendszer. Ezt nevezik a tanulás folyamatának.
Tulajdonképpen a mesterséges neurális hálózatokat nem lineáris statisztikai adatmodellezéshez használhatjuk, ahol komplex kapcsolat és összefüggés létezik a bemenet és a kimenet között.
Megértés esetpéldája
Tegyük fel, hogy egy ingatlan árát szeretnénk meghatározni 4 paraméter segítségével: méret, szobák száma, ingatlan állapota, fűtés típusa.

Legegyszerűbb esetben mondhatjuk azt, hogy minél nagyobb az ingatlan annál többet ér, minél több szoba van annál magasabb az ára és így tovább. Azonban ha a lineáris összefüggéseken túl, további kapcsolatokat is keresünk, nem elégséges a fenti struktúra alkalmazása.
Nézzük meg három különböző, 50 négyzetméter alapterületű lakás esetén az árak alakulását:
Paraméter / Lakás | Lakás 1 | Lakás 2 | Lakás 3 |
Méret (négyzetméter) | 50 | 50 | 50 |
Szobák száma (db) | 1 | 2 | 3 |
Ár (millió forint) | 8 | 12 | 10 |
Látható, hogy egy azonos méretű lakás esetén a példában a szobák száma nem lineárisan befolyásolja az ingatlan értékét. Egyszerűen elképzelhető, hogy egy 1 szobás lakásban túl nagy a tér, nehéz azt hasznosítani, míg egy 3 szobás lakásban pedig túlzottan kis méretűek a helységek. Így egy bizonyos lakásvásárló szempontjából a 2 szobás eset az ideális, amiért a legtöbb pénzt fizeti.

Amikor a megadott paraméterek, bemenetek közötti összefüggést is vizsgáljuk, már nem lineáris esetről beszélünk. Így lehet modellezni, hogyan befolyásolja két különböző paraméter egymásra gyakorolt hatása (esetünkben aránya), a kimeneti változót. A neurális hálózatok is hasonló felépítéssel rendelkeznek, mint ahogy a fenti ábrázolás mutatja.
Továbblépve, ha nagyon sok paraméter esetén, nem elégséges a páronkénti összefüggés vizsgálata, a neurális hálózatokba még több réteget is beépíthetünk.

Összefüggés az ingatlan paraméterei és ára között mély tanuláshoz hasonló összefüggések alapján.
Ebben az esetben akár a méret-szobák száma valamint az ingatlan állapot-fűtés típusa paraméterek közötti apró változások hatását is figyelemmel lehet követni. Ezt a struktúrát mély tanulásnak nevezik.
A mély tanulás olyan speciális megközelítés, amelyet a valós ideghálózatok leképezésére találtak ki. A neurális hálózat mélynek nevezhető, ha a bemeneti adatokat több nem lineáris transzformáció segítségével alakítják kimenetté.

Egyszerű és mély tanuló neurális hálózatok topológiai összehasonlítása. Forrás: Medim.
A példa alapján válik a legegyszerűbb módon láthatóvá, hogy neruális hálózatok esetén nem csak egyértelmű, jól értelmezhető összefüggéseket keresünk. Az emberi viselkedés, vagy döntéshozatal megfelelő modellezése esetén a legfontosabb tényezők, az előre nem látható összefüggések felderítése és alkalmazása.
Neurális hálózatok elemei
A neurális hálózatokat két fő elem alkotja: csomópontok és kapcsolatok. Az egyes csomópontok halmaza építi fel a hálózat rétegeit.
A csomópont egy olyan hely, ahol matematikai művelet történik meg, hasonlóan az emberi agyban található neuronok esetében. A csomópont az előző kapcsolat alapján történő adat bevitelét egyesíti egy olyan együtthatóval, vagy súllyal, amely a csomópont szempontjából erősíti vagy csillapítja az adott bemenetet.

Így lehetséges az egyes paraméterek fontosságát meghatározni a tanuló algoritmus szempontjából, azaz hogy mely bemenetek a leghasznosabbak adott csomópont esetén a hibamentes kimenet becsléséhez.
Az egy csomópontba érkező bemeneteket összegezzük, majd az összeget egy aktivációs függvény segítségével dolgozzuk fel. Az aktivációs függvény segít meghatározni, hogy egy adott jel továbbhaladjon e a hálózaton vagy sem, ezáltal hogyan befolyásolja a végső kimenetet.
Ha a jelek továbbhaladnak az adott csomóponton vagy neuronon, az adott neuront aktívnak nevezzük.
Az elején említettek alapján, hálózatban egy szinten lévő neuronok alakítják ki a rétegeket a rétegek összessége pedig a neurális hálózatot. Az eredeti bemenetek megfelelően súlyozva érkeznek az első réteghez, ott bizonyos neuronokat aktiválva tovább lépnek a következő rétegekbe.
Ez folytatódik egészen addig, amíg el nem érkezünk a kimenethez (lehet egy vagy több is). A tanulási folyamat során a tanító adatok segítségével, megadott bemenetek segítségével beállítjuk a hálózatban levő súlyokat és aktivációkat úgy, hogy az elvárt és a tényleges kimenet között minél kisebb legyen a különbség. Ezután a neurális hálózat készen áll, hogy valódi, vagy új adatok alapján a bemenetek segítségével meghatározzuk a nem ismert kimeneteket.
Gyakorlati alkalmazásuk
Három fő csoportba lehet sorolni az alkalmazási lehetőségeket, függően attól, hogy milyen alapadatok alapján, milyen a vizsgálat változó.
1. Osztályozás
Minden osztályozási feladat a címkézett adatállomány (pl. kép egy kutyáról, fájl név: kutya.jpg) segítségével történik meg. Az emberi értelem alapján kell strukturálni a neurális hálózatokat, úgy hogy megismerjék a címkék és az adatállomány közötti kapcsolatot. Ezt a folyamatot más néven felügyelt tanításnak is hívják.
Példák lehetnek:
– arcok észlelése, képeken lévő emberek azonosítása, arckifejezések felismerése (öröm, düh),
– képeken lévő objektumok azonosítása,
– gesztusok felismerése videó felvételeken,
– hangok észlelése, emberi beszéd szöveggé átalakítása,
– szöveg vagy e-mail üzenet osztályozás (spam, csalók), üzenet feladó hangulatának felismerése (ügyfél boldog vagy csalódott).
Bármely ember által generált címkézési rendszer, bármely kimenetel ami érdekes lehet vagy korrelál a bemeneti adatokkal felhasználhatóak a neurális hálózat tanítási folyamatához.
2. Klaszterezés
Klaszterezés vagy csoportosítási feladatok során az egyes paraméterek hasonlóságának észlelése a feladat. A mély tanulási módszer nem igényel címkézés használatát a hasonlóságok felfedezéséhez. A címkék nélküli tanítási folyamatot felügyelet nélkülinek nevezik.
Példák lehetnek:
– keresési feladatok (dokumentumok, képek vagy hangok összehasonlítása),
– anomáliák felismerése: rendellenességek vagy szokatlan viselkedés észlelése (sok esetben a szokatlan viselkedés nagymértékben korrelál a detektálandó és megelőzendő tevékenységekkel – csalás, túlterheléses támadás stb.)
3. Prediktív analitika
Osztályozás segítségével a mély tanulási algoritmus képes korrelációt megállapítani a képet alkotó pixelek és a képen szereplő személy között. Ezt statikus előrejelzésnek nevezzük.
Hasonlóképpen megfelelő minőségű és mennyiségű múltbéli adatok alapján lehet kapcsolatot teremteni a jelen és s jövőbeli események között. A jövőbeli esemény bizonyos értelemben olyan, mint egy címke. A mély tanulás nem törődik az idő, mint tényező fontosságával, csak a legvalószínűbb következő értéket adja meg.
Példák lehetnek:
– hardver meghibásodások (adatközpontok, termelés, szállítmányozás),
– egészségügyi problémák előrejelzése (stroke, szívinfarktus előrejelzése statisztikai és hordható eszközök adatai alapján),
– ügyfelek lojalitása (ügyfél kilépési valószínűsége a webes tevékenység és a meta adatok alapján),
Ahogy látható, a múltbéli viselkedés alapján a biztonsággal megjósolható események megjósolhatóak lesznek, így ezáltal megelőzni is könnyebb lesz.
A neurális hálózatok, valamint a prediktív analitika segítségével egy kevésbé meglepő világ felé haladunk. Sosem tudunk olyan rendszereket építeni amelyek teljes egészében megjósolják az ember és természet viselkedését, de a kiszámítható történések biztonságosan kezelhetők lesznek.
A következő részben az aktivációs függvénnyel fogunk foglalkozni, valamint bemutatom milyen neurális hálózat felépítések léteznek a funkcionalitás szempontjából.
Kovács Róbert vagyok, a Mesterin közösség alapítója. Nagy örömömre szolgál, hogy elolvastad a bejegyzésemet, remélem hasznos információkat tudtam átadni. Elsősorban mesterséges intelligenciával és gépi tanulással foglalkozom. Ha tetszett a bejegyzés, kérlek a fenti lehetőségek segítségével oszd meg, hogy minél több emberhez eljuthasson.