WWDC 2018: Apple анонсирует Create ML

В этом году на WWDC Apple обновила свою библиотеку CoreML, чтобы предложить улучшения производительности (с помощью пакетного API) и оптимизацию модели (с помощью квантования). Также было объявлено о Create ML; простой и легкий в использовании API, который делает машинное обучение более доступным и не требует специальных знаний.

Модели машинного обучения

Чтобы дать небольшой контекст, примером использования модели машинного обучения на устройстве может быть определение того, что представляет собой фотография. В приведенном ниже примере прохождение изображения через классификатор изображений (модель машинного обучения) даст прогноз того, из чего оно состоит; в данном случае Жираф.

Откуда берутся эти модели? Существует несколько предварительно обученных обобщенных моделей, таких как InceptionV3, YOLOv3, ResNet и т. Д., Которые можно использовать для обнаружения общих объектов. Однако, если вы хотите создать свою собственную модель для обнаружения более конкретных вещей, вам придется использовать фреймворки машинного обучения, такие как TensorFlow, для обучения своей собственной. Это может быть очень крутой и сложный процесс обучения, который может быть чрезмерно дорогим.

Создать ML

Введите Create ML. В самом простом случае он предоставляет среду перетаскивания для обучения классификатора изображений. На примере слонов и жирафов CreateML может построить новую модель для обнаружения этих животных.

Однако модель, построенная на небольшом наборе примеров, не будет работать очень хорошо. Чтобы решить эту проблему, CreateML использует технику под названием Transfer Learning, которая использует существующие огромные данные Apple по обучению изображений (сотни миллионов изображений) и применяет ваши собственные изображения к последнему слою.

Это не только ускоряет обучение и повышает точность относительно небольших наборов данных, но также может уменьшить размер файла. Apple представила пример уменьшения размера модели со 100 МБ (для InceptionV3) до 3 МБ.

Обучение в Swift

Использование Swift в Xcode Playgrounds создает очень простую среду для использования Create ML. Используя пару строк кода, вы можете вызвать интерактивный виджет для обучения классификатора.

Помимо простого пользовательского интерфейса перетаскивания для классификации изображений, API также обеспечивает высокоуровневую поддержку для создания моделей классификации текста, тегов слов, категоризации и количественной оценки. Написание этих сценариев в быстром темпе дает вам контроль над тем, какой алгоритм (например, усиленное дерево, случайный лес и т. Д.) Вы хотите использовать, или вы также можете просто использовать класс MLRegressor для автоматического выбора лучшего алгоритма для ваших данных.

MLDataTable

Для табличных наборов данных Apple предоставляет MLDataTable, который поддерживается Turi Create’s SFrame. Этот класс предоставляет функциональные возможности, аналогичные Pandas in Python, позволяя манипулировать табличными данными с помощью простых выражений.

Это особенно интересно, поскольку тип фрейма данных в стиле панд был одним из недостающих компонентов для выполнения научных вычислений с помощью Swift.

Металл

Машинное обучение на платформах Apple ускоряется с помощью Metal, их низкоуровневой среды программирования на графическом процессоре. Они отмечают интересный момент, что это относится как к графическим процессорам iOS, так и к OSX, возможно, подразумевая, что мы можем проводить обучение на устройстве для индивидуальных и частных моделей.

Наконец, Apple работает с Google над ускорением Metal в TensorFlow. Они приводят пример 20-кратного улучшения при обучении модели InceptionV3. Это должно позволить пользователям не только использовать преимущества встроенного графического процессора, но и масштабировать его между внешними графическими процессорами.

Мне лично очень приятно видеть сотрудничество между Google и Apple в этой области - не только в отношении поддержки Metal в TensorFlow, но также в отношении Swift для TensorFlow и недавнего кроссплатформенного MLKit от Google.