Когда я впервые начал учиться в Apple Developer Academy, у меня был момент неуверенности в моем интересе к машинному обучению. Нужно ли мне сменить карьеру моей мечты с специалиста по данным на разработчика? Буду ли я узнавать только о мобильной разработке?
Однако моя точка зрения быстро изменилась, когда моя первая самостоятельная задача в академии заключалась в создании приложения с помощью машинного обучения. Это было и страшно, и волнующе! Осознание того, что я снова буду углубляться в машинное обучение в среде Apple, заставило меня искренне наслаждаться всем этапом разработки.
О машинном обучении
Машинное обучение, ветвь искусственного интеллекта, позволяет компьютерам учиться на данных и принимать разумные решения без явного программирования. Эти модели могут анализировать огромные объемы данных, выявлять закономерности и делать прогнозы или предпринимать действия на основе полученных сведений.
От беспилотных автомобилей до персональных рекомендаций, систем обнаружения мошенничества и виртуальных помощников — машинное обучение является неотъемлемой частью нашего современного мира, стимулируя инновации и открывая невероятные возможности.
Как работает машинное обучение?
Думайте о машинном обучении как о ребенке, который ничего не знает. Чтобы научить ребенка различать объект А и объект Б, ему необходимо повторное воздействие и обучение.
Точно так же машину необходимо обучать на объемах данных для обучения в определенном контексте. Точно так же, как ребенок учится с помощью различных методов, таких как визуальные, звуковые или кинестетические, машины используют такие методы, как кластеризация, классификация и регрессия.
Объекты, которые ребенок может выучить, могут быть разными, в том числе то, что он видит или слышит. В машинном обучении мы называем это типами данных, которые могут быть аудио, текстом или изображениями.
Хорошо! Теперь давайте углубимся в CreateML
CreateML — это разработанная Apple платформа, которая позволяет разработчикам и специалистам по обработке и анализу данных включать возможности машинного обучения в свои приложения. Легко интегрируясь с экосистемой Apple, CreateML позволяет пользователям использовать возможности машинного обучения на платформах iOS, macOS, watchOS и tvOS.
Благодаря интуитивно понятному интерфейсу пользователи могут обучать и развертывать модели машинного обучения без обширного программирования или специальных знаний. Кроме того, он предоставляет шаблоны, которые новички могут использовать для разработки приложений с помощью машинного обучения, что невероятно полезно!
Методы машинного обучения
В этой статье я хочу сосредоточиться в первую очередь на типе данных изображения, так как недавно я решал задачу построения модели обнаружения объектов в CreateML. Я решил поделиться этой статьей, потому что столкнулся с трудностями при поиске правильной структуры набора данных, включая структуру папок и атрибуты набора данных. К счастью, документация Apple Developer предоставила необходимые рекомендации, избавив меня от дальнейших проблем.
Классификация изображений
Классификация изображений позволяет компьютерам классифицировать объекты или узоры в цифровых изображениях. Для этого машину необходимо обучить на наборе помеченных изображений, чтобы идентифицировать уникальные функции и шаблоны, связанные с каждой категорией.
Например, мы хотим, чтобы машина распознавала таких животных, как буйвол, гепард, слон и жираф. Для этого мы хотим, чтобы машина знала этих животных по тому, что они видели, что по изображению. Таким образом, нам нужно собрать изображения каждого животного и разделить их в такую папку.
В CreateML метка изображения — это имя папки. Убедитесь, что вы загружаете корневую папку (для изображения — это папка с данными обучения) в качестве источника данных, чтобы модель могла учиться на ней.
Обнаружение объекта
Обнаружение объектов выходит за рамки классификации изображений, не только идентифицируя объекты на изображении, но и точно определяя их положение. Он включает в себя обучение моделей машинного обучения для одновременного обнаружения и классификации нескольких объектов с созданием ограничивающих рамок (областей) вокруг них.
Для этого машине нужны изображения и аннотации к каждому изображению, чтобы она могла научиться обнаруживать объекты внутри. В CreateML он состоит из координат x и y, ширины, высоты и метки каждого объекта.
Файл JSON состоит из имен файлов каждого изображения с аннотацией, включающей координаты и метку объекта. Это довольно строгая среда CreateML, поэтому имя файла и аннотации могут быть прочитаны машиной. Вот пример файла JSON.
[ { "imagefilename": "IMG_20220316_135524_jpg.rf.8bb9a2953a88ff823a7ddc20518807dc.jpg", "annotation": [ { "coordinates": { "x": 608, "y": 340.5, "width": 374, "height": 345 }, "label": "A Spades" }, { "coordinates": { "x": 466.5, "y": 216.5, "width": 361, "height": 257 }, "label": "3 Diamonds" }, { "coordinates": { "x": 467.5, "y": 479.5, "width": 387, "height": 253 }, "label": "4 Diamonds" }, { "coordinates": { "x": 704.5, "y": 551, "width": 351, "height": 338 }, "label": "2 Diamonds" } ] } ]
Хорошо, урок усвоен. Но как на самом деле обучается модель?
Во время обучения модель учится извлекать функции в пределах области каждой ограничивающей рамки. Более того, наличие перекрывающихся объектов в обучающих данных помогает модели предсказывать объекты в различных положениях.
K24D Обзор
Идея возникла, когда я вспоминаю моменты, когда мы с моим сверстником тусовались, играя в 24 Card Game, где на столе 4 карты и игроки должны угадать математическое действие, равное 24. Это может быть комбинация сложения, вычитания, умножение и деление каждого числа карты.
В большинстве случаев был один человек, которому было трудно решить проблему. Я сделал это приложение как «шпаргалку» для таких игроков, чтобы они все еще находили ответ на математическую операцию, которая дает 24.
Приложение использует машинное обучение для определения количества 4 карточек на рамке. Он реализовал обнаружение объектов, как на изображении выше, что привело к математической работе приложения.
Приложение все еще в разработке, и я хочу повысить точность модели и улучшить ее, особенно в отношении копирайтинга.
Что ж, думаю, это все, чему я научился во время разработки моего сольного проекта K24D. В любом случае, если вы хотите проверить мое приложение, пожалуйста, посетите этот репозиторий: https://github.com/jihanalfi/K24D.
Спасибо!!