Apple CreatML vs Kaggle

Gjatë WWDC së fundmi, Apple prezantoi mjetin e tyre më të ri të quajtur CreatML. Si një entuziast i ML mua më bëri shumë përshtypje ajo që kam parë në seancën e dedikuar (703), kështu që mendova se do të ishte e vlefshme të hetosh sesa i fuqishëm është në të vërtetë.

1. KrijoniML me pak fjalë (mund të kaloni nëse keni shikuar prezantimin WWDC).

Krijo ML është një kornizë e re e krijuar për të ndihmuar zhvilluesit me lehtësi dhe shpejt të ndërtojnë modele të mësimit të makinerive duke përdorur Swift dhe Xcode. Ndërsa tani është në gjendje të punojë me 3 lloje të të dhënave: imazhe, tekst dhe të dhëna tabelare. Rrjedha e punës është me të vërtetë e thjeshtë, ju vetëm duhet të dorëzoni një seri të të dhënave të trajnimit, të shkruani disa rreshta kodesh dhe të ndodhë magji, modeli i vogël CoreML është gati për t'u përdorur në aplikacionin tuaj. Apple premton të zvogëlojë ndjeshëm kohën e trajnimit, e cila në rast të 10,000 imazheve duhet të llogaritet brenda disa minutash (si gjithmonë Apple shmang dhënien e detajeve). Trajnimi është kaq i shpejtë, sepse (në rast të klasifikimit të imazhit) Apple përdor mësimin e transferimit. Ne nuk e dimë se çfarë është baza e Rrjetit Neural, por gjatë prezantimit Inception-v3 u përmend si një shembull i zgjidhjes së artit për klasifikimin e figurave.

2. Prezantimi WWDC Demo me pak fjalë (mund të kaloni nëse keni shikuar prezantimin WWDC).

Gjatë WWDC, prezantuesit treguan se sa lehtë mund të ndërtojmë modele të ndryshme, së pari ishte klasifikuesi i figurave, i ndërtuar duke përdorur vetëm disa linja kodesh:

Shembulli i dytë ishte shumë i ngjashëm, Klasifikuesi i Tekstit vendosi nëse teksti është pozitiv ose negativ, pasi në rastin e imazhit, vetëm disa linja kodi ishin të mjaftueshme për ta trajnuar atë:

Sa për mua, demoja më interesante ishte e fundit, duke paraqitur punë me të dhëna tabelare. Në këtë rast, CreatML po përdor formatin e ri të të dhënave, të quajtur MLDataTable, në shikim të parë është thjesht një mbështjellës për matricën normale të të dhënave, për fat të mirë ka ndërtuar bashkëshortin CSV dhe JSON.

Në rast të të dhënave tabelore, KrijimiML ofron 2 rrugë: e lehtë një dhe pak më e sofistikuar. Në fillim hidhni një vështrim në mënyrën më të thjeshtë për të gjetur formulën e çmimit të shtëpive, duket pothuajse e njëjtë me të dy shembujt e mëparshëm:

Problemet e të dhënave tabelare mund të zgjidhen (në varësi të rastit) duke përdorur ose MLRegressor për problemet e regresionit dhe MLClassifier për klasifikimin. Por nuk janë të gjitha ato që janë vërtet interesante, ndërsa punoni në të dhëna tabelare, mund të vendosni manualisht se cila metodë e klasifikimit / regresionit do të përdoret, si çift mbështetës Krijimi më i përdorur zakonisht në industri:

3. KrijoniML në problemet e jetës reale

Aplikacionet demo janë gjithmonë aq të thjeshta sa të jetë e mundur, i bën ata të kuptueshëm lehtë dhe kjo është në rregull. Sidoqoftë, në rastin e Mësimit të Makinerisë, fakti që diçka po punon me një shembull të thjeshtë, nuk do të thotë se do të funksionojë me një më të sofistikuar. Përdoruesit e synuar të krijimitML janë zhvillues, jo ekspertë të ML ose shkencëtarë të të dhënave, kështu që unë vendosa të sillemi si një i ri mesatar i ML, mos i analizoni thellësisht të dhënat, thjesht vendosni grupe në CreateML dhe lëreni të bëjë magji. Vendosa të përdor garat e Kaggle si një pikë referimi, dhe më pas të krahasoja cilësinë e modelit me atë që arriti Kagglers, gjithashtu desha të kontrolloja se sa i shpejtë është CreatML. Në shumë raste, kryesore për modelin e suksesshëm është të kuptuarit dhe përpunimi i të dhënave, nëse zhvilluesi vetëm do të importojë CSV dhe do të kandidojë MLRegressor duke pritur rezultate me cilësi të lartë për një problem të sofistikuar ... ai mund të jetë vërtet i zhgënjyer me efektin. Për shkak të kësaj vendosa të zgjedh shembuj, të cilët janë afër problemeve të jetës reale, por jo shumë komplekse, pasi kjo do të ishte e pakuptimtë pa përpunimin e të dhënave.

Konfigurimi i Macbook Pro si referencë:

