Android gépi tanulás

Kayvan Kaseb

Follow

nov 26, 2020 – 9 min read

A képet az Unsplash

Amint tudod, a gépi tanulás iránti növekvő érdeklődés arra kényszerítette a vállalatokat, hogy erre fókuszáljanak és ebbe fektessenek be. A gépi tanulás (Machine Learning, ML) a számítástechnikai tudományok azon szakterülete, amely az adatokban található minták és struktúrák elemzésére és értelmezésére összpontosít, hogy lehetővé tegye az emberi interakción kívüli tanulást, következtetést és döntéshozatalt. Továbbá a gépi tanulás egy olyan programozási megközelítés, amely az Android-alkalmazások számára biztosítja a korábbi tapasztalatokból való automatikus tanulás és fejlesztés képességét. Ennek eredményeképpen a Google számos fejlett funkciót és eszközt tervezett és valósított meg az Android Machine Learning számára. Ennek a cikknek az a célja, hogy megvitasson néhány fő fogalmat és fejlett funkciót, amelyeket az Android-fejlesztők számára ajánlottak.

Bevezetés és áttekintés

A gépi tanulás (ML) alapvetően egy olyan programozási megközelítés, amely biztosítja az Android-alkalmazások számára a képességet, hogy automatikusan tanuljanak és javítsanak a tapasztalatokból anélkül, hogy kifejezetten erre programoznák őket. Az Android az utóbbi időben a Machine Learning eszközök széles skáláját kínálja, amelyek mindenki számára elérhetőek: a tervezők, a termékmenedzserektől a mérnökökig, a mobilfejlesztőkig és a Machine Learning szakértőkig. Nos, az Android egy platform, és az egyik módja, amivel egy platform sikerét mérni lehet, az a rá épített nagyszerű eredményeken keresztül. Ma az Android 2,5 milliárd eszközön fut, és ezek egy része már használja az eszközön belüli ML-t. Emellett az on-device Machine Learning már nem a jövő technológiája, mert már most elérhető a használatához. Említették például, hogy több mint 25 000 alkalmazás Androidon és iOS-en használja az ML Kit funkcióit.

Más szóval a modern mobiltelefonok elegendő kapacitással rendelkeznek ahhoz, hogy annyit feldolgozzanak, mint a hagyományos számítógépek, és a telefonjaink és táblagépeink elég erősek ahhoz, hogy olyan alkalmazásokat futtassanak, amelyek valós időben képesek tanulni és interakcióba lépni. A gépi tanulás(ML) segít nekünk okos alkalmazásokat készíteni. Például a Google Apps előrejelzése a következő alkalmazásokról, amelyeket valószínűleg használni fogsz, és egy mobilalkalmazás, amely megoldja a világ legnagyobb problémáját a tökéletes emoji megtalálására. Emellett az intelligens asszisztensek, a Snapchat-filterek, az intelligens válasz és a Google lencse is a gépi tanulás eszközökön történő felhasználásának további termékei. Számos SDK létezik a mobiltelefonokon, amelyek segítenek a Machine Learning mobileszközökön történő futtatásában. Ezek közül néhány olyan népszerű vállalatok, mint az Amazon, az Intel és a Microsoft által kifejlesztett szoftverfejlesztő készleteket tartalmaz, és a Google is kifejlesztette az ML Kitet. A dolgozat következő részei néhány fő fogalmat és új funkciót vizsgálnak meg, amelyeket a Google ajánlott az Android-fejlesztéshez.

A gépi tanulás (ML) definíciója

A gépi tanulás főága valójában azzal a kérdéssel foglalkozik, hogyan lehet olyan számítógépes programokat építeni, amelyek a tapasztalatok alapján automatikusan fejlődnek. A válasz tehát az adatokban rejlik. Röviden, a gépi tanulás a mesterséges intelligencia egyik részterületének tekinthető, amely statisztikai módszereket használ arra, hogy a gépek képesek legyenek a tapasztalatokkal együtt javulni. Lehetővé teszi, hogy egy számítógépes rendszer döntéseket hozzon egy bizonyos feladat elvégzéséhez. Ezeket a programokat vagy algoritmusokat úgy tervezik, hogy az új adatok megfigyelésével idővel tanulni és fejlődni tudjanak. A gépi tanulás fő célja, hogy az adatokból értelmet nyerjen. Ezért az adatok jelentik a kulcsot a gépi tanulás feloldásához. Minél több minősített adat áll az ML rendelkezésére, annál pontosabbá válik az ML algoritmus.

