Android Machine Learning

Kayvan Kaseb

Follow

26 nov, 2020 – 9 min read

De foto is beschikbaar gesteld door Unsplash

Zoals u weet, een groeiende belangstelling voor Machine Learning dwong de bedrijven zich erop te concentreren en erin te investeren. Machine Learning (ML) is de discipline van de computerwetenschap die zich richt op het analyseren en interpreteren van patronen en structuren in gegevens om leren, redeneren en beslissen mogelijk te maken buiten de interactie van mensen om. Bovendien is Machine Learning een programmeerbenadering die uw Android apps de mogelijkheid biedt om automatisch te leren en te verbeteren op basis van eerdere ervaringen. Als gevolg hiervan heeft Google een aantal geavanceerde functies en tools ontworpen en geïmplementeerd voor Android Machine Learning. Dit artikel is gericht op het bespreken van een aantal belangrijke concepten en geavanceerde functies die zijn aanbevolen voor Android-ontwikkelaars.

Inleiding en overzicht

Basically, Machine learning (ML) is een programmeeraanpak die uw Android-apps de mogelijkheid biedt om automatisch te leren en te verbeteren van ervaring zonder expliciet geprogrammeerd te zijn om dit te doen. Sinds kort heeft Android een breed scala aan Machine Learning-tools die beschikbaar zijn voor iedereen: ontwerpers, productmanagers tot ingenieurs, mobiele ontwikkelaars en Machine Learning-experts. Nu, Android is een platform, en een van de manieren waarop je het succes van een platform kunt meten is door de grote prestaties die je er bovenop bouwt. Vandaag, Android draait op 2,5 miljard apparaten, en een aantal van hen zijn al met behulp van on-device ML. Ook is on-device Machine Learning niet langer een technologie van de toekomst, want het is nu al te gebruiken. Er is bijvoorbeeld vermeld dat meer dan 25.000 applicaties op Android en iOS gebruik maken van de functies van ML Kit.

Met andere woorden, de moderne mobiele telefoons hebben genoeg capaciteit om evenveel te verwerken als traditionele computers kunnen, en onze telefoons en tablets zijn krachtig genoeg om applicaties te draaien, die in real time kunnen leren en interacteren. Machine Learning (ML) helpt ons slimme apps te bouwen. Bijvoorbeeld de voorspelling van Google Apps voor de volgende apps die je waarschijnlijk gaat gebruiken, en een mobiele app, die ’s werelds grootste probleem voor het vinden van de perfecte emoji oplost. Daarnaast zijn Smart Assistants, Snapchat Filters, Smart Reply, en Google lens enkele van de andere producten van het gebruik van Machine Learning op apparaten. Er bestaan een aantal SDK’s voor mobiele telefoons die helpen bij het uitvoeren van Machine Learning op mobiele apparaten. Sommige van hen omvatten software development kits ontwikkeld door populaire bedrijven zoals Amazon, Intel, en Microsoft, en ook Google heeft de ML Kit ontwikkeld. De volgende secties van dit essay zullen enkele hoofdconcepten en nieuwe functies overwegen die door Google zijn aanbevolen voor Android-ontwikkeling.

De definitie van Machine Learning (ML)

In feite houdt de major van Machine Learning zich bezig met de vraag hoe computerprogramma’s kunnen worden geconstrueerd die automatisch verbeteren met ervaringen. Het antwoord ligt dus in de gegevens. Kortom, Machine Learning wordt beschouwd als een subset van AI, die statistische methoden gebruikt om machines in staat te stellen zich te verbeteren met ervaringen. Het stelt een computersysteem in staat beslissingen te nemen om een bepaalde taak uit te voeren. Deze programma’s of algoritmen zijn zo ontworpen dat zij kunnen leren en zich in de loop van de tijd kunnen verbeteren door nieuwe gegevens waar te nemen. Het hoofddoel van Machine Learning is betekenis af te leiden uit gegevens. Daarom zijn gegevens de sleutel tot het ontsluiten van Machine Learning. Hoe meer gekwalificeerde gegevens ML heeft, hoe nauwkeuriger het ML-algoritme wordt.

Machine Learning (ML) is de wetenschap van computeralgoritmen die automatisch verbeteren door ervaringen uit het verleden.

Om voorspellingen te doen of beslissingen te nemen zonder expliciet te worden geprogrammeerd, bouwen Machine Learning-algoritmen een model op basis van voorbeelden die trainingsgegevens worden genoemd.

Machine Learning is het extraheren van kennis uit gegevens.

Extra zijn er enkele verschillen tussen Artificial Intelligence en Machine Learning. Het doel van kunstmatige intelligentie is een machine te maken die een menselijke geest kan nabootsen, en daarvoor is ook leervermogen nodig. Het gaat echter om meer dan leren alleen; het gaat ook om kennisrepresentatie, redeneren en abstract denken. Machine Learning daarentegen is uitsluitend gericht op het schrijven van software, die kan leren van eerdere ervaringen. Bovendien is Machine Learning nauwer verwant aan Data Mining en Statistiek dan aan Kunstmatige Intelligentie.

