Android Machine Learning
Cum știți, un interes tot mai mare față de Machine Learning a forțat companiile să se concentreze și să investească în acest domeniu. Machine Learning (ML) este o specializare a științelor computaționale, care se concentrează pe analiza și interpretarea modelelor și structurilor din date pentru a permite învățarea, raționamentul și luarea deciziilor în afara interacțiunii cu ființa umană. Mai mult, Machine Learning este o abordare de programare care oferă aplicațiilor Android capacitatea de a învăța și de a se îmbunătăți în mod automat din experiența anterioară. Ca urmare, Google a conceput și implementat o serie de funcții și instrumente avansate pentru Android Machine Learning. Acest articol își propune să discute câteva concepte principale și caracteristici avansate care au fost recomandate dezvoltatorilor Android.
Introducere și prezentare generală
În principiu, Machine Learning (ML) este o abordare de programare care oferă aplicațiilor dvs. Android capacitatea de a învăța și de a se îmbunătăți în mod automat din experiența anterioară, fără a fi programate în mod explicit pentru a face acest lucru. Recent, Android dispune de o gamă largă de instrumente de Machine Learning care sunt disponibile pentru toată lumea: designeri, manageri de produs până la ingineri, dezvoltatori mobili și experți în Machine Learning. Acum, Android este o platformă, iar unul dintre modurile în care puteți măsura succesul unei platforme este prin marile realizări pe care le construiți pe ea. În prezent, Android rulează pe 2,5 miliarde de dispozitive, iar o parte dintre acestea utilizează deja ML pe dispozitiv. De asemenea, învățarea automată pe dispozitiv nu mai este o tehnologie a viitorului, deoarece este accesibilă pentru a fi utilizată chiar acum. De exemplu, s-a menționat că peste 25 000 de aplicații de pe Android și iOS utilizează funcțiile ML Kit.
Cu alte cuvinte, telefoanele mobile moderne au o capacitate de procesare la fel de mare ca cea a computerelor tradiționale, iar telefoanele și tabletele noastre sunt suficient de puternice pentru a rula aplicații, care pot învăța și interacționa în timp real. Machine Learning(ML) ne ajută să construim aplicații inteligente. De exemplu, predicția Google Apps pentru următoarele aplicații pe care este probabil să le folosiți și o aplicație mobilă care rezolvă cea mai mare problemă din lume în ceea ce privește găsirea emoji-ului perfect. În plus, asistenții inteligenți, filtrele Snapchat, răspunsul inteligent și lentilele Google sunt câteva dintre celelalte produse ale utilizării învățării automate pe dispozitive. Pe telefoanele mobile există o serie de SDK-uri care ajută la rularea Machine Learning pe dispozitive mobile. Unele dintre acestea includ kituri de dezvoltare software dezvoltate de companii populare precum Amazon, Intel și Microsoft și, de asemenea, Google a dezvoltat kitul ML. Următoarele secțiuni ale acestui eseu vor lua în considerare câteva concepte principale și caracteristici noi care au fost recomandate de Google pentru dezvoltarea Android.
Definirea învățării automate (ML)
De fapt, marea învățare automată este preocupată de întrebarea cum să construiască programe de calculator care se îmbunătățesc automat în funcție de experiențe. Astfel, răspunsul se află în datele dumneavoastră. Pe scurt, Machine Learning este considerat un subansamblu al AI, care utilizează metode statistice pentru a permite mașinilor să se îmbunătățească odată cu experiența. Aceasta permite unui sistem informatic să ia decizii pentru a îndeplini o anumită sarcină. Aceste programe sau algoritmi sunt concepute în așa fel încât să poată învăța și să se îmbunătățească în timp prin observarea de noi date. Obiectivul principal al învățării automate este de a extrage semnificații din date. Prin urmare, datele reprezintă cheia pentru a debloca Machine Learning. Cu cât ML are mai multe date calificate, cu atât mai precis devine algoritmul ML.
Machine Learning (ML) este știința algoritmilor de calculator care se îmbunătățesc automat prin experiențe anterioare.
Pentru a face predicții sau a lua decizii fără a fi programați în mod explicit, algoritmii de Machine Learning construiesc un model bazat pe exemple care se numesc date de antrenament.
Machine Learning este extragerea cunoștințelor din date.
În plus, există unele diferențe între Inteligența Artificială și Machine Learning. Scopul Inteligenței Artificiale este de a crea o mașină care poate imita o minte umană și necesită, de asemenea, capacități de învățare. Cu toate acestea, nu este vorba doar de învățare, ci și de reprezentare a cunoștințelor, raționament și gândire abstractă. În schimb, învățarea automată se concentrează exclusiv pe scrierea de software, care poate învăța din experiențele anterioare. În plus, Machine Learning este mai strâns legată de Data Mining și Statistică decât de Inteligența Artificială.
Machine Learning ne permite să rezolvăm anumite tipuri de probleme în moduri foarte elegante. Aspectul important este de ce folosim Machine Learning în practică. De exemplu, a trebuit să scrieți cod pentru a detecta dacă cineva merge pe jos. În plus, dacă aveați acces la viteza sa, trebuie să scrieți o bucată de cod destul de simplă pentru a specifica o metrică pentru viteză care să arate mersul în realitate. Extinderea acestei situații la alergare pare destul de simplă. În plus, dacă am dori să acoperim mersul pe bicicletă, trebuie doar să adăugăm o altă condiție la limită la codul nostru. În momentul de față, întrebarea este ce se întâmplă cu alte tipuri de activități, de exemplu, golf?
De fapt, golful include o mulțime de mers pe jos, dar există, de asemenea, purtarea și legănarea unei grămezi de crose. Așadar, cum explicăm această condiție? Aici este locul în care învățarea automată ne poate ajuta în mod eficient. În programarea tradițională, exprimăm reguli în limbaje, cum ar fi Kotlin, Java. Apoi, aplicăm aceste reguli la problema de interes. În Machine Learning, paradigma este oarecum diferită. În loc să scriem o grămadă de reguli, luăm o mulțime de date cu etichete, cum ar fi fotografii ale unor persoane angajate în diferite tipuri de activități cu etichete corespunzătoare pentru aceste activități. În plus, dacă introducem aceste date în rețeaua noastră neuronală, aceasta va învăța regulile de afaceri pentru noi, fără a fi nevoie să le definim. Pe scurt, Machine Learning s-a dovedit a fi remarcabil de eficientă în rezolvarea unui număr de diverse tipuri de probleme, cum ar fi detectarea activităților.
Machine Learning in Android Development
După cum ați observat, Machine Learning este o abordare de programare care oferă aplicațiilor dvs. Android capacitatea de a învăța și de a se îmbunătăți în mod automat din experiență, fără a fi programate în mod explicit pentru a face acest lucru. Mai mult, acest lucru este potrivit pentru aplicațiile Android care utilizează date nestructurate, cum ar fi imagini și text, sau probleme cu un număr mare de parametri, cum ar fi prezicerea echipei sportive câștigătoare. În prezent, Android oferă o mare varietate de instrumente și metode de învățare automată: Ghidurile de proiectare ML, kitul SDK ML Kit de învățare automată la cheie de la Google, TF Hub pentru a găsi modele de ultimă generație pre-construite, TF Lite Model Maker pentru a antrena un model existent cu propriile date și modelele personalizate ML Kit și Android Studio pentru a integra aceste modele în aplicația Android într-un mod corespunzător.
Pentru a dezvolta aplicații ML pentru Android, vă veți confrunta cu patru sarcini principale, după cum urmează:
- Proiectare: identificarea obiectivelor produsului și furnizarea de modele de proiectare ML pentru a le atinge.
- Construire și instruire: construirea modelului ML, sau instruirea modelului preinstruit de la Google.
- Inferență: procesul de utilizare a unui model de învățare automată, care a fost deja instruit pentru a îndeplini o anumită sarcină.
- Implementare: Instalarea și actualizarea modelelor ML pentru aplicația Android.
Ghiduri pentru proiectarea aplicațiilor Android
Început, nu există nicio diferență în comparație cu alte tehnologii avansate. Designerii și inginerii produsului dvs. s-au combinat cu toții pentru a decide ce fel de problemă încercăm să rezolvăm cu produsul nostru. Așadar, nu este vorba de un singur efort. Este un proces extrem de iterativ atunci când aveți o nouă tehnologie. Vrei să testezi limitele și vrei să colaborezi. În plus, doriți să observați modul în care utilizatorul utilizează cu adevărat produsul dumneavoastră. Acest lucru înseamnă că designul, managementul produselor și ingineria software joacă roluri cheie în acest proces. Google a realizat două ghiduri în acest domeniu de studiu, după cum urmează:
- The People + AI Guidebook : În acest ghid, există șase secțiuni diferite pentru a vă ajuta să vă structurați conversația cu designerii și managerii de produs. În general, acesta oferă cele mai bune practici pentru a vă ajuta echipa să ia decizii de produs AI centrate pe om.
2. The Material Design for Machine Learning spec : acest ghid include următoarele secțiuni:
În primul rând, noi linii directoare Material Design pentru cazurile de utilizare ML pe mobil.
În al doilea rând, permiterea unui UX mobil excelent de la un capăt la altul alimentat de ML.
În al treilea rând, codul sursă disponibil pentru detectarea și urmărirea obiectelor și scanarea codurilor de bare.
Decizia cheie în dezvoltarea Android
De fapt, o decizie cheie pe care ar trebui să o abordați în dezvoltarea Android este inferența va rula pe dispozitiv sau va folosi un serviciu cloud care ar fi accesat de la distanță. Pentru a lua această decizie cu acuratețe, ar trebui să luați în considerare unii parametri ca avantaje sau dezavantaje. De exemplu, pentru abordarea pe dispozitiv vă veți confrunta cu unele avantaje, după cum urmează:
- Confidențialitate: În multe cazuri, este mai potrivit să păstrați totul doar pe dispozitiv. Prin urmare, nu trebuie să ne facem griji cu privire la modul în care datele sunt procesate în cloud.
2. Offline: Învățarea automată pe dispozitiv funcționează atunci când nu există conectivitate sau când rețeaua este fragmentată. De exemplu, dacă petreceți ceva timp în trenurile de metrou, veți ști că acest lucru ar putea fi util.
3. Latență scăzută: prin rularea procesării pe dispozitiv, putem fi capabili să eliminăm cu totul din ecuație latența rețelei. De asemenea, cuplând acest lucru cu cele mai recente progrese în accelerarea hardware, putem oferi utilizatorilor experiențe cu adevărat în timp real pe o gamă largă de dispozitive Android.
ML Kit pentru dezvoltatorii de aplicații
De fapt, ML Kit SDK este un produs nou de la Google, care a fost prezentat în 2018. ML Kit este un kit de dezvoltare software care le permite dezvoltatorilor să simplifice integrarea modelelor de învățare automată în aplicațiile lor mobile. În plus, chiar și un dezvoltator începător poate aborda cu ușurință această sarcină. Un alt aspect este că face ca aplicațiile pentru iOS și Android să fie mult mai atractive, personalizate și utile cu ajutorul unor soluții optimizate pentru a rula pe dispozitiv. După cum s-a menționat, peste 25.000 de aplicații de pe Android și iOS folosesc caracteristicile ML Kit.
Un nou SDK care aduce experiența Google Machine Learning dezvoltatorilor mobili într-un pachet puternic și ușor de utilizat pe Firebase.
ML Kit are câteva caracteristici care pot fi clasificate în trei secțiuni:
- Vision: API-uri de analiză video și de imagine pentru etichetarea imaginilor și detectarea codurilor de bare, a textului, a fețelor și a obiectelor.
- Limbaj natural: API de procesare a limbajului natural pentru a identifica și traduce între 58 de limbi și a oferi sugestii de răspuns.
- Personalizat: Construiți propriile modele utilizând AutoML Vision Edge sau aduceți propriile modele TensorFlow Lite, efectuați experimente și implementați-le în producție cu ML Kit.
Care categorie are anumite caracteristici. De exemplu, Vision are unele caracteristici ca API de bază: Barcode Scanning, Face Detection, Face Detection, Image Labeling, Object Detection, Landmark Detection și Text Detection.
TensorFlow Lite
În principiu, TensorFlow Lite este un set de instrumente pentru a ajuta programatorii să ruleze în mod corespunzător modelele TensorFlow pe dispozitive mobile, integrate și IoT. De fapt, acesta oferă inferență de învățare automată pe dispozitiv cu latență scăzută și o dimensiune binară mică. Cu alte cuvinte, TensorFlow Lite este conceput pentru a facilita rularea învățării automate pe dispozitive, la marginea rețelei, în loc să trimită date înainte și înapoi de la un server. TensorFlow Lite include două componente principale:
- Interpretul TensorFlow Lite : rulează (modele optimizate) pe mai multe tipuri diferite de hardware, cum ar fi telefoanele mobile și microcontrolerele.
2. Convertorul TensorFlow Lite : convertește modelele TensorFlow într-o formă productivă pentru a fi utilizate de către interpretor și poate fi capabil să introducă optimizări pentru a îmbunătăți dimensiunea și performanța binarelor.
În cele din urmă, etapele de utilizare a TensorFlow Lite conțin pe scurt următorii pași:
- Scoaterea unui model
- Convertirea modelului
- Dezvoltarea pe dispozitiv
- Optimizarea modelului
AutoML Vision Edge
Această nouă funcție de la Google poate construi modele personalizate de clasificare a imaginilor din propriile date de instruire. De fapt, dacă intenționați să recunoașteți conținutul unei imagini, o opțiune ar putea folosi API-ul de etichetare a imaginilor de pe dispozitiv al ML Kit. Cu toate acestea, dacă aveți nevoie de un model de etichetare a imaginilor mai specializat, puteți fi în măsură să utilizați Firebase ML și AutoML Vision Edge pentru a antrena un model cu propriile imagini și categorii. De exemplu, un model care să distingă între specii de flori sau tipuri de alimente. Modelul personalizat este antrenat în Google Cloud, iar apoi poate fi utilizat pe deplin pe dispozitiv.
În concluzie
La prima vedere, Machine Learning este o abordare de programare care oferă aplicațiilor dvs. Android capacitatea de a învăța și de a se îmbunătăți automat din experiența anterioară. Ca urmare, Google a conceput și implementat o serie de caracteristici și instrumente avansate pentru dezvoltarea Android. Acest articol a luat în considerare câteva concepte principale și caracteristici avansate care au fost sugerate pentru dezvoltatorii Android de către Google.
.