Apple CreateML vs Kaggle

Během nedávné WWDC Apple představil svůj nejnovější nástroj s názvem CreateML. Jako nadšený ML jsem byl opravdu ohromen tím, co jsem viděl na specializované relaci (703), takže jsem si myslel, že by stálo za to prozkoumat, jak moc je opravdu silný.

1. CreateML v kostce (můžete přeskočit, pokud jste sledovali prezentaci WWDC).

Create ML je nový rámec navržený tak, aby vývojářům pomohl snadno a rychle vytvořit modely strojového učení pomocí Swift a Xcode. Zatím je schopen pracovat se 3 typy dat: obrázky, text a tabulková data. Pracovní postup je opravdu jednoduchý, stačí dodat sadu tréninkových dat, napsat několik řádků kódu a stane se kouzlo, malý model CoreML je připraven k použití ve vaší aplikaci. Apple slibuje, že výrazně zkrátí dobu školení, která by se v případě 10 000 obrázků měla počítat v minutách (jako vždy se Apple vyhýbá poskytnutí podrobností). Školení je tak rychlé, protože (v případě klasifikátoru obrázků) Apple používá Transfer Learning. Nevíme, co je Neural Network základem, ale během prezentace byl Inception-v3 uveden jako příklad nejmodernějšího řešení pro klasifikaci obrázků.

2. Demonstrační prezentace WWDC v kostce (můžete přeskočit, pokud jste sledovali prezentaci WWDC).

Během WWDC přednášející ukázali, jak snadno můžeme vytvářet různé modely, nejprve byl klasifikátor obrázků, postavený pouze pomocí několika řádků kódu:

Druhý příklad byl velmi podobný, textový klasifikátor rozhodoval, zda je text pozitivní nebo negativní, jako v případě obrázku, jen pár řádků kódu stačilo na jeho trénování:

Pokud jde o mě, nejzajímavější demo bylo poslední, představující práci s tabulkovými daty. V tomto případě CreateML používá nový datový formát, nazvaný MLDataTable, na první pohled je to jen obal pro normální datovou matici, naštěstí má zabudovaný CSV a JSON parser.

V případě tabulkových dat nabízí CreateML dvě cesty: snadná a trochu sofistikovanější. Nejprve se podívejme na nejjednodušší způsob, jak najít vzorec ceny domů, vypadá to téměř stejně jako oba předchozí příklady:

Problémy s tabulkovými daty mohou být vyřešeny (v závislosti na případě) pomocí MLRegressor pro regresní problémy a MLClassifier pro klasifikaci. Ale to není všechno, co je opravdu zajímavé. Při práci na tabulkových datech se můžete ručně rozhodnout, jakou metodu klasifikace / regrese použijete, protože podpora CreateML je nejběžněji používanou v průmyslu:

3. CreateML v reálných životních problémech

Ukázkové aplikace jsou vždy co nejjednodušší, usnadňují jim pochopení a to je v pořádku. V případě strojového učení však skutečnost, že něco pracuje s jednoduchým příkladem, neznamená, že to bude fungovat se sofistikovanějším. Cíloví uživatelé CreateML jsou vývojáři, nikoli odborníci na ML nebo vědci v oblasti dat, a tak jsem se rozhodl chovat se jako průměrný nováček ML, data důkladně neanalyzovat, pouze vložit sady do CreateML a nechat to dělat kouzlo. Rozhodl jsem se použít soutěže Kaggle jako měřítko a poté porovnat kvalitu modelu s tím, čeho dosáhl Kagglers, také jsem chtěl zkontrolovat, jak rychle je CreateML. V mnoha případech je klíčem k úspěšnému modelu porozumění datům a předzpracování, pokud vývojář pouze importuje CSV a spustí MLRegressor, který očekává vysoce kvalitní výsledky pro sofistikovaný problém… může být skutečně zklamán efektem. Z tohoto důvodu jsem se rozhodl vybrat příklady, které jsou blízké problémům reálného života, ale nejsou příliš složité, protože by to bylo zbytečné bez předzpracování dat.

My Macbook Pro config jako reference:

