Едно от любимите ми съобщения на WWDC 2018 беше разкриването на CreateML, нова рамка, която помага на разработчиците да създават модели за машинно обучение с помощта на Swift и Xcode.

Миналата година, по време на WWDC 2017, Apple пусна инструмент, който помогна на разработчиците да конвертират обучени модели за машинно обучение на трети страни в нов формат, наречен CoreML, така че да могат да бъдат директно включени във вашите приложения. Той поддържа инструменти на трети страни като TensorFlow и Keras.

С разкриването на CreateML става ясно, че фокусът на Apple е да направи машинното обучение по-достъпно за разработчиците, без да се налага да се задълбочават в инструменти на трети страни. В момента CreateML е в начален етап; и се фокусира върху подпомагането на разработчиците да създават модели, които класифицират текст, изображение и таблични данни.

Заден план

В Endertech имаме инициатива за съдържание, в която сме насърчавани да споделяме нашите знания и опит с други чрез статии в блогове, които се публикуват ежемесечно на Endertech.com. Тъй като ние сме агенция за разработка и дизайн на уеб и софтуер, нашето съдържание може да попада в различни теми от дизайн и разработка до управление и маркетинг. С това казано позволете ми да ви покажа как можете лесно да създадете категоризатор на статии в блог с помощта на CreateML.

Предпоставки

Преди да започнем, уверете се, че имате инсталирани Mojave Mac OS и Xcode 10, имайте предвид, че както Mojave Mac OS, така и Xcode 10 са бета версии и трябва да бъдат пуснати за крайни потребители през есента. Ако ги нямате, не забравяйте да ги изтеглите от вашия портал за разработчици на Apple.

Стъпка 1: Събиране на данни и данни за организирано обучение

Първата стъпка след настройката на вашата среда е да съберете данни. За нашия категоризатор на статии в блога разработих таблица в Google с всички заглавия на статии, които в момента са на сайта на Endertech с подходящите им теми, и я експортирах като .csv. Успях да събера 130 заглавия на статии, тези заглавия на статии ще бъдат използвани като набор от данни за обучение за нашия модел.

Стъпка 2: Обучете и оцените вашия модел

След като сме събрали и организирали нашите данни, можем да започнем да обучаваме нашия модел.

Импортирайте CreateML

Първо отваряме нова детска площадка и импортираме рамката CreateML.

Импортиране на данни за обучение

След това следваме, като импортираме данните за обучение от нашия .csv и създаваме MLDataTable с данните за обучение.

Създаване на модел

Накрая генерираме нашия модел, MLTextClassifier, където заглавията на статиите в блога са входните данни (textColumn), а темата на статиите е резултатът (labelColumn). Уверете се, че textColumn и labelColumn съвпадат със заглавките във вашия .csv.

От зоната за отстраняване на грешки ще видите, че csv данните за обучение са анализирани, качени и моделът е започнал обучение със 130 проби, препращайки към 130 статии в блога, след което моделът е преминал през 2 повторения, преди да достигне 99% точност. В този момент моделът е завършил обучението и можем да преминем към следващата стъпка.

Оценете модела

Сега, когато нашият модел е създаден и обучен. Следващата стъпка е да оцените обучения модел, създаден спрямо тестови данни.

Събиране и организиране на тестови данни

Тъй като сме в средата на нашия следващ кръг от съдържание, реших да взема списъка с текущи статии, върху които моите колеги работят, и да го използвам като тестов набор от данни. Тъй като тестваме следния набор от данни с нашия обучен модел, аз също трябваше да посоча темата, която смятах, че е най-подходяща за статиите в блога, и експортирах Google Sheet като .csv.

Импортиране на тестови данни

Подобно на набора от данни за обучение, ние импортираме набора от тестови данни и генерираме MLDataTable от него.

Оценете модела спрямо тестови данни

След това преминете към оценка на модела с тестовите данни.

За да покажете резултатите в областта за отстраняване на грешки I print(result). Получаваме обобщение на това как се представя моделът въз основа на набора от данни за обучение.

Това, което можем да видим е, че моделът не беше толкова точен с данните от теста, както беше с данните за обучението. Защо така? 🤔

Може да има различни причини за несъответствието между данните от теста и обучението. Няколко причини могат да бъдат:

  • Наборът от данни за обучение не беше достатъчно голям.
  • Наборът от тестови данни не беше достатъчно голям.
  • Някои заглавия на статии в блогове могат да бъдат свързани с множество теми.

Стъпка 3: Запазете модела

Въпреки че резултатите от моя класификатор на статии в блога не бяха толкова ползотворни, колкото бих искал. След като достигнете ниво на увереност и точност във вашия модел, можете да го експортирате, за да можете да го използвате в собствените си приложения. Това ще създаде .mlmodel файл, който след това може да бъде импортиран във вашите проекти.

Е, това е! 👍 С няколко прости стъпки успяхме да създадем ML модел, който класифицира статии в блогове, които могат лесно да бъдат преносими към вашите собствени приложения, без да се налага да изучавате инструменти на трети страни като TensorFlow. Въпреки това не трябва да пренебрегваме силата на инструментите на трети страни. Create ML е страхотен инструмент за създаване на текст, изображения и класификатори на таблични данни; определено началото на страхотни инструменти за машинно обучение за мобилната общност.

Като напускаща мисъл...

Какви са вашите мисли за CreateML? Как смятате да използвате CreateML във вашите приложения?

Свържете се с нас в Twitter чрез @Endertech или в моя личен Twitter @noemiiquezada. Бих искал да знам вашите мисли!

Тази статия първоначално се появи на Endertech.com