Android Machine Learning

Kayvan Kaseb

Följ

26 november, 2020 – 9 min read

Bilden tillhandahålls av Unsplash

Som ni vet, ett växande intresse för maskininlärning tvingade företagen att fokusera och investera i det. Maskininlärning (ML) är en stor del av datavetenskapen som fokuserar på att analysera och tolka mönster och strukturer i data för att möjliggöra inlärning, resonemang och beslutsfattande utanför mänsklig interaktion. Vidare är maskininlärning en programmeringsmetod som ger dina Android-appar förmågan att lära sig och förbättras automatiskt utifrån tidigare erfarenheter. Som ett resultat av detta har Google utformat och implementerat ett antal avancerade funktioner och verktyg för Android Machine Learning. Den här artikeln syftar till att diskutera några huvudkoncept och avancerade funktioner som har rekommenderats för Android-utvecklare.

Introduktion och översikt

I grund och botten är maskininlärning (ML) en programmeringsmetod som ger dina Android-appar förmågan att lära sig och förbättra sig automatiskt utifrån tidigare erfarenheter utan att uttryckligen programmeras för detta. På senare tid har Android ett brett utbud av verktyg för maskininlärning som är tillgängliga för alla: designers, produktchefer till ingenjörer, mobilutvecklare och experter på maskininlärning. Nu är Android en plattform, och ett av de sätt du, som du kan mäta en plattforms framgång är genom de fantastiska prestationer som du bygger ovanpå den. I dag körs Android på 2,5 miljarder enheter, och ett antal av dem använder redan ML på enheten. Maskininlärning på enheten är inte längre en framtidsteknik eftersom den är tillgänglig för användning redan nu. Det har till exempel nämnts att mer än 25 000 tillämpningar på Android och iOS använder sig av ML Kits funktioner.

Med andra ord har de moderna mobiltelefonerna tillräcklig kapacitet för att bearbeta lika mycket som traditionella datorer kan, och våra telefoner och surfplattor är tillräckligt kraftfulla för att köra tillämpningar, som kan lära sig och interagera i realtid. Maskininlärning (ML) hjälper oss att bygga smarta appar. Till exempel Google Apps förutsägelse för de nästa appar du sannolikt kommer att använda, och en mobilapp som löser världens största problem med att hitta den perfekta emojin. Dessutom är smarta assistenter, Snapchat-filter, smarta svar och Google Lens några av de andra produkterna av användningen av maskininlärning på enheter. Det finns ett antal SDK:er på mobiltelefoner som hjälper till att köra maskininlärning på mobila enheter. Några av dem inkluderar mjukvaruutvecklingskit som utvecklats av populära företag som Amazon, Intel och Microsoft, och även Google har utvecklat ML Kit. De följande avsnitten i denna uppsats kommer att behandla några huvudkoncept och nya funktioner som har rekommenderats av Google för Android-utveckling.

Definitionen av maskininlärning (ML)

Det stora ämnet maskininlärning handlar faktiskt om frågan om hur man kan konstruera datorprogram som förbättras automatiskt med hjälp av erfarenheter. Svaret finns alltså i dina uppgifter. Kort sagt betraktas maskininlärning som en delmängd av AI, som använder statistiska metoder för att göra det möjligt för maskiner att förbättra sig med hjälp av erfarenheter. Det gör det möjligt för ett datorsystem att fatta beslut för att utföra en viss uppgift. Dessa program eller algoritmer är utformade på ett sådant sätt att de kan lära sig och förbättras med tiden genom att observera nya data. Huvudsyftet med maskininlärning är att få fram mening ur data. Därför är data nyckeln till att låsa upp maskininlärning. Ju mer kvalificerad data ML har, desto mer exakt blir ML-algoritmen.

Maskininlärning (ML) är vetenskapen om datoralgoritmer som förbättras automatiskt genom tidigare erfarenheter.

För att göra förutsägelser eller fatta beslut utan att uttryckligen programmeras bygger algoritmer för maskininlärning en modell baserad på exempel som kallas träningsdata.

Maskininlärning är utvinning av kunskap från data.

Det finns dessutom en del skillnader mellan artificiell intelligens och maskininlärning. Målet med artificiell intelligens är att skapa en maskin som kan efterlikna ett mänskligt sinne, och det kräver också inlärningskapacitet. Det handlar dock om mer än bara inlärning; det handlar också om kunskapsrepresentation, resonemang och abstrakt tänkande. Däremot är maskininlärning enbart inriktad på att skriva programvara som kan lära sig av tidigare erfarenheter. Dessutom är maskininlärning närmare besläktad med datautvinning och statistik än med artificiell intelligens.