A gépi tanulás (ML) a számítógépes algoritmusok tudománya, amelyek a múltbeli tapasztalatok alapján automatikusan javulnak.

A gépi tanulás algoritmusai ahhoz, hogy kifejezett programozás nélkül jóslatokat vagy döntéseket hozzanak, példák alapján modellt építenek fel, amelyet gyakorló adatoknak nevezünk.

A gépi tanulás a tudás kinyerése az adatokból.

A mesterséges intelligencia és a gépi tanulás között van néhány különbség. A mesterséges intelligencia célja egy olyan gép létrehozása, amely képes utánozni az emberi elmét, és ehhez tanulási képességekre is szükség van. Azonban többről van szó, mint pusztán a tanulásról; a tudás reprezentációjáról, az érvelésről és az absztrakt gondolkodásról is. Ezzel szemben a gépi tanulás kizárólag olyan szoftverek írására összpontosít, amelyek képesek tanulni a korábbi tapasztalatokból. Emellett a gépi tanulás szorosabban kapcsolódik az adatbányászathoz és a statisztikához, mint a mesterséges intelligenciához.

A gépi tanulás lehetővé teszi, hogy bizonyos típusú problémákat nagyon elegáns módon oldjunk meg. A fontos kérdés az, hogy miért használjuk a gyakorlatban a Gépi Tanulást. Például kódot kellett írni ahhoz, hogy felismerjük, hogy valaki jár-e. Emellett, ha hozzáférése volt a sebességéhez, akkor egy meglehetősen egyszerű kódot kellett írnia ahhoz, hogy megadja a sebesség metrikáját, amely a valóságban a járást mutatja. Ennek a helyzetnek a futásra való kiterjesztése elég egyszerűnek tűnik. Ráadásul, ha a kerékpározást is le akarnánk fedni, csak egy újabb peremfeltételt kell hozzáadnunk a kódunkhoz. Jelenleg az a kérdés, hogy mi a helyzet más típusú tevékenységekkel, például a golfozással?

A golfozás valójában sok gyaloglást tartalmaz, de emellett van egy csomó ütő cipelése és lendítése is. Akkor hogyan magyarázzuk ezt az állapotot? Ebben a gépi tanulás hatékonyan segíthet nekünk. A hagyományos programozásban szabályokat fejezünk ki olyan nyelveken, mint a Kotlin, Java. Ezután ezeket a szabályokat alkalmazzuk az érdekes problémára. A gépi tanulásban a paradigma némileg más. Ahelyett, hogy egy csomó szabályt írnánk, egy csomó címkeadatot veszünk, például különböző típusú tevékenységeket végző emberek fotóit, a tevékenységeknek megfelelő címkékkel. Emellett, ha ezeket az adatokat betápláljuk a neurális hálózatunkba, az megtanulja helyettünk az üzleti szabályokat anélkül, hogy meg kellene határozni azokat. Röviden, a gépi tanulás figyelemre méltóan hatékonynak bizonyult számos különböző típusú probléma megoldásában, például a tevékenységek felismerésében.

Gépi tanulás az Android-fejlesztésben

Amint azt már észrevette, a gépi tanulás egy olyan programozási megközelítés, amely az Android-alkalmazások számára biztosítja a tapasztalatból való automatikus tanulás és fejlesztés képességét anélkül, hogy kifejezetten erre programoznák őket. Továbbá ez jól alkalmazható olyan Android-alkalmazásokhoz, amelyek strukturálatlan adatokat, például képeket és szöveget használnak, vagy nagyszámú paramétert tartalmazó problémákhoz, például a győztes sportcsapat megjóslásához. Jelenleg az Android a gépi tanulás eszközeinek és módszereinek széles választékát kínálja: Az ML tervezési útmutatók, a Google kulcsrakész gépi tanulási SDK ML Kit, a TF Hub az előre elkészített élvonalbeli modellek megtalálására, a TF Lite Model Maker egy meglévő modell saját adatokkal történő betanítására, valamint az ML Kit egyéni modellek és az Android Studio ezen modellek Android alkalmazásba történő megfelelő integrálására.

