Научная статья на тему 'Функциональные возможности фреймворка Core ml'

Функциональные возможности фреймворка Core ml Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
361
51
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
машинное обучение / классификация / фреймворк / Core ML / Create ML / модель. / machine learning / classification / framework / Core ML / Create ML / model.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Саверский Владислав Олегович

В данной статье рассмотрены предоставляемые системой iOS способы классификации объектов, процесс создания собственной модели для классификации объекта на изображении и другие возможности, предоставляемые фреймворком Core ML. В статье описываются основные этапы создания и тестирования модели для классификации объекта на примере транспортных средств. Другими словами, в отличие от обычных программ с заранее введенными инструкциями для решения конкретных задач, машинное обучение позволяет системе научиться самостоятельно распознавать шаблоны и делать прогнозы.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FUNCTIONALITY OF THE CORE ML FRAMEWORK

This article discusses the ways that the iOS system classifies objects, the process of creating a custom model for classifying an object in an image, and other features provided by the Core ML framework. This article describes the main stages of creating and testing a model for classifying an object using the example of vehicles. In other words, unlike conventional programs with pre-entered instructions for solving specific tasks, machine learning allows the system to learn how to recognize patterns and make predictions on its own.

Текст научной работы на тему «Функциональные возможности фреймворка Core ml»

ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ ФРЕЙМВОРКА CORE ML

FUNCTIONALITY OF THE CORE ML FRAMEWORK

УДК-004

Саверский Владислав Олегович, бакалавр, Московский Государственный Технический Университет имени Н.Э.Баумана, Россия, г. Москва Saversky Vladislav Olegovich, vladsav97@mail .ru

АННОТАЦИЯ

В данной статье рассмотрены предоставляемые системой iOS способы классификации объектов, процесс создания собственной модели для классификации объекта на изображении и другие возможности, предоставляемые фреймворком Core ML. В статье описываются основные этапы создания и тестирования модели для классификации объекта на примере транспортных средств. Другими словами, в отличие от обычных программ с заранее введенными инструкциями для решения конкретных задач, машинное обучение позволяет системе научиться самостоятельно распознавать шаблоны и делать прогнозы.

ANNOTATION

This article discusses the ways that the iOS system classifies objects, the process of creating a custom model for classifying an object in an image, and other features provided by the Core ML framework. This article describes the main stages of creating and testing a model for classifying an object using the example of vehicles. In other words, unlike conventional programs with pre-entered instructions for solving specific tasks, machine learning allows the system to learn how to recognize patterns and make predictions on its own.

Ключевые слова: машинное обучение; классификация; фреймворк; Core ML; Create ML; модель.

Keywords: machine learning; classification; framework; Core ML; Create ML; model.

В 2017 году Apple представила фреймворк, позволяющий значительно облегчить работу с технологиями машинного обучения — Core ML. В его основу легла идея о том, чтобы взять заранее предобученную модель данных,

и несколькими строками кода интегрировать ее в свое приложение. Схема интеграции Core ML в приложение представлена на рисунке 1.

Your арр

Рисунок 1. Схема интеграции фреймворка Core ML

Фреймворк Core ML позволяет реализовать следующие функции: определение объектов на фото и видео; понимание и распознавание текста; распознавание изображений в реальном времени; предиктивный ввод текста; анализ движений;

отслеживание и распознавание лиц; определение штрихкодов; стилизация изображений; и многое другое.

Фреймворк Core ML использует низкоуровневые фреймворки Metal, Accelerate и BNNS, что обеспечивает высокую скорость вычислений. Ядро поддерживает нейронные сети, обобщенные линейные модели (generalized linear models), древовидные алгоритмы принятия решений (tree ensembles), генерацию признаков (feature engineering), метод опорных векторов (support vector machines), пайплайн модели (pipeline models) [1].

Изначально компания Apple не представила собственных технологий для создания и обучения моделей, но создала конвертер для других популярных фреймворков: Caffe, Keras, scikit-learn, XGBoost, LIBSVM.

Использование сторонних инструментов накладывало ряд ограничений, обученные модели имели довольно большой объем, а само обучение занимало немало времени, поэтому компания Apple представила Turi Create — фреймворк, предназначенный для обучения моделей, основными идеями которого стали простота использования и поддержка большого числа сценариев: определение объектов, классификация изображений, рекомендательные системы, и множество других. Turi Create поддерживал только язык Python.

Фреймворк Create ML

В 2019 году компания Apple представила Core ML 2 и собственный инструмент для обучения моделей — фреймворк Create ML, использующий технологии Apple — Xcode и Swift.

На конференции WWDC на примере приложения Memrise были продемонстрированы впечатляющие показатели фреймворков Create ML и Core ML 2. Если раньше для обучения модели с использованием 20 тысяч изображений требовалось 24 часа, то фреймворк Create ML позволил сократить это время до 48 минут на MacBook Pro и до 18 минут — на iMac Pro. Кроме того, размер обученной модели уменьшился с 90MB до 3MB. Фреймворк Create ML в качестве исходных данных может использовать изображения, тексты и структурированные объекты — например, таблицы (рисунок 2).

Рисунок 2. Схема создания модели

Процесс обучения модели для распознавания объектов

Одним из самых популярных вариантов использования сверточных нейронных сетей является классификация изображений. В фрейсворке Create ML обучение нейронной сети не производится с нуля, вместо этого используется предварительно обученная на огромном наборе данных нейронная сеть, которая уже включает большое количество слоев и обладает высокой точностью (рисунок 3).

Рисунок 3. Обучение нейронной сети в Create ML

