Machine learning vs deep learning – avagy gépi tanulás kontra mélytanulás
Manapság, mikor a csapból is a GPT és a mesterséges intelligencia folyik, az új impulzusok hatására kicsit nehéz eligazodni az MI témaköreiben, alkalmazhatóságában. Ez a rövid összefoglaló arról a két MI trendről szól, amelyek működési elve gyakorlatilag az összes MI alapú toolban elérhető manapság.
A mesterséges intelligencia kapcsán gyakorta halljuk a gépi tanulás és mélytanulás (machine learning és deep learning) fogalmakat.
Miről is van szó? A mesterséges intelligenciát is tanítani kell, el kell látnunk kiindulási adatokkal és összefüggésekkel. A gépi tanulás és a mélytanulás közötti különbség a tanulási metódusok különbözőségében rejlik.
Gépi tanulás esetében a címkézést külön folyamatban kell elvégeznünk az osztályozástól, míg ha mélytanulásról van szó, a címkézés és az osztályozás egy blokkban történik, és jórészt automatizált.
Nézzünk is gyakorlati példát a deep learning és a machine learning közötti különbségekre, mégpedig dokumentumfeldolgozás példáján keresztül.
Tegyük fel, hogy érkezik sok-sok (napi száz, ezer) számla a könyvelési rendszerünkbe. Számlázó programonként más és más formátumú dokumentumokról van szó, a tartalom viszont strukturálisan jórészt ugyanaz, hiszen a számla kötelező elemeit jogszabály határozza meg.
Ha szeretnénk könyvelőink életét segíteni, válasszunk valamilyen automatizált megoldást a számlák feldolgozására. Választhatunk machine learning vagy deep learning alapú programok közül.
Machine learning esetében a címkézést úgy kell megvalósítani, hogy dokumentum típusonként jelöljük, hol fordulnak elő a számunkra releváns adatok. Minden egyes számla sémán (beszállítónként külön-külön) megadjuk, hol található a számla sorszáma, szállító, fizetési határidő, tételek, adószámok és egyéb információ. Választhatunk, hogy egy modell egy adott típusú számlához tartozzon, vagy egy modell tartalmazzon több kollekciót (pl. ugyanaz a partner különböző részletettségi szintű számlákat küld).
Deep learning estén elég a modellt dokumentumokkal címkézés nélkül tanítani, ilyenkor a táblázatokat, kulcs információkat, jelölő mezőket automatikusan felismeri az algoritmus. A feldolgozott adatokat különböző maszkok segítségével – hányadik oszlop és melyik sor tartalmazza a számunkra releváns adatot -, már hagyományos programozási technikával iktatásra alkalmas formára lehet hozni (akár Excel makrók segítségével is).
Fenti analógia esetén a számla feldolgozás:
Machine learning:
A bemenő adatok olyan számla minták, amelyeken a releváns adatok szerepelnek. Használhatunk több csoportot (kollekciót) a különböző felépítésű, ám azonos adatot tartalmazó dokumentumokhoz. Az a fontos, hogy egy csoportban egymásra hasonlító dokumentumok legyenek. A gyakorlatban ez azt jelenti, hogy egy modellt taníthatunk több beszállító számláival is. A lényeg az, hogy egy beszállító hasonló számláit egy adott kollekcióba rendezzük. Ezután, manuálisan jelölnünk kell, hogy a dokumentumon hol található a releváns információ. Ez a folyamat a címkézés.
Deep learning:
A bemenő adatok olyan dokumentum minták – praktikusan számlák, de nem szükségszerűen azok -, amelyek tartalmazzák azokat az elemeket, amelyeket fel szeretnénk dolgozni. Ezek lehetnek táblázatok, tagolt szövegek (pl. Vevő neve: Példa Kft.), igen-nem választómezők. Ekkor a deep learning modul ezekre az elemekre fog keresni, és az eredmény az adatokat strukturáltan tartalmazó file lesz (JSON formátum). Ekkor a teljes feldolgozáshoz még egyedi fejlesztésre lesz szükség. Hiszen, nekünk kell megmondani, hogy melyik szakasz melyik értéke tartalmazza számunkra releváns adatot. A megoldás egy alap szintű OCR megoldástól több, hogy nem csak a karaktereket tudjuk leolvasni, de az adatok pozícióját és sémáját is.
Eredmény:
Melyik megoldást válasszuk? Amellyel hatékonyabbak tudunk lenni! A tanítás fog több időt elvenni a címkézéssel, vagy a feldolgozás programozása? Ehhez fel kell mérni a dokumentumok számát, a változatok csoportjait és hogy milyen fejlesztési kapacitás áll a rendelkezésünkre.
Összefoglalva
Találós kérdés: ha összeadjuk az összes szoftverfejlesztési költséget a dokumentum felismerő rendszerek kapcsán (OCR, űrlap felismerés), az a számlák, szállítólevelek esetében több vagy kevesebb, mint egy egységes világszabvány kialakítása ezen dokumentumok számára (XML / JSON)?
Néhány tipp, ötlet a mesterséges intelligencia alapú megoldásokkal kísérletezőknek:
A mesterséges intelligencia köré épülő fejlesztésekre jellemző a high risk – high investment cost kombináció. Tehát viszonylag drága, és magas a kockázata annak, hogy sikertelen lesz a projekt. Néhány megfontolás az AI alapú fejlesztések során:
- ne akarjunk egyszerre megoldani mindent, igyekezzünk modulárisan építeni a rendszereinket. Például, dokumentum kezelés esetén kezdjük a szabályos űrlapokkal (pl. printed pdf), majd menjünk a szkennelt verziók felé. Ha kulcs információkat stabilan ki tudjuk olvasni a dokumentumból, akkor mehetünk tovább a szélesebb körű értelmezés felé.
- fontos tisztázni, hogy mire lövünk, és a megoldás során biztosan az AI lesz-e a legjobb megoldás. Például, számla feldolgozás esetén nem jobb-e a NAV oldaláról begyűjteni az adatokat, és csak azokra a bizonylatokra építeni AI megoldást, amit hagyományos programozással nem tudunk feldolgozni.
- demokratizáljuk a megoldásokat és a mögöttes technológiát. Biztosítsunk tanulási és kipróbálási lehetőséget az érintettek számára.
- folyamatos fejlesztések: ha elindult egy AI alapú folyamat, a mögötte lévő adatokat folyamatosan frissíteni kell (tanítani). Erre fontos időt és erőforrást biztosítani, hiszen a tudásbázis nem lesz naprakész, és az AI alapú toolok használata a kezdeti lelkesedés után drámaian vissza fog esni.
- válasszunk olyan megoldást, amely ad magabiztossági információt, vagy valamilyen magyarázatot, elemzést a feldolgozás eredményének hátterét illetően.