Ce este nou în ML2 Core?

Anul trecut, Apple a lansat Core ML-un segue în lumea învățării mașinilor pentru dezvoltatorii Apple. Înainte de aceasta, deja folosim învățarea mașinilor cu tehnologii precum AutoCorrect, Siri și o tastatură predictivă, dar Core ML a adus un nou nivel de putere și flexibilitate în mâinile dezvoltatorilor. În timpul programului WWDC 18, Apple a anunțat Core ML 2, iar în acest articol veți afla ce este nou.

La o privire

Înainte de a ne arunca cu capul în schimbările pe care Core ML 2 le aduce, să discutăm pe scurt ce este Core ML în realitate. Mai precis, să învățăm puțin despre nuanțele învățării mecanice. Core ML este un cadru care permite dezvoltatorilor iOS și macOS să implementeze cu ușurință și eficient implementarea mașinilor în aplicațiile lor.

Ce este învățarea mașinilor?

Învățarea prin mașină este utilizarea analizei statistice pentru a ajuta computerele să ia decizii și predicții pe baza caracteristicilor găsite în acele date. Cu alte cuvinte, este actul de a avea o formă de calculatoare o înțelegere abstractă a unui set de date existent (numit "model") și de a folosi acel model pentru a analiza date mai noi.

Cum functioneazã?

Folosind tehnologii de nivel scăzut în platformele Apple, Core ML este capabil să ofere instrumente rapide și eficiente de învățare a mașinilor pentru a le implementa în aplicații. Acest lucru funcționează utilizând tehnologia Metal și Accelerate pentru a profita din plin de GPU și CPU de pe dispozitiv, făcând astfel o viteză fără probleme. Acest lucru permite, de asemenea, învățarea mașinilor să funcționeze pe dispozitiv în loc de a avea nevoie de acces la internet pentru fiecare solicitare.

Predicție 1. Lot

Prezintă valorile caracteristicilor de ieșire din un lot de valori ale caracteristicilor de intrare.-Documentația Apple

Estimarea lotului este de remarcat deoarece Apple nu a avut-o in prima versiune a Core ML. Pe scurt, predicția lotului vă permite să executați modelul pe un set de date și să obțineți un set de rezultate.

Dacă ați avea un model Core ML pentru a clasifica imaginile dacă conțin flori sau copaci și doriți să clasificați mai multe imagini, să zicem 300, va trebui să scrieți pentru buclă să iterați prin fiecare dintre imagini și să clasificați în mod regulat fiecare utilizând modelul dvs..

În Core ML 2, cu toate acestea, obținem ceea ce Apple numește Batch Predict API. Acest lucru ne permite să facem predicții multiple pe un set de date fără a fi nevoie să folosim for-bucle. Dacă doriți să o utilizați, ați sunat:

modelOutputs = model.predicție (de la: modelIputuri, opțiuni: opțiuni)

modelInputs, în acest exemplu, este setul de intrări la care doriți să vă difuzați modelul, dar nu vom acoperi ceea ce Opțiuni sunt în acest articol. Dacă doriți să aflați mai multe despre modul de utilizare a API-ului Batch Predict, nu ezitați să consultați documentația Apple. În timp ce acest lucru nu pare a fi o afacere mare la început, de fapt, îmbunătățește performanța modelului cu un procent de 30%!

2. Modele de instruire

Utilizați Crearea ML cu instrumente familiare cum ar fi terenurile de joacă Swift și MacOS pentru a crea și a pregăti modele personalizate de învățare pe mașină pe Mac. Puteți instrui modelele pentru a efectua activități cum ar fi recunoașterea imaginilor, extragerea semnificației din text sau găsirea de relații între valorile numerice. - Documentația Apple 

În timp ce Core ML a fost întotdeauna o platformă puternică, nu a fost întotdeauna ușor să vă creați propriile modele. În trecut, era aproape necesar să fii familiarizat cu Python pentru a crea chiar și modelele cele mai de bază. Cu Core ML 2, am obținut și Crearea ML, o modalitate ușoară de a vă crea propriile modele Core ML.

Crearea ML nu se limitează doar la modele bazate pe imagini. Fără a crea un proiect real Xcode, puteți instrui diferite tipuri de modele într-un loc de joacă. În plus, puteți testa aceste modele și le puteți exporta pentru a fi utilizate în orice aplicație.

Clasificatorul de imagini

Cu un model, cum ar fi o rețea neuronală convoluțională, Create ML vă poate ajuta să creați un clasificator de imagini personalizat pentru a identifica anumite caracteristici dintr-o imagine dată. De exemplu, ați putea să-l pregătiți pentru a distinge între un copac și o floare. 

