Hatalmas a média hype a mesterséges intelligencia és gépi tanulás körül. Gyakran még az IT szakembereknek is nehézséget okoz kiigazodni, hogy egyáltalán mi micsoda ebben a témában, mire jó ez az egész, van-e relevanciája a saját cégünknél, és ha igen, akkor hogyan aknázhatók ki a benne rejlő lehetőségek. Érdemes egyáltalán ezzel foglalkozni, vagy ez a terület csak a tech óriások fancy játszótere? A cikkben röviden áttekintjük az alapfogalmakat, és válaszokat keresünk ezekre a kérdésekre.

Megjegyzés: az illusztrációként használt idézetek az NB: LOL című dal szövegéből származnak, látszólag semmi közük a témához... vagy mégis? 😊 Ha végigolvasod a cikket, jutalmul meghallgathatod a dalt!

"...mik ezek a kész lapok?
Ezek a meredek hézagok"

AI

A mesterséges intelligencia (artificial intelligence) egy roppant széles tudományág, melynek célja az emberihez hasonló kognitív képességek (pl. tanulás, problémamegoldás) imitálása számítógépek segítségével. Gyökerei a múlt század közepéig nyúlnak vissza. Az informatika egyik ősatyja, Alan Turing 1950-ben fogalmazta meg a róla elnevezett Turing-tesztet, aminek célja: felismerni, illetve megkülönböztetni a gépi és emberi intelligenciát - ebből fejlődött ki a közkedvelt CAPTCHA 😊 Az AI kutatás újkeletű forradalmát a 21. században a módszertani és technológiai fejlődés tette lehetővé (mesterséges neurális hálók, elosztott számítások, GPU).

Szinte észre sem vesszük, hogy mennyi AI vesz körül minket. Nem csak harci robotokra, drónokra vagy önjáró autókra kell itt gondolni, hanem számos mindennapos dologra, amit szinte természetesnek veszük, például a kép- és beszédfelismerés, chatbotok, személyre szabott hirdetések, vagy akár a Google kereső. Ezt a jelenséget hívják “AI effect”-nek, hogy már csak azt tekintjük igazi intelligenciának, amire a gépek még nem képesek, a “többi” már az életünk része. Ezért nagyjából már az sem kavar fel nagy port, ha egy gép megveri sakkban a világbajnokot.

Az AI-nak rengeteg vetülete van, filozófiai és etikai vonatkozásai is roppant érdekesek és relevánsak, ám a továbbiakban inkább a gyakorlati (főként üzleti) alkalmazására igyekszem fókuszálni.

"Hát mi ez, ha nem retroshock, bébi?!"

ML

A gépi tanulás (machine learning) egy részterület az AI-n belül. A tanulás az élőlényeknek az a képessége, hogy környezetükhöz dinamikusan alkalmazkodjanak. A gépi tanulás ezt a képességet próbálja utánozni. Az ember évezredek óta használ eszközöket, hogy életét megkönnyítse. Ezek az eszközök, szerszámok, gépek eleinte statikus rendszerként működtek. Például egy mechanikus karóra roppant bonyolult szerkezet, de mindig változatlan módon funkcionál, nem veszi figyelembe a környezetében zajló folyamatokat, jelzéseket: ha a rugó fel van húzva (input), akkor mutatja a pontos időt (output).

Ezzel szemben az adaptív rendszerek tulajdonsága, hogy saját működésüket, paramétereiket módosítják a környezetből érkező visszajelzések alapján, annak érdekében, hogy minél jobb, pontosabb vagy hatékonyabb eredményt érjenek el. Alapvetően ez a darwini evolúciós elmélet sarokköve, a számítástechnikában pedig olyan modellek és algoritmusok tervezését jelenti, amelyek önmagukat folyamatosan korrigálják és fejlesztik.

