Предисловие

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

Краткий обзор базового машинного обучения

Core ML — это основа для предметно-ориентированных фреймворков и функций. Это позволяет разработчикам интегрировать различные модели машинного обучения в свои приложения для iPhone. Помимо поддержки специализированного глубокого обучения для более чем 30 различных приложений, он также поддерживает стандартные модели, такие как ансамбль деревьев, SVM и обобщенные линейные модели. Core ML построен на основе базовых технологий, таких как Metal и Accelerate, поэтому он эффективно использует ЦП и ГП для максимальной производительности. Модели машинного обучения можно запускать непосредственно на устройстве, чтобы данные анализировались без отсоединения от устройства.

В 2019 году Apple опубликовала Core ML 3, фреймворк, поддерживающий интересные функции iPhone, такие как FaceID, Animoji и дополненная реальность. Core ML прошел долгий путь с момента его запуска в 2017 году и теперь поддерживает множество инструментов, которые могут помочь нам быстро создавать отличные приложения на основе машинного обучения.

Использование Core ML

Core ML обеспечивает единое представление для всех моделей, которое инкапсулирует все детали вашей модели машинного обучения. Ваше приложение использует Core ML API и пользовательские данные, чтобы делать прогнозы, а также обучать или настраивать модели на устройстве пользователя.

Есть три способа использования моделей Core ML:

1. Встроить в приложение

Перетащите модель Core ML (*.mlmodel) в свой проект.

xCode автоматически генерирует код, связанный с моделью, включая ввод, вывод и определение модели. Щелкните значок стрелки справа от названия модели, и он покажет код.

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

2. Скачать из сети

Загрузите и скомпилируйте модели в своем приложении в качестве альтернативы объединению с приложением. Сценарии, в которых этот подход является практическим, включают:

  • Уменьшение размера загрузки вашего приложения в App Store,
  • Определение подходящих моделей для пользователя после установки, исходя из их местонахождения, конкретных интересов и так далее.
  • Предоставление обновлений модели по сети.

Вот шаги для загрузки и компиляции моделей в вашем приложении:

  • Загрузите файл определения модели (заканчивающийся на .mlmodel) на устройство пользователя с помощью NSURLSession, CloudKit или другого сетевого инструментария.
  • Скомпилируйте определение модели, вызвав compileModelAtURL:error:.
  • MLModel сохраняет модели, которые он компилирует, во временное место. Если ваше приложение может повторно использовать модель позднее, уменьшите потребление ресурсов приложением, сохранив скомпилированную модель в постоянном расположении.
  • Затем создайте входные данные и используйте модель для прогнозирования, а также для обучения или точной настройки модели.

3. Обновление с помощью обучения на устройстве

В основном это означает, что мы обучаем нашу модель на какой-то другой машине, а затем используем обученную модель для прогнозирования в реальном времени на самом устройстве. Это привело к улучшению пользовательского опыта, потому что мы не зависели от Интернета, чтобы получать прогнозы. Возьмем, к примеру, Face ID. Он должен поддерживать свою модель в актуальном состоянии, когда лицо пользователя со временем меняется (отращивает бороду, носит другой макияж, стареет и т. д.). Основная идея состоит в том, чтобы изначально иметь универсальную модель, обеспечивающую среднюю производительность для всех, а затем создать копию, настроенную для каждого пользователя.

С помощью инструментов Core ML Core ML позволяет персонализировать модели с помощью API MLUpdateTask. Есть 3 типа моделей, которые можно обновить:

  1. нейронные сети
  2. ближайшие соседи
  3. модели конвейера

Генерация моделей Core ML

Используйте Create ML, интегрированную среду разработки, предоставляемую Apple. Create ML позволяет быстро создавать и обучать модели Core ML прямо на вашем Mac без написания кода. Простой в использовании интерфейс приложения и модели, доступные для обучения, делают процесс проще, чем когда-либо, поэтому все, что вам нужно, чтобы начать, — это ваши тренировочные данные. Вы даже можете взять под контроль процесс обучения с помощью таких функций, как моментальные снимки и предварительный просмотр, которые помогут вам визуализировать обучение и точность модели. Он поддерживает только определенные модели Apple.

Классификатор изображений
Модель, обученная распознавать изображения. Когда вы даете ему изображение, он отвечает ярлыком для этого изображения.

Детектор объектов
Модель, обученная обнаруживать объекты на изображениях.

Классификатор звука
Модель, обученная классифицировать звуки.

Классификатор активности
Модель, обученная распознавать движения.

Классификатор текста
Модель, обученная распознавать текст.

Классификатор слов
Модель, обученная маркировать текст на естественном языке на уровне слова.

Табличная регрессияr
Модель, обученная регрессии.

Табличный классификатор
Модель, обученная для классификации.

Рекомендующий
Модель, обученная давать рекомендации.

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

Используйте сторонние платформы машинного обучения, поддерживаемые CoreML. Затем используйте инструменты Core ML для преобразования сторонних моделей в модели Core ML. Инструменты Core ML содержат все вспомогательные инструменты для преобразования, редактирования и проверки моделей Core ML. Сюда входят фреймворки глубокого обучения, такие как TensorFlow, PyTorch, Keras, Caffe, а также классические фреймворки машинного обучения, такие как LIBSVM, scikit-learn и XGBoost. С помощью инструментов Core ML вы можете делать следующее:

  • Преобразование обученных моделей из таких фреймворков, как TensorFlow и PyTorch, в формат Core ML.
  • Читайте, пишите и оптимизируйте модели Core ML.
  • Проверяйте преобразование/создание (в macOS), делая прогнозы с помощью Core ML.

Ниже приведен список моделей, которые поддерживает Core ML 3.

Вывод

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