Maskinininlärning gör det möjligt för oss att lösa vissa typer av problem på mycket eleganta sätt. Den viktiga punkten är varför vi använder maskininlärning i praktiken. Du var till exempel tvungen att skriva kod för att upptäcka om någon gick. Om du dessutom hade tillgång till hans hastighet måste du skriva en ganska enkel bit kod för att specificera ett mått för hastighet som visar hur man går i verkligheten. Att utvidga denna situation till att gälla löpning verkar vara tillräckligt enkelt. Om vi dessutom vill täcka cykling behöver vi bara lägga till ytterligare ett randvillkor i vår kod. För tillfället är frågan hur det är med andra typer av aktiviteter, till exempel golf?

I själva verket innefattar golfspelande en hel del gång, men det ingår också att bära och svinga en massa klubbor. Så hur förklarar vi detta tillstånd? Det är här som maskininlärning kan hjälpa oss effektivt. I traditionell programmering uttrycker vi regler i språk, till exempel Kotlin, Java. Sedan tillämpar vi dessa regler på problem av intresse. Inom maskininlärning är paradigmet något annorlunda. I stället för att skriva en massa regler tar vi en massa data med etiketter, t.ex. foton av människor som ägnar sig åt olika typer av aktiviteter med motsvarande etiketter för dessa aktiviteter. Om vi matar in dessa data i vårt neurala nätverk kommer det dessutom att lära sig affärsreglerna åt oss utan att vi behöver definiera dem. Kort sagt har maskininlärning visat sig vara anmärkningsvärt effektivt för att lösa ett antal olika typer av problem som aktivitetsdetektering.

Maskinininlärning i Android-utveckling

Som du märkte är maskininlärning en programmeringsmetod som ger dina Android-appar förmågan att lära sig och förbättra sig automatiskt från erfarenhet utan att uttryckligen programmeras för att göra det. Dessutom är detta väl lämpat för Android-appar som använder ostrukturerade data som bilder och text, eller problem med ett stort antal parametrar som att förutsäga det vinnande idrottslaget. För närvarande erbjuder Android en mängd olika verktyg och metoder för maskininlärning: ML Design Guides, Googles nyckelfärdiga SDK för maskininlärning ML Kit, TF Hub för att hitta förbyggda banbrytande modeller, TF Lite Model Maker för att träna en befintlig modell med egna data samt ML Kit anpassade modeller och Android Studio för att integrera dessa modeller i din Android-app på ett lämpligt sätt.

För att utveckla ML-appar för Android kommer du att ställas inför fyra huvuduppgifter enligt följande:

  1. Design: identifiera produktmålen och tillhandahålla ML-designmönster för att uppnå dem.
  2. Bygga och träna: bygga ML-modellen eller träna en förtränad modell från Google.
  3. Inferens: processen för att använda en modell för maskininlärning, som redan har tränats för att utföra en viss uppgift.
  4. Distribuera: Installera och uppdatera ML-modeller för din Android-app.

Riktlinjer för utformning av Android-appar

Initialt är det ingen skillnad jämfört med annan avancerad teknik. Dina produktdesigners och ingenjörer kombineras alla för att bestämma vilken typ av problem vi försöker lösa med vår produkt. Så det är inte en enskild insats. Det är en extremt iterativ process när man har en ny teknik. Man vill testa gränserna och man vill samarbeta. Dessutom vill man observera hur användaren verkligen använder produkten. Detta innebär att design, produkthantering och programvaruteknik spelar viktiga roller i denna process. Google har tagit fram två guider inom detta område enligt följande:

  1. The People + AI Guidebook : I den här guideboken finns sex olika avsnitt som hjälper dig att strukturera ditt samtal med dina designers och produktchefer. Sammantaget erbjuder den bästa praxis för att hjälpa ditt team att fatta människocentrerade AI-produktbeslut.

2. The Material Design for Machine Learning spec : Denna riktlinje innehåller följande avsnitt:

För det första, nya riktlinjer för Material Design för ML-användningsfall på mobiler.

För det andra, möjliggör en fantastisk mobil UX från början till slut som drivs av ML.

För det tredje, källkod tillgänglig för objektdetektering och spårning samt streckkodsscanning.

Nyckelbeslutet i Android-utveckling

