Машинное обучение прекрасно, но его трудно реализовать в мобильных приложениях. Это особенно верно для людей без степени науки данных. Однако с Core ML компания Apple упрощает добавление машинного обучения в существующее приложение iOS, используя совершенно новую платформу Create ML для обучения легких, настраиваемых нейронных сетей.
С одного взгляда
Что такое машинное обучение?
Машинное обучение — это использование статистического анализа, чтобы помочь компьютерам принимать решения и делать прогнозы на основе характеристик, найденных в этих данных. Другими словами, это тот факт, что компьютер анализирует поток данных, чтобы сформировать абстрактное понимание (называемое «моделью»), и использует эту модель для сравнения с более новыми данными.
Как это используется?
Многие из ваших любимых приложений на вашем телефоне, вероятно, будут включать машинное обучение. Например, когда вы печатаете сообщение, автозамена предсказывает, что вы собираетесь набирать дальше, используя модель машинного обучения, которая постоянно обновляется по мере ввода. Даже виртуальные помощники, такие как Siri, Alexa и Google Assistant, полностью зависят от машинного обучения, чтобы имитировать поведение человека.
Начиная
Давайте, наконец, воспользуемся вашими новыми знаниями в области машинного обучения, чтобы создать первую модель! Вам нужно убедиться, что у вас установлен Xcode 10, а также MacOS Mojave, работающий на вашем Mac. Кроме того, я предполагаю, что у вас уже есть опыт разработки Swift, Xcode и iOS в целом.
1. Набор данных и изображения
В этом уроке мы будем классифицировать изображения в зависимости от того, есть ли у них дерево или цветок. Однако рекомендуется следовать вашим собственным изображениям и объектам, которые вы хотите вместо этого классифицировать. По этой причине вам не будут предоставлены изображения цветов и деревьев, используемые в этом примере.
Поиск изображений
Если у вас возникают проблемы с поиском изображений (или если у вас недостаточно собственных изображений), попробуйте PhotoDune или Google Images . В целях обучения этого должно быть достаточно для начала. Старайтесь находить изображения, которые имеют отдельный основной объект (например, один апельсин, одно дерево) вместо нескольких (например, гроздья бананов, целые леса), чтобы избежать путаницы в модели, с которой можно начать. Конечно, вы всегда можете добавить больше осложнений позже, когда у вас есть некоторый опыт.
80:20 Правило науки о данных
В области науки о данных хорошей практикой является разделение ваших наборов данных на две категории: одну для обучения модели и одну для тестирования. Поскольку вы хотите уделять больше внимания своей фактической модели, 80% вашего набора данных следует использовать для обучения, а вы должны сэкономить 20%, чтобы убедиться, что все работает так, как должно; в конце концов, это тоже важно!
Разделить разницу
Имея в виду правило 80:20, создайте две папки: « Обучение» и « Тестирование» , в которые вы поместите нужное количество изображений в каждую из папок. Как только у вас будет 80% ваших данных в обучении и 20% в тестировании , наконец пришло время разделить их по категориям. Например, в папке « Обучение » у меня будет две папки « Цветы и деревья », и у меня будет 20% изображений, не отсортированных в папке « Тестирование ».
2. Обучение модели
Итак, давайте углубимся и на самом деле создадим модель. Вы можете быть удивлены, узнав, что большая часть вашей работы уже выполнена! Теперь все, что нам осталось сделать, это написать некоторый код и заставить Swift и Xcode работать, чтобы творить чудеса для нас.
Создание новой игровой площадки
Хотя большинство из нас привыкли создавать настоящие приложения для iOS, на этот раз мы отправимся на игровую площадку, чтобы создать наши модели машинного обучения. Интересно, не правда ли? Если вы думаете об этом, это действительно имеет смысл — вам не нужны все эти дополнительные файлы, а просто нужен чистый лист, чтобы сообщить Swift, как создать вашу модель. Начните с создания игровой площадки MacOS.
Сначала откройте Xcode.
Затем создайте новую игровую площадку.
И дать ему полезное имя.
Три Линии
Вопреки тому, что вы, возможно, подумали, вам просто нужно три строчки кода, чтобы подготовить игровую площадку для тренировки вашей модели. Удалите весь шаблон кода, который генерируется автоматически, а затем выполните следующие действия:
Импортируйте CreateMLUI
CreateMLUI
API для включения Create ML в вашей Swift Playground:
1
|
import CreateMLUI
|
Затем создайте экземпляр MLImageClassifierBuilder
и вызовите метод showInLiveView(:)
чтобы иметь возможность взаимодействовать с классом в интуитивно понятном пользовательском интерфейсе на вашей игровой площадке:
1
2
|
let builder = MLImageClassifierBuilder()
builder.showInLiveView()
|
Большой! Это все, что вам нужно сделать с точки зрения кода. Теперь вы, наконец, готовы перетащить изображения, чтобы создать полнофункциональную модель Core ML.
Перетащить
Теперь мы разработали пользовательский интерфейс, где мы можем начать добавлять наши изображения и наблюдать, как разворачивается магия! Как упоминалось ранее, у меня есть семь изображений цветов и семь изображений деревьев. Конечно, этого будет недостаточно для сверхточной модели, но это делает свое дело.
Когда вы откроете редактор-помощник, вы увидите окно с надписью « Отбросить изображения для начала обучения» , куда можно перетащить папку « Обучение ». Через пару секунд вы увидите некоторые результаты на вашей игровой площадке. Теперь вы готовы протестировать свою новую модель Core ML.
3. Тестирование и экспорт
После того, как вы закончили обучение своей модели, ее легко протестировать и загрузить для использования в ваших приложениях. Вы можете проверить это прямо на своей игровой площадке, даже не создавая проект. Когда вы знаете, что ваша модель готова, вы можете поместить ее в приложение для iOS (или macOS).
Тестирование модели
Помните папку « Тестирование », которую вы создали? Идите вперед и перетащите всю папку на свою игровую площадку (куда вы ранее добавили изображения для тренировок в учебнике). Вы должны увидеть, как ваши изображения появляются в списке, вместе с тем, что модель считает каждым из них. Вы можете быть удивлены — даже с таким небольшим количеством данных, вы все равно можете получить довольно точную модель.
Скачивание модели
Если вы довольны своей моделью, вы можете экспортировать ее в формат Core ML и использовать в своих приложениях. Рядом с классификатором изображений перейдите и нажмите стрелку, направленную вниз, чтобы отобразить некоторые поля, которые можно изменить, чтобы изменить имя, автора или описание вашей модели. Вы также можете выбрать, где его скачать.
Когда вы нажмете синюю кнопку Сохранить , ваш файл .mlmodel появится в нужном вам месте. Если вам интересно, вы также можете прочитать результаты на игровой площадке, чтобы узнать такую информацию, как точность, отзыв и место сохранения вашей модели.
Использование модели
В этом руководстве предполагается, что вы знакомы с моделями Core ML в целом, но я кратко объясню, как это работает. Для получения дополнительной информации о том, как использовать модель, когда она появится в вашем приложении, вы можете прочитать мой другой учебник:
Чтобы использовать модель, перетащите ее в свой проект XCode (как если бы вы использовали изображение или аудиофайл). Затем импортируйте Core ML в файл, в котором вы хотите его использовать. С помощью нескольких дополнительных шагов вы сможете обрабатывать модель как класс Swift и вызывать для него методы, как описано в моем другом учебнике.
Для получения дополнительной информации о том, как это сделать, вы также можете посетить документацию Apple и прочитать о том, как интегрировать машинное обучение в ваше приложение .
Вывод
В этом руководстве вы узнали, как легко создать собственную нейронную сеть классификации изображений, написав всего три строки кода. Вы обучили эту модель своим собственным данным, а затем использовали 20% ее для тестирования модели. Как только он заработал, вы экспортировали его и добавили в свое собственное приложение.
Я надеюсь, что вам понравился этот учебник, и я настоятельно рекомендую вам ознакомиться с некоторыми другими нашими курсами и учебниками по машинному обучению здесь, на Envato Tuts +!
-
Мобильная разработкаНовый курс: Распознавание изображений на iOS с Core ML
-
Машинное обучениеНачните с распознавания изображений в Core ML
-
Машинное обучениеКак обучить модели Core ML для приложения iOS
-
iOS SDKРазговор Дизайн Пользовательский опыт для SiriKit и iOS
Если у вас есть какие-либо комментарии или вопросы, пожалуйста, не стесняйтесь оставлять их в разделе ниже.