Az ML-alkalmazások Androidra történő fejlesztéséhez a következő négy fő feladattal kell szembenéznie:

  1. Tervezés: a termékcélok meghatározása és az ezek eléréséhez szükséges ML-tervezési minták megadása.
  2. Építés és képzés: az ML-modell megépítése, vagy a Google-től származó előre képzett modell képzése.
  3. Következtetés: a már képzett gépi tanulási modell használatának folyamata egy adott feladat elvégzésére.
  4. Telepítés: ML-modellek telepítése és frissítése az Android-alkalmazáshoz.

Az Android-alkalmazások tervezésének irányelvei

Elsőre nincs különbség más fejlett technológiákhoz képest. A terméktervezők és a mérnökök mind együtt döntenek arról, hogy milyen problémát próbálunk megoldani a termékünkkel. Tehát nem egyetlen erőfeszítésről van szó. Ez egy rendkívül iteratív folyamat, amikor egy új technológiáról van szó. Ki akarja próbálni a határokat, és együtt akar működni. Emellett meg akarod figyelni, hogy a felhasználók hogyan használják valójában a termékedet. Ez azt jelenti, hogy a tervezés, a termékmenedzsment és a szoftverfejlesztés kulcsszerepet játszik ebben a folyamatban. A Google két útmutatót készített ezen a területen az alábbiak szerint:

  1. The People + AI Guidebook : Ebben az útmutatóban hat különböző rész található, amelyek segítenek a tervezőkkel és a termékmenedzserekkel folytatott beszélgetés felépítésében. Összességében a legjobb gyakorlatokat kínálja, hogy segítse csapatát az emberközpontú AI termékdöntések meghozatalában.

2. The Material Design for Machine Learning spec : ez az útmutató a következő szakaszokat tartalmazza:

Először, új Material Design irányelvek az ML mobil felhasználási esetekhez.

Második, az ML által támogatott nagyszerű végponttól végpontig tartó mobil UX lehetővé tétele.

Harmadszor, elérhető forráskód a tárgyfelismeréshez és -követéshez, valamint a vonalkódolvasáshoz.

A legfontosabb döntés az Android-fejlesztésben

Az Android-fejlesztés során az egyik legfontosabb döntés, amellyel foglalkoznia kell, hogy a következtetés levonása az eszközön fog-e futni, vagy egy felhőszolgáltatást használ, amely távolról lenne elérhető. Ahhoz, hogy ezt a döntést pontosan meghozza, figyelembe kell vennie néhány paramétert, mint előnyöket vagy hátrányokat. Például az eszközön történő megközelítés esetén az alábbi előnyökkel kell szembenéznie:

  1. Adatvédelem: Sok esetben célszerűbb, ha mindent csak az eszközön tartunk. Ezért nem kell aggódnunk amiatt, hogy az adatokat hogyan dolgozzák fel a felhőben.

2. Offline: Az eszközön történő gépi tanulás akkor is működik, ha nincs kapcsolat, vagy ha a hálózat hiányos. Ha például Ön időt tölt a földalatti vonatokon, akkor tudja, hogy ez hasznos lehet.

3. Alacsony késleltetés: Ha a feldolgozásunkat az eszközön futtatjuk, akkor a hálózati késleltetést teljesen ki tudjuk venni az egyenletből. Továbbá, ha ezt a hardveres gyorsítás legújabb fejlesztéseivel párosítjuk, valóban valós idejű élményt nyújthatunk a felhasználóknak az Android-eszközök széles skáláján.

ML Kit alkalmazásfejlesztőknek