Machine Learning stelt ons in staat bepaalde soorten problemen op zeer elegante wijze op te lossen. Het belangrijke punt is waarom we Machine Learning in de praktijk gebruiken. Je moest bijvoorbeeld code schrijven om te detecteren of iemand liep. Bovendien, als je toegang had tot zijn snelheid, moet je een vrij eenvoudig stukje code schrijven om een metriek voor snelheid te specificeren die het lopen in werkelijkheid weergeeft. Uitbreiding van deze situatie tot lopen lijkt eenvoudig genoeg. Bovendien, als we fietsen zouden willen dekken, hoeven we alleen maar een andere randvoorwaarde aan onze code toe te voegen. Op dit moment is de vraag hoe het zit met andere soorten activiteiten, bijvoorbeeld golfen?

In feite omvat golfen veel lopen, maar er is ook het dragen en zwaaien van een stel clubs. Dus, hoe verklaren we deze toestand? Dit is waar Machine Learning ons effectief kan helpen. Bij traditioneel programmeren drukken we regels uit in talen, zoals Kotlin, Java. Dan passen we die regels toe op het probleem dat ons interesseert. Bij Machine Learning is het paradigma enigszins anders. In plaats van een heleboel regels te schrijven, nemen we een heleboel labelgegevens zoals foto’s van mensen die bezig zijn met verschillende soorten activiteiten met overeenkomstige labels voor die activiteiten. Bovendien, als we deze gegevens aan ons neuraal netwerk voeden, zal het de bedrijfsregels voor ons leren zonder dat we ze hoeven te definiëren. Kortom, Machine Learning heeft bewezen opmerkelijk effectief te zijn bij het oplossen van een aantal verschillende soorten problemen, zoals het detecteren van activiteiten.

Machine Learning in Android Development

Zoals je hebt gemerkt, is Machine Learning een programmeeraanpak die je Android-apps de mogelijkheid biedt om automatisch te leren en te verbeteren op basis van ervaring, zonder dat ze expliciet geprogrammeerd zijn om dit te doen. Bovendien is dit zeer geschikt voor Android apps die gebruik maken van ongestructureerde gegevens, zoals afbeeldingen en tekst, of problemen met een groot aantal parameters, zoals het voorspellen van het winnende sportteam. Momenteel biedt Android een grote verscheidenheid aan machine learning tools en methoden: De ML-ontwerpgidsen, Google’s kant-en-klare machine learning SDK ML Kit, TF Hub voor het vinden van vooraf gebouwde geavanceerde modellen, TF Lite Model Maker om een bestaand model te trainen met uw eigen gegevens, en ML Kit aangepaste modellen en Android Studio voor het integreren van deze modellen in uw Android-app in een geschikt.

Om ML-apps voor Android te ontwikkelen, krijgt u te maken met de volgende vier hoofdtaken:

  1. Ontwerp: het identificeren van productdoelen en het verstrekken van ML-ontwerppatronen om deze te bereiken.
  2. Bouwen en trainen: het bouwen van het ML-model, of het trainen van vooraf getraind model van Google.
  3. Inference: het proces van het gebruik van een machine learning-model, dat al is getraind om een bepaalde taak uit te voeren.
  4. Deploy: Het installeren en bijwerken van ML-modellen voor uw Android-app.

Richtlijnen voor het ontwerpen van Android-apps

In eerste instantie is er geen verschil in vergelijking met andere geavanceerde technologieën. Uw product ontwerpers en engineering alle gecombineerd om te beslissen wat voor soort probleem proberen we op te lossen met ons product. Dus, het is niet een enkele inspanning. Het is een uiterst iteratief proces wanneer je een nieuwe technologie hebt. Je wilt de grens testen, en je wilt samenwerken. Bovendien wil je observeren hoe de gebruiker je product echt gebruikt. Dit betekent dat Design, Product Management, en Software Engineering een sleutelrol spelen in dit proces. Google heeft op dit gebied twee gidsen uitgebracht:

  1. The People + AI Guidebook : In deze gids staan zes verschillende secties om u te helpen uw gesprekken met uw ontwerpers en productmanagers te structureren. In het algemeen biedt het best practices om uw team te helpen mensgerichte AI-productbeslissingen te nemen.

2. De Material Design for Machine Learning-spec: deze richtlijn bevat de volgende secties:

Ten eerste, nieuwe Material Design-richtlijnen voor ML-gebruiksgevallen op mobiel.

Ten tweede, het mogelijk maken van geweldige end-to-end mobiele UX aangedreven door ML.

Derde, broncode beschikbaar voor Object Detection and Tracking en Barcode Scanning.

De belangrijkste beslissing in Android-ontwikkeling

In feite is een belangrijke beslissing die u moet nemen in Android-ontwikkeling is inferencing zal worden uitgevoerd op het apparaat, of gebruik een cloud-service die op afstand zou worden benaderd. Om deze beslissing nauwkeurig te maken, moet u een aantal parameters als voor- of nadelen beschouwen. Voor een on-device-benadering heeft u bijvoorbeeld de volgende voordelen:

  1. Privacy: In veel gevallen is het beter om alles op het apparaat te bewaren. We hoeven ons dus geen zorgen te maken over hoe de gegevens in de cloud worden verwerkt.

