A mesterséges intelligencia az elmúlt évben került a reflektorfénybe és nagyon elszaporodtak a különböző, akár laikus felhasználók által is alkalmazható megoldások. Azonban ezek többnyire csak az AI felszínét kapargatják, jóval összetettebb és sokoldalúbb lehet a technológia alkalmazása, mint amire ezek a programok képesek. Mostani cikkünkben ezt fogjuk körbejárni.
A mesterséges intelligencia az elmúlt évben került a reflektorfénybe és nagyon elszaporodtak a különböző, akár laikus felhasználók által is alkalmazható megoldások. Azonban ezek többnyire csak az AI felszínét kapargatják, jóval összetettebb és sokoldalúbb lehet a technológia alkalmazása, mint amire ezek a programok képesek. Mostani cikkünkben ezt fogjuk körbejárni.
Sokat hallunk az elmúlt években az AI térnyeréséről és egyre szélesebb alkalmazásáról, aminek köszönhetően egy mágikus technológia képe kezd kialakulni mindenkiben. A valóságban nagyon leegyszerűsítve arról van szó, hogy a mesterséges intelligencia egy szofisztikált problémamegoldási modell. Lehetővé teszi a technológia számára, hogy érzékelje környezetét, feldolgozza, amit észlel és ezek alapján problémákat oldjon meg.
Matematikai és a logikai módszerek használatával képezi le a valóságot és hoz meg intelligensnek tűnő döntéseket. Ahhoz, hogy minél valósághűbb döntéseket és válaszokat hozzon meg, folyamatosan “tanul”, aminek köszönhetően specializált folyamatok ellátására is betanítható. A számítógépes rendszer szimulálni képes azt az érvelési eljárást, amelyet az emberek is használnak, amikor új információk alapján tanulnak és döntenek.
A mesterséges intelligenciának három fő irányát különböztetjük meg:
Felügyelt tanulás (supervised learning):
Ebben az esetben sok adat áll rendelkezésünkre és ennek köszönhetően könnyebb hozzárendelni a példa elemeket (inputok) a megoldásokhoz (címkék). Adott input-címke rendezett párok halmaza, ahol a feladatunk, hogy a példa megvizsgálása után, egy nem látott input esetén is meg tudjuk becsülni a címkét.
Például: Megállapítani, hogy milyen állat van egy képen, vagy megbecsülni valakinek a hiteltörlesztő képességét.
Felügyeletlen tanulás (unsupervised learning):
A felügyeletlen tanulást, akkor alkalmazzuk, amikor nem áll rendelkezésre felcímkézett (társított) input-címke párok halmaza. Vannak problémáink (input), de ezekhez nincsenek hozzárendelve a megoldások (címke). Ilyenkor lehetséges az adatok manuális címkézése, de ez sokszor nagyon idő- és költségigényes folyamat. Erre megoldásként írunk olyan algoritmust, ami el tudja magának választani a potenciális megoldásokat az értelmezési tartományon belül.
Például: Klaszterezés - Röntgenadatokon tumorok keresése vagy vásárlói szokások felderítése.
Megerősítéses tanulás (reinforcement learning):
A megerősítéses tanulás egy nagyon más filozófiával él, mint az előző kettő. Input-címke párok helyett úgynevezett ágens-akció párok halmazát vizsgáljuk. Van egy ágens (egy aktor, mint például egy robotporszívó), amihez hozzá vannak rendelve akciók, mint például előre definiált mozgásminták (előre-hátra-jobbra-balra). Ekkor megpróbáljuk a szoftvert betanítani valamilyen intelligensnek tűnő viselkedésre, azáltal, hogy különböző megerősítéseket adunk „útközben”. A mesterséges intelligenciának ezen ága azonban még nincs teljesen kiforrva, sok vele a megoldatlan probléma, mint például hosszú távú stratégiák megtanítása vagy nem definiált viselkedések betanulása.
Példák: Bármilyen játék botjai, robotporszívó, önvezető autó.
Az AI fő problémái és a neurális háló, mint megoldás
A mesterséges intelligencia sok folyamatban segítségünkre lehet, azonban nem nyújt megoldást mindenre. Például, ha nagy mennyiségű adat áll rendelkezésre, azonban ezek nincsenek felcímkézve vagy túlságosan hasonló az input, akkor a mesterséges intelligencia nem tudja megfelelően feldolgozni azokat.
Ezen problémák azonban ismertek és ezáltal a megoldásukra is különböző módszerek léteznek. Ilyenek például a fák (tree-based methods), statisztikai módszerek (például Bayesi módszerek), de messze a leghíresebb az ilyen feladatok megoldására a neurális háló, mint architektúra.
A mesterséges neurális háló egy olyan eszköz, amelyhez a biológiából vettek ihletet. Neuronokból áll, amiket itt kis számítási egységekként definiálhatunk. Egy-egy neuron a bemenetei alapján az aktivációs függvény segítségével eldönti, hogy továbbít-e egy jelet. Ha továbbítja, akkor tovább küldi a jelet a következő neuronnak a következő rétegbe. A háló neuronjait rétegekbe szervezzük (bemeneti/rejtett/kimeneti rétegek), aminek segítségével szekvencialitást tudunk definiálni egy ilyen architektúrába. A bemeneti rétegen adjuk be az adatokat a neurális hálónak, a kimeneti rétegen pedig megkapjuk a háló eredményeit. A rejtett rétegeken pedig súlyokat tanulunk, amik olyan értékek, amiknek a segítségével működik az aktivációs függvény. Aki statisztikában jártas azok számára a primitívebb neurális hálókat úgy is fel lehet fogni, mint speciális regresszióhoz hasonló műveletek kompozícióját.
A neurális háló fő feladata a belső súlyok megtanulása. A helyes súlyok megtanulása a probléma megoldását jelenti. Egy háló úgy tanulja a súlyokat, hogy a költségfüggvényt minimalizálja minden pontban és eltárolja a hálóban az értékeket. A költségfüggvény egy nagyon fontos része a folyamatnak. Itt tudjuk specifikálni, hogy mit szeretnénk: például szeretném, hogy az eredményem legyen minél közelebb a várható eredményhez, ekkor legyen egy primitív súly függvény: y = |E(x) - x| függvény, amit szeretnénk valahogyan minimalizálni. Mivel a számítógép numerikusan számol (nem analitikusan), így a megoldási elvnek a Gradiens módszert használja egy minimalizálási problémára. Ha az a probléma, hogy egy hegyen állok, és szeretnék eljutni az ország legmélyebb pontjára, azt úgy tudom megtenni, ha sokszor lépek, mindig a legmeredekebb irányba lefelé. Dióhéjban ehhez hasonló elvet valósít meg a Gradiens módszer. A deriválás műveletéről szól, ami az adott hiperfelület „meredekséget” jellemzi. A deriválást, mint matematikai műveletet pedig fel lehet bontani a láncszabály segítségével triviális műveletekre, így lépésenként tudja a számítógép kiértékelni. A deriválási részeredményeket pedig visszaterjesztjük aszámítási gráfban. Ezt a módszert backpropagation algoritmusnak nevezzük, és ez áll a súlyok tanulásának a középpontjában.
Azonban amikor a hegyről lefelé haladunk (minimalizálunk), nem mindegy, hogy hogyan tesszük azt.
- Mekkora lépéseket teszek? (Mi van, ha átlépek a „völgy felett”).
- Mi van, ha kisebb „gödörbe” kerültem, és körülöttem minden pont magasabban van annál, mint amit látok? Noha amit nem látok, hogy a gödrön túl ott van a völgy, amit keresek. (lokális minimum, momentum).
- Mi van, ha furcsa alakú a hegy, amin állok, és sokat kell oldalra szlalomozni ahhoz, hogy lejöjjek róla? Nem mindegy milyen sokáig tart. (feature scaling).
- Biztos, hogy minden lépésnél teljesen körbe kell néznem? Nem fog a sok bámészkodás sok időt elvenni? (De igen, ezért használatos a SGD módszer).
A lépés nagyságát az úgynevezett learning rate-el (alpha) jellemezzük, míg a többi problémára a Gradiens módszer modifikált változatai tudnak megoldást adni. (például RMSProp, adam, nadam).
Mesterséges intelligencia az IBT-ben
A mesterséges intelligencia alkalmazásának igénye egyre több folyamatban és ezáltal projektben jelenik meg. Ebből kifolyólag ez nekünk is egy kiemelt terület, ami azt is jelenti, hogy az IBT csapatát is több iparági szakember erősíti, hogy a legfejlettebb és sokrétűbb módon tudjuk kihasználni az AI-ban rejlő lehetőségeket. Jelenleg két folyamatban lévő projektünk van, amiben AI modelleket használunk, fejlesztünk és már túlvagyunk egy sikeres projektzáráson is. A projektjeinkhez többnyire a felügyelt tanulás módszerét használjuk, aminek segítségével egészségügyi adatokat, genetikai adatsorokat elemzünk neurális hálókkal, így egy komplex és fejlett ajánlórendszert építünk. Emellett a statikus elemzésekhez is használunk mélytanulásos módszereket. Ezekben a feladatokban az AI, mint kulcsfontosságú predikciós és klasszifikációs eszköz jelenik meg, azaz ennek segítségével állítjuk elő azokat az értéket hordozó adatokat, amelyeket később be tudunk integrálni nagyobb rendszerekbe. Természetesen ezeknek a hálóknak a fejlesztéséhez rendkívül nagy adathalmazokra van szükségünk, melyeket rendszerint partnereink biztosítanak számunkra.
A mesterséges intelligencia alkalmazásának és folyamatokba való hatékony integrálásának még csak a felszínét kapargatjuk. Ahhoz, hogy egy cég kihasználja a technológiában rejlő potenciált, fundamentális változásokat kell eszközölni a meglévő folyamataikban, ami egy idő- és erőforrásigényes folyamat. Azonban, aki időben elkezdi, olyan piaci előnyre tehet szert, ami bőven felülmúlja a befektetett energiát. Ha szeretnétek Ti is felmérni hogyan tudjátok kihasználni az AI-ban rejlő lehetőségeket és integrálni a folyamataitokba, akkor keressetek minket az info@ibtconsulting.hu e-mail címen!