Ett nyckelbeslut som du bör ta ställning till i Android-utvecklingen är faktiskt om inferens kommer att köras på enheten eller om du kommer att använda en molntjänst som kan nås på distans. För att fatta detta beslut på ett korrekt sätt bör du överväga vissa parametrar som fördelar eller nackdelar. Om du till exempel väljer en strategi som bygger på enheten kommer du att ha följande fördelar:

  1. Integritet: I många fall är det lämpligare att bara ha allt på enheten. Därför behöver vi inte oroa oss för hur data behandlas i molnet.

2. Offline: Maskininlärning på enheten fungerar när det inte finns någon uppkoppling eller när nätverket är fragmentariskt. Om du till exempel tillbringar någon tid under tåg i tunnelbanan vet du att detta kan vara användbart.

3. Låg latenstid: Genom att köra vår bearbetning på enheten kan vi helt och hållet ta bort nätverkslatenstiden ur ekvationen. Om vi dessutom kopplar detta till de senaste framstegen inom hårdvaruacceleration kan vi ge användarna verkliga realtidsupplevelser på ett stort antal Android-enheter.

ML Kit för apputvecklare

Faktiskt sett är ML Kit SDK en ny produkt från Google, som presenterades 2018. ML Kit är ett mjukvaruutvecklingskit som gör det möjligt för utvecklare att förenkla integrationen av modeller för maskininlärning i sina mobilappar. Dessutom kan även en juniorutvecklare ta itu med den här uppgiften på ett enkelt sätt. En annan sak är att det gör dina iOS- och Android-appar mycket mer engagerande, personliga och användbara med lösningar som är optimerade för att köras på enheten. Som det nämndes använder sig mer än 25 000 appar på Android och iOS av ML Kits funktioner.

En ny SDK som ger Googles erfarenhet av maskininlärning till mobilutvecklare i ett kraftfullt och lättanvänt paket på Firebase.

ML Kit har några funktioner som kan kategoriseras i tre sektioner:

  1. Vision: Video och bildanalys API:er för att märka bilder och upptäcka streckkoder, text, ansikten och objekt.
  2. Naturligt språk: API:er för behandling av naturligt språk för att identifiera och översätta mellan 58 språk och ge svarsförslag.
  3. Anpassad: Bygg egna modeller med AutoML Vision Edge eller ta med egna TensorFlow Lite-modeller, kör experiment och distribuera dem i produktion med ML Kit.

Bilden tillhandahålls av Google Documents

Varje kategori har vissa funktioner. Vision har till exempel vissa funktioner som bas-API:er: TensorFlow Lite

TensorFlow Lite är i princip en uppsättning verktyg som hjälper programmerare att köra TensorFlow-modeller på mobila, inbäddade och IoT-enheter på lämpligt sätt. I själva verket ger den maskininlärningsinferens på enheten med låg latenstid och en liten binär storlek. Med andra ord är TensorFlow Lite utformad för att göra det enkelt att köra maskininlärning på enheter, i utkanten av nätverket, i stället för att skicka data fram och tillbaka från en server. TensorFlow Lite innehåller två huvudkomponenter:

  1. TensorFlow Lite-tolkaren : den körs (optimerade modeller) på många olika hårdvarutyper, t.ex. mobiltelefoner och mikrokontroller.

2. TensorFlow Lite-omvandlaren : den omvandlar TensorFlow-modellerna till en produktiv form som kan användas av tolkaren, och kan ha möjlighet att införa optimeringar för att förbättra den binära storleken och prestanda.

Sluttningsvis innehåller stegen för att använda TensorFlow Lite kortfattat följande steg:

  1. Välj en modell
  2. Konvertera modellen
  3. Deploiera till enheten
  4. Optimera modellen

AutoML Vision Edge

Den här nya funktionen från Google kan bygga anpassade bildklassificeringsmodeller från dina egna träningsdata. Om du planerar att känna igen innehållet i en bild kan ett alternativ vara att använda ML Kits API för bildmärkning på enheten. Men om du behöver en mer specialiserad modell för bildmärkning kan du använda Firebase ML och AutoML Vision Edge för att träna en modell med dina egna bilder och kategorier. Till exempel en modell för att skilja mellan arter av blommor eller typer av mat. Den anpassade modellen tränas i Google Cloud och kan sedan användas fullt ut på enheten.

Slutsatser

Maskinell inlärning är en programmeringsmetod som ger dina Android-appar möjlighet att lära sig och förbättra automatiskt utifrån tidigare erfarenheter. Som ett resultat av detta har Google utformat och implementerat ett antal avancerade funktioner och verktyg för Android-utveckling. I den här artikeln behandlas några huvudkoncept och avancerade funktioner som Google har föreslagit för Android-utvecklare.