Az ML Kit SDK tulajdonképpen egy új termék a Google-től, amelyet 2018-ban mutattak be. Az ML Kit egy szoftverfejlesztői készlet, amely lehetővé teszi a fejlesztők számára, hogy leegyszerűsítsék a gépi tanulási modellek integrálását a mobilalkalmazásaikba. Ráadásul még egy junior fejlesztő is könnyen meg tudja oldani ezt a feladatot. További szempont, hogy az iOS és Android alkalmazásokat sokkal vonzóbbá, személyre szabottabbá és hasznosabbá teszi az eszközre optimalizált megoldásokkal. Mint elhangzott, több mint 25 000 Android és iOS alkalmazás használja az ML Kit funkcióit.

Az új SDK, amely a Google gépi tanulással kapcsolatos tapasztalatait a mobilfejlesztők számára egy hatékony, könnyen használható csomagban kínálja a Firebase-en.

Az ML Kit néhány funkciója három részbe sorolható:

  1. Vision: Videó- és képelemző API-k képek címkézéséhez és vonalkódok, szöveg, arcok és tárgyak felismeréséhez.
  2. Természetes nyelv: Természetes nyelvi feldolgozó API-k 58 nyelv azonosítására és fordítására, valamint válaszjavaslatok nyújtására.
  3. Egyéni: Építsen saját modelleket az AutoML Vision Edge segítségével, vagy hozza saját TensorFlow Lite modelljeit, futtasson kísérleteket, és telepítse őket termelésbe az ML Kit segítségével.

A képet a Google Documents

Minden kategóriához tartozik néhány funkció. A Vision például rendelkezik néhány olyan funkcióval, mint a Base API-k: Vonalkódszkennelés, arcfelismerés, képcímkézés, tárgyfelismerés, tereptárgyfelismerés és szövegfelismerés.

TensorFlow Lite

A TensorFlow Lite alapvetően egy eszközkészlet, amely segít a programozóknak a TensorFlow modellek megfelelő futtatásában mobil, beágyazott és IoT eszközökön. Valójában eszközön belüli gépi tanulási következtetést biztosít alacsony késleltetéssel és kis bináris mérettel. Más szóval, a TensorFlow Lite célja, hogy megkönnyítse a gépi tanulás futtatását az eszközökön, a hálózat peremén, ahelyett, hogy az adatokat egy szerverről oda-vissza küldenénk. A TensorFlow Lite két fő komponenst tartalmaz:

  1. A TensorFlow Lite értelmező : számos különböző hardvertípuson, például mobiltelefonokon és mikrokontrollereken fut (optimalizált modellek).

2. A TensorFlow Lite átalakító : a TensorFlow modelleket az értelmező által használható produktív formába alakítja, és képes optimalizálásokat bevezetni a bináris méret és a teljesítmény növelése érdekében.

A TensorFlow Lite használatának lépései röviden a következő lépésekből állnak:

  1. Modell kiválasztása
  2. Modell átalakítása
  3. Elhelyezés az eszközre
  4. Modell optimalizálása

AutoML Vision Edge

A Google ezen új funkciójával saját képosztályozási modelleket lehet létrehozni a saját képzési adatokból. Valójában, ha egy kép tartalmának felismerését tervezi, az egyik lehetőség lehet az ML Kit készüléken lévő képcímkéző API-jának használata. Ha azonban speciálisabb képcímkézési modellre van szüksége, akkor a Firebase ML és az AutoML Vision Edge segítségével saját képeivel és kategóriáival képezheti ki a modellt. Például egy olyan modellt, amely megkülönbözteti a virágfajokat vagy az élelmiszerfajtákat. Az egyéni modell a Google Cloudban kerül betanításra, majd teljes mértékben használható az eszközön.

Végkövetkeztetés

A gépi tanulás egy olyan programozási megközelítés, amely az Android-alkalmazások számára biztosítja a korábbi tapasztalatokból való automatikus tanulás és fejlesztés képességét. Ennek eredményeként a Google számos fejlett funkciót és eszközt tervezett és valósított meg az Android-fejlesztéshez. Ez a cikk néhány olyan fő fogalmat és fejlett funkciót vett figyelembe, amelyeket a Google az Android fejlesztők számára javasolt.