Začal jsem testováním Image Classifier, pro testování jsem použil „Classing seedlingings“ (https://www.kaggle.com/c/plant-seedlings-classification), jehož cílem je určit druh sazenice z obrázku. Dataset je výrazně větší než ten, který je uveden na ukázce, obsahuje více než 4300 obrázků, spustím kód pouze pomocí 2 řádků kódu, výsledek je viditelný níže:

Na výsledek jsem byl opravdu ohromen. Trvalo to 5 minut na typickém vývojářském notebooku, aby se naučil docela dobrý model s využitím tréninkových dat 1,7 GB. Existuje lepší způsob, jak vytvořit model Proof of Concept a uvést do funkční aplikace pro iOS / macOS k ověření nápadu? Nemyslím si to. Apple, opravdu jsi odvedl skvělou práci. Co je také zajímavé si všimnout, je to, že CreateML automaticky vytváří sadu validací od té, která byla poskytnuta jako školení, takže vývojář nemusí tato data rozdělit ručně, což je malý krok ke zjednodušení procesu.

Dobře, ne každý bude stavět aplikaci „Not Hotdog“, takže se podívejme na další velmi častý případ strojového učení, „Tabular Data“ a regresní / klasifikační problémy. V tomto případě jsem začal s „Začínáme Titanic Survivals“ (https://www.kaggle.com/c/titanic), cílem této soutěže je zjistit, zda konkrétní cestující přežije kolizi s ledovcem na základě údajů jako věk, pohlaví , typ lístku, balíček atd.

Stáhl jsem soubor CSV, vytvořil MLClassifier, stiskl play a ...

Dobře, nefunguje to, CreateML potřebuje dokonale čistá data. To není velký problém, mohu odstranit řádky s prázdnými sloupci pomocí několika řádků Pythonu, ale to zmenší množství tréninkových dat z 891 příkladů na pouhých 183, ale alespoň to funguje. Při příštím spuštění mě xCode informoval, že: „Funkce \ Ticket \ 'není typu (číselný, řetězec, pole nebo slovník). \ N" takže jsem tento sloupec upustil a konečně dostal funkční model:

Opět jsem na výsledek ohromen, data byla relativně snadná, ale je to blízko tomu, s čím se mnoho vývojářů může setkat v typických aplikacích. CreateML funguje, je rychlý a efektivní.

Druhým pokusem byla soutěž „Příjmy z restaurace“ (https://www.kaggle.com/c/restaurant-revenue-prediction/data), jejímž cílem je odhadnout tržby restaurace v daném roce s použitím data otevření, město, typ restaurace atd. Stejně jako v případě Titanicu jsem si stáhl data a spustil hřiště:

V tomto případě se CreateML rozhodl použít Boosted Tree Regressor a v důsledku toho je MSE ještě nižší než ten, který vyhrál soutěž před 3 lety. Důvodem by samozřejmě mohla být skutečnost, že výsledkové tabulky jsou vytvářeny na základě dat, která nejsou veřejná, ale CreateML byl schopen vytvořit velmi dobrý, pravděpodobně dokonce srovnatelný s vítězným modelem během několika sekund. To většina vývojářů potřebuje.

4. Výhody a nevýhody CreateML

Klady:

  • v současné době je to nejjednodušší způsob, jak vytvořit ML modely pro iOS / macOS, zejména pro aplikace Proof Of Concept, nebo pro ty, kteří pracují s relativně jednoduchými daty
  • CreateML otevírá ML svět tisícům vývojářů iOS / macOS
  • je velmi efektivní a snadno použitelný

Nevýhody:

  • velmi málo způsobů vyladění a ladění finálního modelu
  • není známo, jaký model se používá ke klasifikaci obrázků
  • žádné nástroje pro předzpracování dat (ale je zřejmé, že cíl společnosti Apple není vědci v oblasti dat, ale vývojáři softwaru)

5. Můj názor

Vypadá to, že CreateML je opravdu skvělý nástroj, zejména pro vývojáře, kteří se strojovým učením vůbec nepracovali, je rychlý, dosti efektivní a velmi snadno začít. Pokud jste vývojář iOS / macOS, zkuste to.

6. Otevřená otázka

Je problém velkých ML modelů pro klasifikaci obrázků skryty tím, že všechny hmotnosti jsou uloženy v iOS / macOS a CreateML vytváří model CoreML obsahující pouze váhy pro poslední, přeškolenou vrstvu (Inception-V3)?