A gyakorlatban a gépi tanulás eszközrendszerét statisztikai és matematikai (főként lineáris algebra, analízis és valószínűségszámítás) adatmodellek adják, amelyeket egy tanuló adathalmaz (training set) segítségével paraméterezünk fel. Módszertanilag három fő ML területet szokás megkülönböztetni:

  • Felügyelt tanulás (supervised learning): ennek során “felcímkézett” adatokat használunk, tehát előre tudjuk, hogy adott inputok esetén milyen outputra számítunk a modelltől. A “betanítás” során a választott algoritmus kalkulál egy eredményhalmazt a tanuló adatokra, amelyet össze tudunk hasonlítani az elvárt eredménnyel. Az eltérés (hiba) nagysága és iránya alapján a modell paramétereit addig finomítjuk, amíg a tanuló adatokon el nem érjük a kívánt pontosságot. Arra számítunk, hogy a betanítás után a modellünk tetszőleges új bemenő adatokból is megfelelő becslést fog adni. Erre a módszerre jellemző példák a beszédfelismerés, képfelismerés, OCR, spam szűrés.
  • Felügyelet nélküli tanulás (unsupervised learning): itt nincsenek címkék, hanem az algoritmustól azt várjuk, hogy összefüggéseket, mintákat találjon az adatok között. Ez többnyire PCA módszerrel (korreláció- és regresszió-analízis) vagy klaszterezéssel történik. Üzleti alkalmazásai közé tartozik például a piackutatás, vásárlói kosarak elemzése, közösségi hálók elemzése.
  • Megerősítéses tanulás (reinforcement learning): ez nem más, mint egy szimulációs folyamat, amelynek során a gép (szoftver ágens) egyes lépéseit, akcióit büntetjük vagy jutalmazzuk, és ezt a visszacsatolást az algoritmus beépíti a döntéshozatalba (policy). A cél a hosszú távú haszon-maximalizálás, emiatt a rövid távon szuboptimális döntéseket nem feltétlenül kell büntetni - és ez jelenti a fő különbséget a felügyelt tanuláshoz képest. Ezt a módszert olyan területeken alkalmazták sikerrel, mint például az AlphaGo (az első számítógép, amely le tudta győzni a legmagasabb szintű Go játékosokat), közlekedési lámpák optimalizálása, vagy személyre szabott ajánlások.

"ezt tízből kilenc brit tudós ha megállapította"

DL

A mélytanulás (deep learning) a gépi tanuláson belül alkalmazott egyik algoritmus, amely a mesterséges neurális hálókon alapul. A működési elvéhez az emberi agyban levő neuronok adták az ötletet. A bemenő paraméterek egy többrétegű, egymással összekötött csomópontokból (node) álló hálózaton futnak végig. Jellemzően mindegyik réteg egy körülhatárolható elemzési lépésért vagy fázisért felelős. Minden egyes node végrehajt valamilyen műveletet a kapott adatokkal, és egy adott küszöbérték átlépése esetén továbbítja azokat a következő rétegnek, míg végül az algoritmus a hálózat végén kidobja az eredményt. A modell betanítása során a küszöbértékek és az egyes node-ok által végzett műveletek tuningolása zajlik. Bonyolultabb hálókban a paraméterek száma akár százmilliós nagyságrendű is lehet, de ezeket az algoritmus az adatokból automatikusan következteti ki.

A mélytanulás segítségével olyan komplex problémák kutatása zajlik, mint amilyen a beszéd- és képfelismerés, gépi fordítás, molekula- és génkutatás, ajánlórendszerek, és pénzügyi csalások szűrése (fraud detection). Ez a módszer rendkívül számításigényes, a modell betanításához gyakran számítógép-hálózatokat és nagy teljesítményű grafikus processzorokat (GPU) használnak.

Az eddigieket összefoglalva, a következő ábra szemlélteti a mesterséges intelligencia, gépi tanulás és mélytanulás közötti összefüggést.

"Hű temperamentum az <ENTER> alól"

Adattudomány és adatkutatók

Ezzel a kis bevezetővel csak a felszínt kapirgáltuk. Talán világossá vált, hogy a gépi tanulás eredményes bevetéséhez alapos háttérismeretek szükségesek a statisztika és matematika területéről. A módszertan használatában rengeteg buktató van, amelyek potenciálisan félrevihetik az elemzést, csak a példa kedvéért ilyenek:

  • a megfelelő modell kiválasztása a sok lehetséges közül,
  • a modell túlillesztése (overfitting),
  • a modellezéskor alkalmazott vagy az adatokban rejtve levő torzítások (bias),
  • vagy a tanuló adatok gyors elévülése.

Emellett minden elemzés és modellezés kiindulópontja az adathalmaz maga, amelynek eredeti minősége, tisztítása, feldolgozási módja és a mögöttes üzleti tartalom megértése befolyásolni fogja a kapott eredményt.

Az adattudomány (data science) az informatika, statisztika és matematika határmezsgyéjéből nőtte ki magát, bár önálló tudományágként még vitatott a státusza. A fókuszában eredetileg nem az AI állt, de magába foglalja az adatbányászat, a gépi tanulás, és a big data módszereit és eszközeit is, valamint az adatelemző és vizualizációs technikákat. A Harvard Business Review cikke szerint az adatkutató (data scientist) a 21. század legszexibb állása, és manapság az egyik legkeresettebb is.

Az adatkutató olyan úttörő szerepet tölthet be egy cégnél, aki újszerű megoldásokat találhat létező üzleti problémákra, a rendelkezésre álló adatok feltáró jellegű vizsgálatával (exploratory data analysis). Ha megfigyeléseit, javaslatait sikerül üzleti szempontból is alkalmazható lépésekre váltani, ez akár disruptive innovációhoz is vezethet, illetve komoly versenyelőnyt eredményezhet.