Sau puteți să-l utilizați pentru aplicații mai complexe, cum ar fi identificarea tipului de plantă sau a unei anumite rase de câini. Pe baza numărului de imagini, precizia crește, ca și în cazul oricărui model de învățare a mașinilor.

Verificați postarea mea aici pe Envato Tuts + pentru a afla cum să creați un clasificator de imagini în Create ML.

Clasificatorul de texte (NLP)

Pe lângă faptul că este un instrument pentru clasificarea imaginilor, Crearea ML vă poate ajuta, de asemenea, să creați modele de învățare automată bazate pe text. De exemplu, puteți crea un model care să vă arate sentimentul într-o anumită propoziție. Sau puteți crea un filtru de spam care utilizează caracteristicile textului (adică cuvintele folosite) pentru a verifica dacă un șir este "spam" sau "nu este spam".

Clasificatorul de date tabular 

Uneori, mai multe puncte de date sau caracteristici pot fi utile atunci când încercați să clasificați datele. Foile de calcul sunt un exemplu foarte puternic al acestui lucru, iar Crearea ML poate crea modele Core ML bazate pe CSV și fișierele.

Acum, foile dvs. de calcul Excel pot fi folosite pentru a face un model care prezice piața bursieră pe baza modelelor de cumpărare și vânzare; sau poate prezice genul cărții pe baza numelui autorului, a titlului și a numărului de pagini.

3. Reducerea dimensiunii modelului

Legarea modelului dvs. de învățare în mașină în aplicația dvs. este cel mai simplu mod de a începe cu Core ML. Pe măsură ce modelele sunt mai avansate, ele pot deveni mari și pot ocupa un spațiu semnificativ de stocare. Pentru un model bazat pe rețele neuronale, luați în considerare reducerea amprentei sale prin utilizarea unei reprezentări de precizie mai scăzută pentru parametrii de greutate. - Documentația Apple

Odată cu introducerea produselor Core ML 2 și iOS 12, dezvoltatorii au acum posibilitatea de a reduce dimensiunea modelelor deja instruite cu peste 70% față de dimensiunea originală. Dimensiunea modelului poate fi o problemă reală - este posibil să fi observat că unele dintre aplicațiile dvs. devin din ce în ce mai mari cu fiecare actualizare!

Acest lucru nu este o surpriză, deoarece dezvoltatorii își fac mai bine modelele de învățare automată și, bineînțeles, după cum se precizează în documentația dezvoltatorului, modelele mai avansate ocupă mai mult spațiu de stocare, ceea ce face ca aplicația reală să fie mai mare. Dacă aplicația devine prea mare, unii utilizatori pot opri descărcarea actualizărilor și pot întrerupe utilizarea acestor aplicații.

Din fericire, totuși, acum aveți abilitatea în calitate dentize un model care permite mărimea sa să scadă în mod semnificativ, pe baza cantității de calitate pe care sunteți dispus să o renunți. Cuantificarea nu este singura modalitate de a merge; există și alte modalități!

Conversia la Half-Precision

Core ML Tools oferă dezvoltatorilor o modalitate de a reduce greutățile la jumătate. Dacă nu știți ce greutăți sunt încă, e în regulă; tot ce trebuie să știți este că acestea sunt direct legate de precizia modelului. Așa cum probabil ați ghicit, jumătate de mărime este egală cu jumătate de precizie.

Modelele înainte ca Core ML 2 să aibă opțiunea de a fi reprezentate cu 32 de biți, ceea ce este excelent pentru precizie, dar nu este ideal pentru spațiul de stocare. Half-precision reduce acest lucru la doar 16 biți și poate reduce foarte mult dimensiunea modelului. Dacă doriți să faceți acest lucru pentru modelele dvs., vizitați documentația pentru un ghid cuprinzător.

Descărcați și compilați

Este minunat să aveți modelele de pe dispozitiv, deoarece acestea duc la o mai mare securitate și performanță și nu depind de o conexiune solidă la internet. Cu toate acestea, dacă aplicația dvs. utilizează mai multe modele pentru a crea o experiență fără probleme pentru utilizator, este posibil ca toate aceste modele să nu fie necesare simultan.

De asemenea, puteți să descărcați aceste modele pe o bază necesară și să le compilați pe loc în loc să le îmbinați cu aplicația dvs. și să creșteți spațiul pe care aplicația dvs. îl ocupă pe dispozitivul utilizatorului. Puteți să descărcați aceste modele și să le stocați temporar pe dispozitivul utilizatorului temporar pentru a evita descărcarea de mai multe ori a aceluiași model.

Concluzie

În acest articol, ați învățat despre cele mai recente și cele mai bune tehnologii din Core ML și cum se sincronizează cu versiunea anterioară a API. În timp ce sunteți aici pe Envato Tuts +, verificați câteva dintre celelalte conținuturi de învățare de mașină!

Cod