Apple CreateML vs Kaggle

Wärend viru kuerzem WWDC huet Apple hiren neitste Tool genannt CreateML presentéiert. Als ML-Enthusiast war ech wierklech beandrockt iwwer wat ech op eng dediéiert Sessioun gesinn hunn (703), also hunn ech geduecht et wier et wäert ze ënnersichen wéi staark et wierklech ass.

1. CreateML an enger Nossschuel (Dir kënnt Fräilous wann Dir WWDC Presentatioun gekuckt hutt).

Create ML ass en neie Kader deen entwéckelt ass fir Entwéckler einfach a séier Maschinneleermodeller ze bauen mat Swift an Xcode. Fir de Moment ass et fäeg mat 3 Typen Daten ze schaffen: Biller, Text an Tabulaldaten. Den Workflow ass wierklech einfach, Dir braucht just Set vu Trainingsdaten ze liwweren, schreift e puer Zeilen Code an d'Magie geschitt, e klenge CoreML Modell ass prett fir an Ärer App benotzt ze ginn. Apple versprécht bedeitend Zäit vum Training ze reduzéieren, wat am Fall vun 10.000 Biller a Minutten sollt gezielt ginn (wéi ëmmer Apple vermeit Detailer ze liwweren). Training ass sou séier, well (am Fall vun engem Bildklassifizéierer) Apple benotzt Transfer Learning. Mir wëssen net wat Neural Netzwierk Basis ass, awer wärend der Presentatioun gouf Inception-v3 als e Beispill vun engem Standart vun der Konschtléisung fir Bildklassifikatioun ernimmt.

2. WWDC Demo Presentatioun an enger Nossschuel (Dir kënnt iwwersprangen wann Dir WWDC Presentatioun gekuckt hutt).

Wärend dem WWDC hunn Presentateuren gewisen wéi einfach mir verschidde Modeller kënne bauen, fir d'éischt war e Bildklassifizéierer, gebaut mat nëmme Koppelcodecode:

Zweet Beispill war ganz ähnlech, Text Classifier huet entscheet ob Text positiv oder negativ ass, wéi am Bildfall, nëmmen e puer Zeilen Code ware genuch fir en ze trainéieren:

Wéi fir mech, déi interessantst Demo war déi lescht, presentéieren Aarbecht mat tabulären Daten. An dësem Fall benotzt CreateML en neit Datformat, genannt MLDataTable, op den éischte Bléck ass et just e Wrapper fir normal Datmatrix, glécklech huet eng gebauter CSV an JSON Parser.

Am Fall vun Tabulärdaten bitt CreateML 2 Weeër: einfach een an e bësse méi raffinéiert. Als éischt kuckt de einfachste Wee fir Hauspräisformule ze fannen, et gesäit bal d'selwecht wéi béid Beispiller:

Tabellendatenprobleemer kënne geléist ginn (ofhängeg vum Fall) entweder MLRegressor fir Regressiounsproblemer a MLClassifier fir Klassifikatioun. Awer dat ass net alles wat wierklech interessant ass, wärend Dir un Tafeldaten schafft, kënnt Dir manuell décidéieren wéi eng Method fir Klassifikatioun / Regressioun benotzt gëtt, als CreateML Support Koppel déi am meeschten an der Industrie benotzt gëtt:

3. CreateML an echte Liewen Probleemer

Demo Apps sinn ëmmer sou einfach wéi méiglech, et mécht se einfach ze verstoen an dat ass ok. Awer am Fall vum Machine Learning, datt eppes mat einfachen Beispill funktionnéiert, heescht dat net wierklech datt et mat engem méi raffinéierte funktionnéiert. CreateML Zilben Benotzer sinn Entwéckler, net ML Experten oder Datewëssenschaftler, dofir hunn ech beschloss wéi en Duerchschnëtts ML Newbie ze behuelen, d'Déift net déif analyséieren, setze just Sets an CreateML a loosst et der Magie maachen. Ech hunn decidéiert Kaggle Concoursen als benchmark ze benotzen, an dann d'Qualitéit vum Model mat deem ze vergläichen wat Kagglers erreecht hunn, wollt ech och kucken wéi séier CreateML ass. A ville Fäll ass de Schlëssel vum Sucessfull Modell dat Verständnis an d'Viraarbechtung, wann den Entwéckler just CSV wäert importéieren an MLRegressor lafen an erwaarden héichqualitativ Resultater fir e sophistikéierte Problem ... hie wier wierklech enttäuscht mam Effekt. Duerfir hunn ech decidéiert Beispiller ze wielen, déi no wirklech liewege Probleemer sinn awer net ganz komplex, well dëst wärlos ouni Datenprécesséierung ouni eppes.

Meng Macbook Pro config als Referenz:

Ech hunn ugefaang mam Image Classifier ze testen, fir ze testen hunn ech "Plant Seedlings Classification" benotzt (https://www.kaggle.com/c/plant-seedlings-classification), wat d'Ziel ass d'Aart vun engem Keimling aus engem Bild ze bestëmmen. Dataset ass wesentlech méi grouss wéi dee wat an der Demo presentéiert gëtt, et enthält iwwer 4300 Biller, ech lafen de Code mat nëmmen 2 Zeilunge vum Code, d'Resultat ass drënner ze gesinn:

Ech war wierklech beandrockt mam Resultat, et huet 5 Minutten op engem typeschen Entwéckler-Laptop geholl fir en zimlech gudde Modell ze trainéieren, 1,7GB vun Trainingsdaten benotzt. Gëtt et e bessere Wee fir Proof of Concept Modell ze bauen an eng iOS / macOS App ze setzen fir eng Iddi z'iwwerpréiwen? Ech mengen net. Apple, Dir hutt eng super Aarbecht gemaach, wierklech. Wat och interessant ass ze bemierken, ass datt CreateML automatesch Validatiounsset erstallt vun deem, deen als Training geliwwert gëtt, sou datt den Entwéckler dës Donnéeën net manuell ze splécken, e klenge Schrëtt fir de Prozess ze vereinfachen.

Ok, net jiddereen wäert "Not Hotdog" App opbauen, also kucke mer en anert ganz allgemengt Fall am Maschinnléieren, "Tabular Data" a Regressioun / Klassifikatiounsproblemer. An dësem Fall hunn ech mat "Getting Started Titanic Survivals" (https://www.kaggle.com/c/titanic) ugefaang, d'Zil vun dësem Concours ass et ze bestëmmen ob bestëmmte Passagéier Kollisioun mam Äisbierg iwwerliewe baséieren op Daten wéi Alter, Geschlecht , Zort Ticket, Deck asw.

Ech erofgeluede CSV Datei, erstellt MLClassifier, presséiert Play a…

Ok, et funktionnéiert net, CreateML brauch perfekt propper Donnéeën. Dat ass net e grousst Problem, ech kann Reihen mat eidele Sailen erofhuelen andeems e puer Zeile vum Python benotzt, awer dat reduzéiert d'Quantitéit vun Trainingsdaten vun 891 Beispiller op nëmmen 183, awer op d'mannst funktionnéiert et. Beim nächste Laf xCode huet mir informéiert datt: "Feature \ 'Ticket \' net vum Typ ass (numeresch, String, Array oder Wierderbuch). \ N" Also hunn ech dës Kolonn erofgeholl an endlech en Aarbechtsmodell kritt:

Eng Kéier sinn ech beandrockt mam Resultat, d'Date ware relativ einfach, awer et ass no wéi vill Entwéckler an typeschen Apps konfrontéiert sinn. CreateML funktionnéiert, et ass séier an effizient.

Zweeten Versuch war de Concours "Restaurant Revenue Prediction" (https://www.kaggle.com/c/restaurant-revenue-prediction/data), wou d'Zil ass d'Recetten vum Restaurant an engem bestëmmte Joer ze schätzen, mat Datum vun der Ouverture, Stad, Aart Restaurant etc. Déiselwecht wéi beim Titanic, hunn ech just d'Donnéeën erofgelueden an eng Spillplaz lafen:

An dësem Fall huet CreateML decidéiert de Boosted Tree Regressor ze benotzen an als Resultat ass MSE nach méi déif wéi deen dee virun 3 Joer d'Konkurrenz gewonnen huet. Natierlech kann de Grond dofir sinn datt de Fakt ass datt Leaderboards erstallt ginn op Basis vun Donnéeën déi net ëffentlech sinn, awer ëmmer nach, CreateML konnt ganz gutt opbauen, méiglecherweis och am Verglach mam Gewënnsmodell an e puer Sekonnen. Dëst ass wat déi meescht vun den Entwéckler brauchen.

4. Vir- an Nodeeler vu CreateML

Virdeeler:

  • de Moment ass et am einfachsten Wee ML Modeller fir iOS / macOS ze bauen, besonnesch fir Proof Of Concept Apps, oder déi mat relativ einfachen Daten schaffen.
  • CreateML mécht ML Welt op Dausende vun iOS / MacOS Entwéckler op
  • ass ganz effizient an einfach ze benotzen

Nodeeler:

  • ganz wéineg Weeër fir en endgülteg Modell z'ënnerstëtzen
  • keng ëffentlech Wëssen wat Modell benotzt gëtt fir d'Biller ze klassifizéieren
  • keng Dateveraarbechtungsinstrumenter (awer dat ass evident, Apple Zil sinn net Daten Wëssenschaftler, awer Software Entwéckler)

5. Meng Meenung

Gesäit aus wéi CreateML wierklech e super Tool ass, besonnesch fir Entwéckler, déi guer net mat Machine Learning geschafft hunn, et ass séier, zimlech effizient an extrem einfach mat ze starten. Wann Dir en iOS / macOS Entwéckler sidd, da gitt et einfach.

6. Open Fro

Ass Probleem vu groussen ML Modeller fir Bildklassifikatioun just verstoppt datt all Gewichte bannent iOS / macOS gelagert sinn an CreateML baut CoreML Modell mat nëmme Gewiichter fir déi lescht, nei geriicht Schicht vum (Inception-V3)?