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.

Az emberi agyban található neuron szerkezete, kiemelve a bemeneteket és a kimeneteket.
Az emberi agyban található neuron szerkezete, kiemelve a bemeneteket és a kimeneteket. Forrás: Wikipedia.

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.

Neurális hálózatok esetén az összefüggés az ingatlan paraméterei és ára között lineáris összefüggés alapján.
Összefüggés az ingatlan paraméterei és ára között lineáris összefüggés alapján.

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ásLakás 1Lakás 2Lakás 3
Méret (négyzetméter)505050
Szobák száma (db)123
Ár (millió forint)81210

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.

Neurális hálózatok esetén az összefüggés az ingatlan paraméterei és ára között nem lineáris kapcsolatok alapján.
Összefüggés az ingatlan paraméterei és ára között nem lineáris kapcsolatok alapján.

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.

Neurális hálózatok esetén az összefüggés az ingatlan paraméterei és ára között mély tanuláshoz hasonló kapcsolatok alapján.

Ö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.

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.

Neurális hálózatok csomópontjának struktúrája.
Neurális hálózatok csomópontjának struktúrája. Forrás.

Í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.