Vorig jaar lanceerde Apple Core ML-a segue in de wereld van machine learning voor Apple-ontwikkelaars. Voordien maakten we al gebruik van machine learning met technologieën als AutoCorrect, Siri en een voorspellend toetsenbord, maar Core ML bracht een nieuw niveau van kracht en flexibiliteit in handen van ontwikkelaars. Tijdens WWDC 18 heeft Apple Core ML 2 aangekondigd, en in dit artikel leer je wat er nieuw is.
Voordat we ingaan op de veranderingen die Core ML 2 met zich meebrengt, zullen we kort bespreken wat Core ML echt is. Meer specifiek, laten we een beetje meer leren over de nuances van machine learning. Core ML is een framework waarmee iOS- en MacOS-ontwikkelaars eenvoudig en efficiënt machine learning in hun apps kunnen implementeren.
Machine learning is het gebruik van statistische analyse om computers te helpen bij het nemen van beslissingen en voorspellingen op basis van kenmerken die in die gegevens worden gevonden. Met andere woorden, het is de handeling van het hebben van een computer vorm een abstract begrip van een bestaande dataset (een "model" genoemd), en dat model gebruiken om nieuwere gegevens te analyseren.
Met behulp van low-level technologieën in Apple-platforms kan Core ML snelle en efficiënte machine learning-tools bieden om in uw apps te implementeren. Dit werkt door Metal en Accelerate te gebruiken om ten volle te profiteren van de GPU en CPU op het apparaat, waardoor een naadloze snelheid wordt bereikt. Hierdoor kan machine learning ook op het apparaat werken in plaats van voor elke aanvraag toegang tot internet te hebben.
Voorspelt output feature-waarden van de gegeven een reeks invoerfunctie-waarden. - Apple Documentation
Batchvoorspelling is vermeldenswaard omdat Apple het niet had in de eerste versie van Core ML. In één oogopslag kunt u met batchvoorspelling uw model uitvoeren op een set gegevens en een set uitgangen krijgen.
Als je een Core ML-model had om afbeeldingen te classificeren op of ze bloemen of bomen bevatten en je wilde meerdere afbeeldingen classificeren, laten we zeggen 300, dan zou je een for loop
om door elk van de afbeeldingen te herhalen en classificeer ze regelmatig met behulp van uw model.
In Core ML 2 echter, krijgen we wat Apple de Batch Predict API. Dit stelt ons in staat om meerdere voorspellingen te doen op een set gegevens zonder for-loops te hoeven gebruiken. Als je het wilde gebruiken, zou je gewoon bellen:
modelOutputs = model.prediction (van: modelInputs, options: options)
modelInputs
, in dit voorbeeld is het aantal ingangen waarop u uw model wilt uitvoeren, maar we zullen niet dekken wat de opties
staan in dit artikel. Als u meer wilt weten over het gebruik van de Batch Predict API, kunt u de documentatie van Apple raadplegen. Hoewel dit in eerste instantie misschien niet zo belangrijk lijkt, verbetert het de prestaties van het model met maar liefst 30%!
Gebruik Maak ML met vertrouwde tools zoals Swift en macOS playgrounds om aangepaste machine learning-modellen op je Mac te creëren en te trainen. Je kunt modellen trainen om taken uit te voeren zoals het herkennen van afbeeldingen, het extraheren van betekenis uit tekst of het vinden van relaties tussen numerieke waarden. - Apple Documentation
Hoewel Core ML altijd al een krachtig platform was, was het niet altijd gemakkelijk om je eigen modellen te maken. In het verleden was het bijna nodig om bekend te zijn met Python om zelfs de meest basismodellen te maken. Met Core ML 2 kregen we ook Create ML, een eenvoudige manier voor u om uw eigen Core ML-modellen te maken.
Maak ML is echter niet alleen beperkt tot afbeeldingen gebaseerde modellen. Zonder zelfs maar een echt Xcode-project te creëren, kun je verschillende soorten modellen in een speeltuin trainen. Bovendien kunt u deze modellen ook testen en exporteren voor gebruik in elke toepassing.
Met een patroon zoals een convolutioneel neuraal netwerk, kan Create ML u helpen bij het maken van een aangepaste afbeeldingclassificator om bepaalde kenmerken van een bepaalde afbeelding te identificeren. Je zou het bijvoorbeeld kunnen trainen om een boom en een bloem te onderscheiden.
Of je zou het kunnen gebruiken voor complexere toepassingen, zoals het identificeren van het type plant of een bepaald ras van de hond. Op basis van het aantal afbeeldingen neemt de nauwkeurigheid toe, zoals bij elk machine-leermodel.
Bekijk mijn bericht hier op Envato Tuts + voor meer informatie over het maken van een afbeeldingsclassificator in ML maken.
Image ML is niet alleen een hulpmiddel voor beeldclassificatie, maar kan u ook helpen bij het maken van op tekst gebaseerde modellen voor het leren van machines. U kunt bijvoorbeeld een model maken dat u het gevoel in een bepaalde zin vertelt. Of u kunt een spamfilter maken met kenmerken van de tekst (dat wil zeggen de gebruikte woorden) om te controleren of een tekenreeks "spam" of "geen spam" is.
Soms kunnen verschillende gegevenspunten of functies nuttig zijn bij het classificeren van gegevens. Spreadsheets zijn hiervan een zeer sterk voorbeeld, en Create ML kan Core ML-modellen maken op basis van CSV bestanden ook.
Nu kunnen uw Excel-spreadsheets worden gebruikt om een model te maken dat de aandelenmarkt voorspelt op basis van koop- en verkooppatronen; of misschien voorspelt het het genre van het boek op basis van de naam van de auteur, de titel en het aantal pagina's.
Het combineren van uw machine-leermodel in uw app is de gemakkelijkste manier om aan de slag te gaan met Core ML. Naarmate modellen geavanceerder worden, kunnen ze groot worden en veel opslagruimte innemen. Voor een op neuraal netwerken gebaseerd model, overweeg dan om de voetafdruk te verkleinen door een lagere precisie-weergave te gebruiken voor de gewichtsparameters. - Apple-documentatie
Met de introductie van Core ML 2 en iOS 12 zijn ontwikkelaars nu in staat om de grootte van hun reeds getrainde modellen met meer dan 70% te verminderen ten opzichte van de oorspronkelijke grootte. Modelgrootte kan een reëel probleem zijn - het is je misschien al opgevallen dat sommige van je apps bij elke update groter en groter worden!
Dit komt niet als een verrassing, omdat ontwikkelaars hun machine-learningmodellen steeds beter maken, en natuurlijk nemen meer geavanceerde modellen, zoals vermeld in de ontwikkelaarsdocumentatie, meer opslagruimte in beslag, waardoor de eigenlijke app groter wordt. Als de app te groot wordt, stoppen sommige gebruikers mogelijk met het downloaden van updates en stoppen ze met het gebruik van deze apps.
Gelukkig heb je nu het vermogen om quantize een model, waarmee de grootte ervan aanzienlijk kan afnemen, afhankelijk van de hoeveelheid kwaliteit die u bereid bent op te geven. Kwantisatie is niet de enige manier om te gaan; er zijn ook andere manieren!
Core ML Tools biedt ontwikkelaars een manier om de gewichten tot de helft te verkleinen. Als je niet weet wat gewichten zijn nog, het is oke; alles wat u moet weten, is dat ze rechtstreeks verband houden met de precisie van het model. Zoals je misschien al geraden hebt, is halve grootte gelijk aan halve precisie.
Modellen voor Core ML 2 hadden alleen de optie om te worden weergegeven met 32 bits, wat geweldig is voor precisie, maar niet ideaal voor opslagcapaciteit. Een halve precisie reduceert dit tot slechts 16 bits en kan de grootte van het model aanzienlijk verminderen. Als u dit met uw modellen wilt doen, bezoek dan de documentatie voor een uitgebreide handleiding.
Het is geweldig om uw modellen op uw apparaat te hebben, omdat dit resulteert in betere beveiliging en betere prestaties, en het is niet afhankelijk van een solide internetverbinding. Als uw app echter meerdere modellen gebruikt om een naadloze ervaring voor de gebruiker te creëren, zijn al deze modellen mogelijk niet meteen nodig.
Je kunt deze modellen ook naar behoefte downloaden en ze ter plekke compileren in plaats van ze te bundelen met je app en de hoeveelheid ruimte te vergroten die je app opneemt op het apparaat van je gebruiker. U kunt deze modellen zelfs downloaden en tijdelijk op het apparaat van uw gebruiker opslaan om te voorkomen dat hetzelfde model meerdere keren wordt gedownload.
In dit artikel hebt u geleerd over de nieuwste en beste technologieën in Core ML en hoe deze zich verhouden tot de versie van de API van het vorige jaar. Terwijl u hier bent op Envato Tuts +, bekijkt u enkele van onze andere geweldige machine-leerinhouden!