Igaz, hogy az adat-központú tech óriáscégek, mint a Google, Facebook, Microsoft, Amazon, mérföldekkel a mezőny előtt járnak az AI kutatásában és alkalmazásaiban. Viszont a jó hír, hogy a mesterséges intelligencia kiaknázásához szükséges tudás könnyen hozzáférhető, és alapszinten akár ingyenesen is megszerezhető: részben az említett tech óriásoknak köszönhetően saját AI oktatási platformjaikról, illetve erre specializálódott e-learning portálokról (pl. Coursera). A google.ai projekt például küldetésének tekinti, hogy a mesterséges intelligencia vívmányaiból mindenki profitálhasson, nem csak a Google termékeibe és szolgáltatásaiba építve, hanem a tudást, a fejlesztőeszközöket és kész megoldásokat is elérhetővé téve.

"Várj velem egy percet bent, ahol
Nincs monoton verze"

Eszköztár: élesre töltve

Ha az elméleti alapozáson túl vagyunk, akkor szerencsénkre számos eszközt találhatunk ML projektjeinkhez, amelyek között vannak open source megoldások is. Ezeknek a használatával nem kell visszamennünk a kályhához, mert a korábban felsorolt módszertani megközelítésekben használt statisztikai modelleket, algoritmusokat már készen tálalják elénk, nekünk “csak” fel kell paraméterezni és beletölteni a saját adatainkat.

A “dobozos”, vagy felhős szoltáltatásban kínált adatelemző, adatvizualizáló csomagok között is egyre több akad, amelyik gépi tanulás modult vagy integrációs pontot tartalmaz. Ezek kimondottan a kisebb cégek számára lehetnek vonzónak, mert némi tanulási folyamatot követően akár költséges külső szakértő bevonása nélkül is hozhatnak gyors eredményeket. (Következő blog cikkünkben kollegám a Power BI képességeit mutatja be ebben a témában gyakorlati szempontból.)

Itt szeretném még kiemelni a Python programozási nyelv jelentőségét. Az adatelemzés, adatelőkészítés, adatmodellezés és vizualizáció területén az utóbbi években a Python lett a de facto standard. Nem kis részben ez annak köszönhető, hogy szinte az összes nagyobb tech cég felismerte a nyelv előnyeit, és komoly szakmai, programozói erőforrásokat fektetett az AI/ML/DL témájú open-source Python modulok fejlesztésébe, mint a scikit-learn, keras, tensorflow (Google), pytorch (Facebook), cntk / dntk (Microsoft). Az adatelőkészítésben, adattisztításban a numpy és pandas modulok, a vizualizációban a matplotlib és seaborn modulok népszerűek. Az elemző munka prezentálását könnyíti meg a szintén open-source Project Jupyter, amely lehetővé teszi interaktív programkódok futtatását és az elemzés egyidejű dokumentálását egy tudományos igényességű elektronikus munkafüzetben.

"Nem vagyok elveszve
Csak nekem ez a trend nem való"

Alkalmazási lehetőségek

Talán jogosan merül fel a kérdés, hogy ha 70 évnyi kutatómunka és a rengeteg befektetett dollármilliárd ellenére Siri még mindig nem érti, mit akarok tőle, akkor mi értelme az egésznek. És mihez kezdhet ezzel egy kisebb cég, ha az Apple ennyit tudott kihozni belőle?

Ismét csak a jó hír az, hogy sokkal egyszerűbb és triviálisabb use case-eket is lehet találni, mint a beszélő személyi asszisztens robot. Gyakorlatilag minden üzletágban, a pénzügyi szektortól a gyártásig és a szolgáltatásokig, léteznek olyan adat alapú problémák, amelyekre a gépi tanulás módszereivel jobb, pontosabb, hatékonyabb, naprakészebb vagy ügyfélközpontúbb válaszokat lehet adni, mint ezek nélkül. Ezeknek a területeknek a beazonosítása főként az üzletágat, illetve az adott cég működését jól ismerő üzleti elemzők és szakértők (SME / subject matter expert) kezében van.

Az eddigi AI kezdeményezések fő tanulsága, hogy nem érdemes l’art pour l’art módon, csak a trend kedvéért gépi tanulás projektet indítani. Sikert akkor remélhetünk, hogyha egy konkrét üzleti problémához, kérdéshez tudunk ML megoldást építeni. Ha gyakorlati példákat keresünk, akkor számos ötletet találhatunk például Bernard Marr blogjaiban.

"Neked van igazad, ment a LOL"

Összegzés

A mesterséges intelligenciában, és gépi tanulásban rejlő lehetőségek kiaknázása a hagyományos adatelemzést és üzleti intelligencia megoldásokat egészen új szintre emelheti. Viszont mielőtt belevágnánk, nem árt felvértezni magunkat a szükséges matematikai-statisztikai ismeretekkel, és tisztába kerülni a lehetséges buktatókkal. Így realisztikus elvárásokkal vághatunk neki következő ML projektünknek!

"Te is add ki a hangod, ha neked ez jó!"