2. Offline: on-device Machine Learning werkt wanneer er geen connectiviteit is, of wanneer het netwerk fragmentarisch is. Als u bijvoorbeeld tijd doorbrengt in metro’s, weet u dat dit nuttig kan zijn.

3. Lage latency: door onze verwerking op het apparaat uit te voeren, kunnen we de netwerklatentie helemaal uit de vergelijking halen. Ook kunnen we, door dit te koppelen aan de nieuwste ontwikkelingen op het gebied van hardwareversnelling, gebruikers echt realtime ervaringen geven op een breed scala aan Android-apparaten.

ML Kit voor app-ontwikkelaars

Zoals het er nu uitziet, is ML Kit SDK een nieuw product van Google, dat in 2018 werd gepresenteerd. ML Kit is een software development kit die het mogelijk maakt voor ontwikkelaars om de integratie van machine learning modellen in hun mobiele apps te vereenvoudigen. Bovendien kan zelfs een junior ontwikkelaar deze taak eenvoudig aanpakken. Een ander punt is dat het je iOS- en Android-apps veel boeiender, persoonlijker en nuttiger maakt met oplossingen die zijn geoptimaliseerd om op het apparaat te draaien. Zoals gezegd maken meer dan 25.000 apps op Android en iOS gebruik van de functies van ML Kit.

Een nieuwe SDK die Google’s Machine Learning-ervaring naar mobiele ontwikkelaars brengt in een krachtig, gebruiksvriendelijk pakket op Firebase.

ML Kit heeft een aantal functies die kunnen worden gecategoriseerd in drie secties:

  1. Vision: Video- en beeldanalyse-API’s voor het labelen van afbeeldingen en het detecteren van streepjescodes, tekst, gezichten en objecten.
  2. Natuurlijke taal: Natuurlijke taalverwerking API’s voor het identificeren en vertalen tussen 58 talen en het geven van antwoord suggesties.
  3. Custom: Bouw uw eigen modellen met behulp van AutoML Vision Edge, of breng uw eigen TensorFlow Lite-modellen mee, voer experimenten uit en implementeer ze in productie met ML Kit.

De afbeelding is geleverd door Google Documents

Elke categorie heeft enkele functies. Vision heeft bijvoorbeeld enkele functies als basis-API’s: Barcode Scanning, Face Detection, Image Labeling, Object Detection, Landmark Detection, and Text Detection.

TensorFlow Lite

Basically, TensorFlow Lite is een set van tools om programmeurs te helpen TensorFlow-modellen op mobiele, embedded, en IoT-apparaten op de juiste manier uit te voeren. In feite biedt het on-device machine learning inference met lage latency en een kleine binaire grootte. Met andere woorden, TensorFlow Lite is ontworpen om het gemakkelijk te maken om Machine Learning uit te voeren op apparaten, aan de rand van het netwerk, in plaats van data heen en weer te sturen vanaf een server. TensorFlow Lite omvat twee hoofdcomponenten:

  1. De TensorFlow Lite-interpreter : deze draait (geoptimaliseerde modellen) op veel verschillende hardwaretypen, zoals mobiele telefoons en microcontrollers.

2. De TensorFlow Lite-converter : deze converteert TensorFlow-modellen naar een productieve vorm voor gebruik door de interpreter, en kan optimalisaties doorvoeren om de binaire grootte en prestaties te verbeteren.

De stappen voor het gebruik van TensorFlow Lite bestaan uiteindelijk uit de volgende stappen in het kort:

  1. Een model kiezen
  2. Het model omzetten
  3. Op uw apparaat plaatsen
  4. Optimaliseren van uw model

AutoML Vision Edge

Deze nieuwe functie van Google kan aangepaste beeldclassificatiemodellen bouwen op basis van uw eigen trainingsgegevens. Als u van plan bent de inhoud van een afbeelding te herkennen, kunt u gebruikmaken van de on-device image labeling API van ML Kit. Als u echter een meer gespecialiseerd model voor beeldlabeling nodig hebt, kunt u Firebase ML en AutoML Vision Edge gebruiken om een model te trainen met uw eigen afbeeldingen en categorieën. Bijvoorbeeld een model om onderscheid te maken tussen soorten bloemen of soorten voedsel. Het aangepaste model wordt getraind in Google Cloud, en vervolgens kan het volledig worden gebruikt op het apparaat.

In conclusie

In een oogopslag, Machine Learning is een programmering aanpak die uw Android-apps de mogelijkheid biedt om te leren en automatisch te verbeteren van eerdere ervaring. Als gevolg daarvan heeft Google een aantal geavanceerde functies en hulpmiddelen voor Android-ontwikkeling ontworpen en geïmplementeerd. Dit artikel beschouwt een aantal belangrijke concepten en geavanceerde functies die zijn voorgesteld voor Android-ontwikkelaars door Google.