Fillova me testimin e Classifikuesit të Imazhit, për provën e përdorur "Klasifikimin e Fidanëve të Bimëve" (https://www.kaggle.com/c/plant-seedlings- Klasifikim), i cili ka për qëllim të përcaktojë speciet e një fidani nga një imazh. Dataset është dukshëm më i madh se ai i paraqitur në demonstrim, ai përmban mbi 4300 imazhe, e drejtoj kodin duke përdorur vetëm 2 rreshta kodi, rezultati është i dukshëm më poshtë:

Më bëri shumë përshtypje rezultati, u deshën 5 minuta në një kompjuter tipik zhvilluesi për të trajnuar një model mjaft të mirë, duke përdorur 1.7 GB të dhëna trajnimi. A ka ndonjë mënyrë më të mirë për të ndërtuar modelin e Prova e Concept dhe të vihet në përdorim aplikacionin iOS / macOS për të verifikuar një ide? Nuk mendoj kështu. Apple, keni bërë një punë të shkëlqyeshme, me të vërtetë. Ajo që është gjithashtu interesante të vihet re, është se CreatML po krijon automatikisht grupin e vlerësimit nga ai i dhënë si trajnim, kështu që zhvilluesi nuk ka pse t'i ndajë këto të dhëna manualisht, një hap i vogël për të thjeshtuar procesin.

Në rregull, jo të gjithë do të ndërtojnë aplikacionin "Jo Hotdog", kështu që le të shohim një tjetër rast shumë të zakonshëm në mësimin e makinerisë, "Tabelat e të Dhënave" dhe problemet e regresionit / klasifikimit. Në këtë rast kam filluar me "Getting Started Titanic Survivals" (https://www.kaggle.com/c/titanic), qëllimi i këtij konkursi është të përcaktojë nëse një pasagjer i veçantë do të mbijetojë përplasjen me ajsbergun bazuar në të dhëna si mosha, seksi , lloji i biletës, kuvertë, etj.

Unë shkarkova skedarin CSV, krijova MLClassifikues, presion luajti dhe…

Ok, nuk po funksionon, KrijimiML ka nevojë për të dhëna të pastra në mënyrë perfekte. Ky nuk është problem i madh, unë mund të heq rreshtat me kolona bosh duke përdorur disa linja të Python, megjithatë që zvogëlon sasinë e të dhënave të trainimit nga 891 shembuj në vetëm 183, por të paktën po funksionon. Gjatë ekzekutimit të ardhshëm, xCode më njoftoi se: "Feature \" Bileta \ "nuk është e llojit (numerike, varg, varg, ose fjalor). \ N", kështu që unë rashë këtë kolonë dhe më në fund mora modelin e punës:

Edhe një herë, më bën përshtypje rezultati, të dhënat ishin relativisht të lehta, por është afër asaj që mund të përballen shumë zhvillues në aplikacione tipike. CreatML po funksionon, është i shpejtë dhe efikas.

Përpjekja e dytë ishte konkursi “Parashikimi i të ardhurave nga restoranti” (https://www.kaggle.com/c/restaurant-revenue-prediction/data), ku qëllimi është të vlerësoni të ardhurat e restorantit në një vit të caktuar, duke përdorur datën e hapjes, qyteti, lloji i restorantit etj. Njësoj si në rastin e Titanic, thjesht shkarkova të dhënat dhe drejtova shesh lojërash:

Në këtë rast, CreatML vendosi të përdorë Regressor Boosted Tree dhe si rezultat MSE është edhe më e ulët se ajo që fitoi konkursin 3 vjet më parë. Sigurisht, arsyeja për këtë mund të jetë fakti që drejtuesit kryesorë janë krijuar në bazë të të dhënave të cilat nuk janë publike, por prapëseprapë, CreatML ishte në gjendje të ndërtojë shumë mirë, ndoshta edhe të krahasueshme me modelin fitues në sekonda. Kjo është ajo që u nevojitet shumica e zhvilluesve.

4. Pro dhe kundrat e KrijimitML

Pros:

  • aktualisht është mënyra më e lehtë për të ndërtuar modele ML për iOS / macOS, veçanërisht për aplikacionet Proof Of Concept, ose ato që punojnë me të dhëna relativisht të thjeshta
  • KrijimiML hap botën ML për mijëra zhvillues të iOS / macOS
  • është shumë efikas dhe i lehtë për t’u përdorur

Cons:

  • shumë pak mënyra për të akorduar dhe debuguar modelin përfundimtar
  • nuk ka njohuri publike se çfarë modeli përdoret për të klasifikuar imazhet
  • nuk ka mjete për përpunimin e të dhënave (por kjo është e qartë, synimi i Apple nuk janë shkencëtarët e të dhënave, por zhvilluesit e programeve kompjuterike)

5. Mendimi im

Duket se CreatML është me të vërtetë një mjet i shkëlqyeshëm, veçanërisht për zhvilluesit, të cilët nuk punuan fare me Mësimin e Makinerisë, është e shpejtë, mjaft efikase dhe jashtëzakonisht e lehtë për t’u filluar. Nëse jeni një zhvillues i iOS / macOS, thjesht provojeni.

6. Pyetje e hapur

A është e fshehur problemi i modeleve të mëdha ML për klasifikimin e imazheve nga fakti që të gjitha peshat ruhen brenda iOS / macOS dhe CreatML ndërton modelin CoreML që përmban vetëm pesha për shtresën e fundit, të rikualifikuar të (Inception-V3)?