С помощью технологии transfer learning (перенос обучения) можно изменять архитектуру предварительно обученной нейронной сети так, чтобы она подходила для решения новой задачи. После этого измененная сеть обучается на новом наборе данных.

Во время обучения модели во фреймворке Create ML из фото извлекается более 1000 отличительных признаков, таких как формы объектов, цвет текстур, размеры, и множество других. Следует отметить, что исходный набор данных, на котором заранее была обучена используемая нейронная сеть может содержать фотографии искомых объектов, но в нем не выделяются конкретно именно эти категории. Все категории образуют иерархию. Эту сеть нельзя применить в чистом виде, для начала требуется дообучить ее на тестовом наборе данных [2].

Рассмотрим классификацию изображений на примере двух видов транспортных средств: автомобилей и автобусов. Изображения объектов требуется распределить по папкам с соответствующими названиями, которые в последствии станут названиями категорий модели (рисунок 4). Каждая группа будет содержать по 100 изображений с разрешением до 1920х1080 пикселей и размером до 1Mb. Фотографии должны быть максимально разнообразными, чтобы обучаемая модель не полагалась на такие признаки, как окружающее пространство или цвет на изображении.

Рисунок 4 - Распределение данных по категориям

Для проверки обученной модели требуется тестовый набор данных — изображения, не входящие в изначальный набор.

Существует два подхода к взаимодействию с фреймворком Create ML: с помощью UI в MacOS Playground^ Xcode (рисунок 5) или путем использования CreateMLUI.framework и CreateML.framework. При использовании первого способа, достаточно написать пару строк кода, перенести выбранные изображения в указанную область, и подождать, пока обучится модель [3].

Рисунок 5. MacOS Playground Xcode

На Macbook Pro 2017 в максимальной комплектации обучение модели на 200 изображениях с разрешением до 1920х1080 пикселей и размером до 1Mb заняло 29 секунд для 10 итераций.

После завершения процесса обучения можно проверить, насколько точно была обучена созданная модель. Точность распознавания можно повысить путем увеличения количества изображений в исходном наборе данных или изменения количества итераций (рисунок 6).

[•) ImageClassifier

Max iterations: 10 Training data: Choose... Validation data: Choose... Augmentation: Flip

Rotate

Expose

Shear

Defaults

Рисунок 6. Изменение настройки модели Возможности тестирования модели в фреймворке Create ML

В фреймворке Create ML присутствуют функции для проверки созданной модели на тестовом наборе данных. Главным условием при проверке модели является уникальность изображений в тестовом наборе, они не должны были входить в исходный набор (рисунок 7).

Рисунок 7. Тестовое изображение

Для каждого изображения отобразится показатель confidence — точность распознавания категории изображения. В тестовый набор данных специально было добавлено изображение, указанное выше, так как на нем отсутствуют четкие опознавательные признаки автомобиля. Фреймворк Create ML распознал в нем на 88% автомобиль и на 11% автобус. После окончания обучения модели необходимо сохранить файл *.mlmodel и добавить его в проект (рисунок 8).

▼ Machine Learning Modal

Name Classifier

Тура image Classifier

Sua 33 KB

Description A model trained using CreatcML

License Unspeofied

▼ Model Class

▼ Model Evaluation Parameters

Name Type Flexibility Description

▼ inputs

image Image (Color 299 > 299) 299 » 299 . input image to be classified

▼ Outputs

dassLabeiProos Dictionary (String -» Double) Probability of each category

dessLsbei String Most likely image category

Рисунок 8. Сохранение модели Литература

1. Инструменты Apple для машинного обучения [Электронный ресурс] URL: https://habr.com/ru/company/redmadrobot/blog/418307/ (дата обращения 08.05.2020).

2. Распознавание изображений [Электронный ресурс]. URL: http://www.digital-sky.ru/point-3/artcateg-17/article- 10.html (дата обращения 10.05.2020).

3. Create ML [Электронный ресурс]. URL: https://developer.apple.com/documentation/createml (дата обращения 08.05.2020).

4. Swiftbook [Электронный ресурс]. https://swiftbook.ru/post/tutorials/core-ml-i-vision-mashinnoe-obucheniedostupno-nachinaya-s-ios-11/ (дата обращения 08.05.2020).

5. Кристиан Нейгел и др. C# 5.0 и платформа .NET 4.5 для профессионалов = Professional C# 5.0 and .NET 4.5. — М.: «Диалектика», 2013.— 1440 с

6. Джеф Просиз. Программирование для Microsoft .NET = Programming Microsoft .NET. — М.: Русская редакция, 2003. — С.704

Literature

1. Apple Tools for machine learning [Electronic resource] URL: https://habr.com/ru/company/redmadrobot/blog/418307/ (accessed 08.05.2020).

2. image Recognition [Electronic resource]. URL: http://www.digital-sky.ru/point-3/artcateg-17/article-10.html (accessed 10.05.2020).

3. Create ML [Electronic resource]. URL: https://developer.apple.com/documentation/createml (accessed 08.05.20).

4. Swift book [Electronic resource]. https://swiftbook.ru/post/tutorials/core-ml-i-vision-mashinnoe-obucheniedostupno-nachinaya-s-ios-11/ (accessed 08.05.2020).

5. Christian Nagel et al. C# 5.0 and the platform .NET 4.5 for professionals = Professional C# 5.0 and .NET 4.5. - M.: "Dialectics", 2013. - 1440 s

6. Jeff Prosis. Programming for Microsoft .NET = Programming Microsoft. NET. - Moscow: Russian edition, 2003. - P. 704

i Надоели баннеры? Вы всегда можете отключить рекламу.