Apple CreateML және Kaggle

Жақында WWDC кезінде Apple өзінің CreateML атты ең жаңа құралын ұсынды. ML энтузиасты ретінде мен арнайы сессияда көргендеріме қатты таңғалдым, сондықтан мен оның қаншалықты күшті екенін зерттеу керек деп ойладым.

Қысқаша айтқанда ,ML файлын жасаңыз (егер сіз WWDC көрсетілімін көрсеңіз, өткізіп жіберуге болады).

Create ML - бұл жасаушыларға Swift және Xcode көмегімен машиналық оқыту модельдерін тез және жылдам құруға көмектесетін жаңа құрылым. Қазіргі уақытта ол мәліметтердің 3 түрімен жұмыс істей алады: суреттер, мәтіндік және кестелік деректер. Жұмыс процесі өте қарапайым, сізге жаттығулар туралы мәліметтерді жеткізу керек, бірнеше жолды жазу керек және сиқырлы болады, кішкентай CoreML моделі сіздің бағдарламаңызда қолдануға дайын. Apple жаттығу уақытын едәуір қысқартуға уәде берді, ол 10,000 суретті бірнеше минут ішінде санау керек (әдеттегідей Apple бөлшектерді беруден аулақ болады). Тренинг өте жылдам, өйткені (сурет жіктеуіш болған жағдайда) Apple Transfer Learning қолданады. Біз Neural Network негізі не екенін білмейміз, бірақ презентация кезінде Inception-v3 суретті жіктеудің заманауи шешімінің мысалы ретінде айтылды.

2. WWDC Demo тұсаукесері (егер сіз WWDC көрсетілімін көрсеңіз, өткізіп жіберуге болады).

WWDC кезінде баяндамашылар біз әртүрлі модельдерді қалай оңай құруға болатындығын көрсетті, біріншіден, бірнеше кодтық жолдармен жасалған кескін классификаторы:

Екінші мысал өте ұқсас болды, Мәтін Классификаторы мәтіннің оң немесе теріс болуын шешеді, мысалы, суреттегідей, оны оқыту үшін тек бірнеше жолдар жеткілікті болды:

Маған келетін болсақ, ең қызықты демо кестелік мәліметтермен жұмыс жасайтын соңғы болып шықты. Бұл жағдайда CreateML MLDataTable деп аталатын жаңа форматты қолданады, бір қарағанда қарапайым деректер матрицасына арналған орауыш, CSV және JSON талдау жасаушы.

Кестелік деректер болған жағдайда CreateML екі жолды ұсынады: оңай және біршама күрделі. Алдымен үй бағасының формуласын табудың қарапайым әдісін қарастырыңыз, ол алдыңғы мысалдармен бірдей:

Кестелік деректердің проблемалары регрессия мәселелері үшін MLRegressor және жіктеу үшін MLClassifier көмегімен шешілуі мүмкін (жағдайға байланысты). Бірақ бұл бәрінен қызықтысы емес, кестелік деректермен жұмыс жасау кезінде, жіктеудің / регрессияның қандай әдісін қолданылатынын қолмен шешуге болады, өйткені көбінесе өнеркәсіпте жиі қолданылатынMLML қолдауы бар:

3. Нақты өмірдегі проблемалардағыML құрыңыз

Демо-қосымшалар әрқашан мүмкіндігінше қарапайым, оларды түсінуді жеңілдетеді және бәрі жақсы. Алайда, машиналық оқыту жағдайында бір нәрсенің қарапайым мысалмен жұмыс істейтіндігі, бұл оның неғұрлым күрделі жұмыс істейтінін білдірмейді. CreateML мақсатты пайдаланушылары - ML сарапшылары немесе деректерді зерттеушілер емес, жасаушылар, сондықтан мен ML жаңашылдары сияқты әрекет етуді, деректерді терең талдамауды, жай ғана CreateML-ге жинақтарды салып, сиқыр жасауға мүмкіндік беруді шештім. Мен Kaggle жарыстарын эталон ретінде пайдалануды шештім, содан кейін модель сапасын Kagglers қол жеткізген жетістіктермен салыстырдым, сонымен қатар CreateML қаншалықты жылдам екенін білгім келді. Көптеген жағдайларда сәтті модельдің кілті - мәліметтерді түсіну және алдын-ала өңдеу, егер әзірлеуші ​​жай CSV импорттап, күрделі проблема үшін жоғары сапалы нәтиже күтетін MLRegressor іске қосатын болса ... оның әсерінен көңілі қалуы мүмкін. Осыған байланысты мен нақты өмір проблемаларына жақын, бірақ өте күрделі емес мысалдарды таңдауға шешім қабылдадым, өйткені бұл деректерді өңдеусіз пайдасыз болар еді.

Сілтеме ретінде менің Macbook Pro конфигурациясы:

