Gépi tanulással az élvonalban
Az informatika egyik legfontosabb „hívószava” jelenleg vitathatatlanul a mesterséges intelligencia (MI). A közelmúltban még a gépi tanulást (ML) emlegettük hasonló értelemben. Nem csoda: a két fogalom jelentése közt erős az átfedés. Ennek legegyszerűbb változata a felügyelt tanulás, amelyet ma már a hálózati végpontok processzoraiban is futtathatunk.
A jelenkor igényei az MI és a gépi tanulás iránt
A mesterséges intelligenciát (MI) és a gépi tanulást (Machine Learning – ML) számos alkalmazásban használják, olyan különböző ágazatokban, mint az utazás, a banki és pénzügyi szolgáltatások, a gyártás, az élelmiszer-technológia, az egészségügy, a logisztika, a szállítás, a szórakoztatás és még sok egyéb.
Az egyik legismertebb alkalmazás az autonóm vezetés, ahol az autó a gépi tanulás segítségével képes felismerni az akadályokat, a gyalogosokat és a többi autót. Másik fontos felhasználási területe a betegségek előrejelzése vagy felismerése, vagy akár az áramköri lapok vizsgálata.
Mi gyorsítja fel az MI bevezetését?
Az MI és az ML bevezetését felgyorsító egyik legfontosabb tényező a számítási teljesítmény növekedése, amely lehetővé teszi az összetett matematikai számítások könnyű és gyors végrehajtását. A modellek létrehozásához egyre több algoritmus is rendelkezésre áll, amelyek megkönnyítik és felgyorsítják a következtetést az adatokból. Ezek fejlesztésébe a kormányok és a vállalatok is nagy összegeket fektetnek be.
Az MI/ML-eszközök, amelyek a „nem adattudósokat” is segítik a modellek egyszerű megértésében, létrehozásában és alkalmazásában, kulcsfontosságú elemet jelentenek, és ma már egyre inkább elérhetőek és hozzáférhetőek.
Bár a modellépítés a felhőben történik nagy teljesítményű gépeken, mégis gyakran szeretnénk helyben elvégezni a következtetést. Ennek számos előnye többek között a nagyobb biztonság, mivel nem kommunikálunk a külvilággal. A helyi cselekvés azt is jelenti, hogy nem fogyasztunk sávszélességet, és nem kell megfizetnünk az adatok felhőbe küldésének, majd onnan az eredmények visszanyerésének költségeit.
A hálózat peremén elhelyezkedő végpontokban elvégzett következtetés végrehajtásának néhány előnye a következő:
- Valós idejű működés/közvetlen válaszadás
- Alacsony késleltetés, biztonsági működés
- Csökkentett költségek
- A hálózati sávszélesség hatékony kihasználása, kevesebb kommunikáció
- Megbízható működés időszakos kapcsolódás esetén is
- Jobb felhasználói élmény az ügyfelek számára
- Gyorsabb válaszidő
- Adatvédelem és biztonság
- A kevesebb továbbítandó adat növeli az adatvédelmet
- Alacsonyabb energiafogyasztás
- Nincs szükség gyors kommunikációra
- Helyi tanulás
- Jobb teljesítmény az egyes termékek egyedi tanulása révén
A késleltetés csökkentése a következtetés helyi elvégzésének jó ösztönzője, mivel nem kell megvárnunk az információ elküldéséhez és az eredmények visszaérkezéséhez szükséges időt. A végponti adatkiértékelés segítheti a felhasználókat azzal, hogy a gépi tanulást a nagy teljesítményű hálózati gépekről a végpontok csúcskategóriás mikrokontrollereire és mikroprocesszoros egységeire helyezi át.
Mi a mesterséges intelligencia és a gépi tanulás?
A mesterséges intelligencia az 1950-es években jött létre. Az MI lényegében a programozási eljárást váltja át a hagyományos, manuális programozásból az adatok alapján történő algoritmusfejlesztéssé. A gépi tanulás a mesterséges intelligencia egy alcsoportja, ahol a gép megpróbál tudást kinyerni az adatokból. A gépnek előkészített adatokat adunk, majd megkérjük, hogy találjon ki egy algoritmust, amely segít megjósolni az eredményeket egy új, friss adathalmazra.
Az ML alapja az, amit „felügyelt tanulásnak” nevezünk. Ennél a technikánál az adatokat címkézzük, és az eredményeket erre a címkézésre alapozzuk – a modellt is erre a címkézésre építjük. Egy másik technika a mélytanulás, amely összetettebb algoritmusokkal dolgozik, ahol az adatok nincsenek címkézve. Ebben a cikkben elsősorban a felügyelt tanulást fogjuk vizsgálni a hálózat végpontjain történő adatfeldolgozás szempontjai szerint.
Az ML alapeleme a neurális hálózat (1. ábra), amely csomópontok (2. ábra) rétegeiből áll, és minden csomópontnak van kapcsolata vagy a bemenetekkel vagy a következő rétegekkel. A neurális hálózatoknak több típusa létezik. Minél inkább haladunk a gépi tanulástól a mélytanulás felé, annál összetettebb hálózatokkal találkozunk. A mélytanulás bizonyos visszacsatolási mechanizmusokat is tartalmaz, míg az egyszerű ML-modellekben csak egyszerű előremenő műveletek vannak megvalósítva, amelyek a bemeneti adatoktól a kimenet vagy az eredmény felé haladnak.
1. ábra
2. ábra
Hogyan „tanítjuk” a gépet?
A folyamat modelljét a 3. ábra szemlélteti. Az első lépés az adatgyűjtés. Mivel a felügyelt tanulásra összpontosítunk, címkézett adatokat gyűjtünk, amelyek közt helyesen lehet felismerni a mintákat. Ezeknek az adatoknak a minősége határozza meg, hogy mennyire lesz pontos a modell. Össze kell állítanunk és véletlenszerűvé kell tennünk azokat, mivel ha túlságosan „szervezettek", a bemenő adatok rejtett összefüggései miatt a modellekbe téves előfeltevések épülnek be.
3. ábra
A második lépés a nem kívánt adatok megtisztítása és eltávolítása. Minden olyan bemeneti kombinációt, amelyhez az elvárt kimenet nem áll rendelkezésre, el kell távolítani éppúgy, mint azokat, amelyeknek az adataira nincs szükség, vagy minden olyan állapotot, amelyre jellemzően ismeretlen a válasz.
Az adatokat ezután két részre kell szétválasztani. Az egyiket a képzéshez, a másikat a teszteléshez használjuk fel.
A harmadik lépés az algoritmus betanítása. Ez három lépésre van felosztva. Az első lépés a gépi tanulási osztályozó algoritmus kiválasztása. Ezek közül több is rendelkezésre áll, és különböző típusú adatokhoz alkalmasak. Példa a gépi tanulási osztályozó algoritmusokra1:
- Bonsai
- Decision Tree Ensemble
- Boosted Tree Ensemble
- TensorFlow Lite for Microcontrollers
- PME
Fontos feltétel a helyes osztályozási modell megválasztása, mert ez határozza meg, hogy az ML-algoritmus lefuttatása a gyűjtött adatokon milyen kimenetet állít elő. Ehhez bizonyos adattudományi tapasztalatra is szükség lehet, de azokra az automatikus „motorokra” is rábízhatjuk, amelyeket néhány modellező szoftvereszköz bocsát a rendelkezésünkre.
A modell betanításának második részfeladata az, amelynek során néhány egymást követő futtatás („iteráció”) során javítjuk az egyes rétegeknek a súlyfaktorait, és ezzel a modell teljes pontosságát.
Ezután kell értékelnünk a modellt, amelyet a bemeneti adatoknak azzal a részhalmazával hajtunk végre, amelyet az adatok összeállításakor a modell tesztelése és értékelése céljára tettünk félre. Ez az adathalmaz tehát a teszteléskor ismeretlen a modell számára. Ennek a futtatásnak az eredményét kell összevetnünk a betanításra használt, tehát ismert eredményt adó adathalmazzal.
Ha ezeket a lépéseket végrehajtottuk, elkezdhetjük használni a modellt és ellenőrizni az eredmények érvényességét és következtetni a célul kitűzött rendszer használhatóságára. Ez úgy hajtható végre, hogy a modellt a „terepen”, éles adatokkal kezdjük el használni, és ellenőrizni, hogy az eredmények megfelelnek-e az elvárásnak.
A Microchip szoftverei és fejlesztőeszközei
A Microchip néhány külsős partnerével létesített kapcsolatot a szoftverfejlesztő eszközök kidolgozására: ilyenek az Edge Impulse, a Motion Gestures és a SensiML. Ezenkívül támogat olyan népszerű fejlesztő keretrendszereket, mint a TensorFlow Lite For Microcontrollers, amely a Microchip Harmony keretrendszer része. A TensorFlow Lite arra használható, hogy modellt lehessen építeni a Microchip termékportfólió minden elemére – ez idő szerint még a nyolcbites termékek kivételével. A Microchip mikrokontrollerei és mikroprocesszorai kompatibilisek a TensorFlow Lite szoftvereszközzel, és támogatják azt.
A Microchip mikrovezérlő- és mikroprocesszor-megoldásai számos alkalmazást támogatnak, köztük a beágyazott rendszerek „okos” gépi látási alkalmazásait is. Ezek jól illeszkednek például az előrelátó (prediktív) karbantartási munkafolyamatokhoz, amelyek akár rezgés- vagy teljesítménymérésen, akár hangelemzésen alapuló diagnosztikára támaszkodnak. Mindhárom diagnosztikai módszer jól illeszkedő eredményeket ad a karbantartás ütemezéséhez. A Microchip portfóliója használható kézmozdulatok (gesztusok) felismerésére, amely az érintésérzékelés képességeivel kiegészítve új lehetőségekkel bővíti az ember-gép kapcsolaton (Human-Machine Interface – HMI) alapuló rendszervezérlési megoldásokat. A Microchip nagy teljesítőképességű PCI-kapcsolókat is ajánl a grafikus processzorokkal (GPU-kkal) való összekapcsoláshoz, amely segítséget nyújt a modellek betanításához.
Az adatgyűjtés történhet mikrovezérlőkkel, mikroprocesszor-egységekkel, FPGA-kkal és szenzorokkal. Ezek mindegyike fellelhető a Microchip kínálatában. Az adatértékelés és következtetés ugyancsak mikrokontrollerekkel, mikroprocesszorokkal vagy FPGA-kkal végezhető.
Végeredményben tehát a Mircochip termékei közt minden eszköz megtalálható, amellyel könnyen lehet gépi tanuláson alapuló rendszert építeni.
A szoftverigényre áttérve, a Microchip gépitanuló-rendszerek fejlesztését támogató központja kiváló hely a legújabb megoldások megismerésére. A népszerű keretszoftvereket támogató Microchip Harmony keretrendszeren kívül néhány partnerkapcsolatunk is lehetővé teszi a hozzáférést további gépitanuló-szoftverekhez.
Az egyik ilyen partner az Edge Impulse, amelynek TinyML nevű szoftvermegoldása segítségével elvégezhető az adatgyűjtés, a modellépítés és a kész rendszer használatba vétele. Ez a partnerünk a TensorFlow Lite for Microcontrollers megoldásunkat alkalmazza. Az Edge Impulse szoftverkódjának legnagyobb előnye a nyílt forráskód és az ingyenes használat lehetősége.
Másik partnerünk a Motion Gestures, amely gesztusok felismerésére specializálódott, amelyek így bevonhatók az ember-gép kapcsolatrendszerbe. Ez az eszköz néhány perc alatt teszi lehetővé egyes gesztusok felismerésének betanítását és azok használatba vételét. Ezzel jelentősen csökkenti a szoftverfejlesztéshez szükséges időt, és az eredmény saját tesztjeink szerint megközelíti a 100%-os biztonságú gesztusfelismerést. Ennek a szoftvereszköznek kétféle használata is lehetséges: az egyik az érintésérzékelés klasszikus módszerével, a másik pedig inerciális helyzet- és mozgásérzékelő (Inertial Measurement Unit – IMU) szenzorok útján érzékeli a gesztusvezérlés kézmozdulatait.
Hogy fogjunk hozzá?
Azoknak a fejlesztőknek, akik most ismerkednek az MI-vel és az ML-lel, a Microchip néhány kezdőkészletet ajánl (4. ábra). A mikrokontrolleres megoldások iránt érdeklődőknek a SAMD21 ML (SAMD21 Machine Learning értékelőkészlet TDK szenzorral) kínálkozik megoldásként. Ennek egy másik változata a Bosch AMU oxigénérzékelőt használja bemenetként.
4. ábra
A mozgásérzékelős gesztusérzékeléshez a Microchip elkészített egy demóalkalmazást SAMC21 Xplained Pro és egy QTouch érintésérzékelő tábla (touch pad) felhasználásával, amely egyike azon eszközkészleteknek, amelyekkel a fejlesztő hozzáfoghat a saját ML-alapú, gesztusfelismerő alkalmazásának megvalósításához.
Az IGaT termék egy grafikus és érintésvezérelt alkalmazásokra is alkalmas érintőtábla, amely ugyancsak gépitanuló-algoritmusok futtatására is elő van készítve. Tartalmaz egy – az alapkészlet részeként szállított – gesztusérzékelő bemutatóalkalmazást, valamint számos más bemutatószoftvert autók, okosotthonok, szórakoztatórendszerek és más célterületek számára.
Az Adafruit EdgeBadge – TensorFlow Lite for Microcontrollers [1] egy másik indulókészlet, amely közvetlenül használja a TensorFlow Lite keretszoftvert. Az eszköz egy 2 inch (51 mm) képátlójú TFT megjelenítővel van felszerelve. Az EdgeBadge-et jól használhatják az Arduino-alapú fejlesztések iránt érdeklődők. A készlet része néhány példaprogram is, mint a Sine Wave Demo[2], Gesture Demo[3] és a Micro Speech Demo[4].
Az ML kezdőkészletek felső kategóriája a PolareFire video kit[5], amelynek két kamerainterfésze, MIPI- (Mobile Industry Processor Interface) és HDMI-interfésze van, 4 GB DDR memóriával, USB2UART interfésszel és 1 GB SPI flashmemóriával van ellátva. Ez a készlet egy ML-modellen alapuló tárgyfelismerő bemutatóalkalmazást is tartalmaz.
További információkért keresse fel az alábbi webhelyet:
https://www.microchip.com/en-us/education/developer-help/learn-solutions/machine-learning
Hivatkozások
1. https://www.adafruit.com/product/4400
2. https://learn.adafruit.com/tensorflow-lite-for-edgebadge-kit-quickstart/sine-wave-demo
3. https://learn.adafruit.com/tensorflow-lite-for-edgebadge-kit-quickstart/gesture-demo
4. https://learn.adafruit.com/tensorflow-lite-for-edgebadge-kit-quickstart/micro-speech-demo
5. https://www.microchip.com/en-us/development-tool/MPF300-VIDEO-KIT-NS
Szerző: Adil Yacoubi, EMEA Sr. Technical Marketing Engineer – Microchip Technology Inc.
Jegyzet
1 A felsorolt algoritmusok bármelyikének felületes ismertetése is önmagában túllépné a cikk kereteit. Mivel a részleteknek elsősorban angol nyelvű irodalomban lehet utánajárni, az egyes algoritmusok nevét lefordítani nem célszerű – A ford. megj.