Когда я впервые начал учиться в 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.

Спасибо!!