Мен Сурет Классификаторын тестілеуден бастадым, тестілеу үшін «Өсімдіктер көшеттерін жіктеу» (https://www.kaggle.com/c/plant-seedlings-classification) қолдандым, оның мақсаты кескіннен көшет түрін анықтау. Деректер жиынтығы демоде көрсетілгеннен едәуір үлкен, оның құрамында 4300-ден астам сурет бар, мен тек кодтың 2 жолын қолданып жұмыс істеймін, төменде нәтиже көрінеді:

Нәтижесі маған қатты әсер етті, әдеттегі әзірлеуші ​​ноутбукте 1.7 ГБ оқу мәліметтерін қолдана отырып, өте жақсы үлгіні үйрету үшін 5 минут уақыт кетті. Идеяны растау үшін Proof of Concept моделін құрып, жұмыс істейтін iOS / macOS қосымшасына енгізудің жақсы әдісі бар ма? Мен олай ойламаймын. Apple, сіз өте жақсы жұмыс жасадыңыз, шынымен. Бір қызығы, CreateML жаттығу ретінде берілгеннен автоматты түрде валидация жиынтығын жасайды, сондықтан әзірлеуші ​​бұл деректерді қолмен бөлуге мәжбүр емес, процесті жеңілдету үшін бір қадам жасаңыз.

Жарайды, бәрі бірдей «Хотдог емес» қосымшасын құруға тырыспайды, сондықтан машинада оқитын басқа кең таралған жағдайды, «Кестелік деректер» және регрессия / классификация мәселелерін қарастырайық. Бұл жағдайда мен «Титаникті тіркеуді бастау» бағдарламасынан бастадым (https://www.kaggle.com/c/titanic), бұл жарыстың мақсаты - жас, жыныстық қатынас деректері бойынша айсбергпен соқтығысып қалуға болатындығын анықтау. , билет түрі, палуба және т.б.

Мен CSV файлын жүктедім, MLClassifier жасадым, ойнатуды және ...

Жарайды, жұмыс істемейді, CreateML өте таза деректерді қажет етеді. Бұл үлкен проблема емес, мен Python-ның бірнеше жолын қолдана отырып, бос бағандармен жолдарды алып тастай аламын, дегенмен жаттығу мәліметтерін 891 мысалдан 183-ке дейін 183-ке дейін азайтады, бірақ ол жұмыс істейді. Келесі іске қосу кезінде xCode маған: «Ерекшелік \» билет түрі емес (сан, жол, массив немесе сөздік). \ N «сондықтан мен осы бағанды ​​тастадым да, жұмыс моделін алдым:

Нәтижеге тағы бір рет таңдандым, деректер салыстырмалы түрде оңай болды, бірақ әзірлеушілердің көбісі әдеттегі қосымшаларға тап болуы мүмкін. CreateML жұмыс істейді, ол тез әрі тиімді.

Екінші әрекет «Мейрамхананың кірістерін болжау» конкурсы болды (https://www.kaggle.com/c/restaurant-revenue-prediction/data), онда мақсаты - мейрамхананың ашылған күнін, сол жылы кірісті есептеу. қала, мейрамхана түрі және т.б. Титаникке ұқсас, мен жай ғана деректерді қотарып алып, ойын алаңын басқардым:

Бұл жағдайда CreateML күшейтілген ағаш регрессорын қолдануға шешім қабылдады, нәтижесінде MSE 3 жыл бұрын конкурста жеңіп алғаннан да төмен болды. Әрине, бұған себеп болуы мүмкін: лидер тақталары көпшілікке мәлім емес мәліметтер негізінде жасалады, бірақ, бәрібір, CreateML өте жақсы құра алды, мүмкін оны бірнеше секунд ішінде жеңімпаз модельмен де салыстыруға болады. Бұл көптеген әзірлеушілерге қажет.

4. CreateML-дің оң және теріс жақтары

Таразы:

  • қазіргі уақытта бұл iOS / macOS үшін ML модельдерін құрудың ең оңай тәсілі, әсіресе Proof Of Concept қосымшалары немесе салыстырмалы түрде қарапайым деректермен жұмыс жасайтындар үшін
  • CreateML мыңдаған iOS / macOS әзірлеушілеріне ML әлемін ашады
  • өте тиімді және пайдалану оңай

Жаман тұстары:

  • ақырғы модельді баптаудың және түзетудің өте аз тәсілдері
  • суреттерді жіктеу үшін қандай модель қолданылатынын көпшілік білмейді
  • деректерді алдын-ала өңдеудің ешқандай құралдары жоқ (бірақ бұл анық, Apple мақсаттары деректерді зерттеушілер емес, бағдарламалық жасақтама жасаушылар болып табылады)

5. Менің пікірім

CreateML - бұл өте жақсы құрал, әсіресе Machine Learning-пен жұмыс жасамаған, әзірлеушілер үшін өте тез, өте тиімді және оны бастау өте оңай. Егер сіз iOS / macOS әзірлеушісі болсаңыз, оны пайдаланып көріңіз.

6. Ашық сұрақ

Кескінді жіктеуге арналған үлкен ML модельдерінің проблемалары барлық салмақтардың iOS / macOS-та сақталатындығында және CreateML CoreML моделін (Inception-V3) соңғы, қайта өңделген қабаты үшін салмағы барында жасырады ма?