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

Введение и обзор

По сути, машинное обучение (ML) — это подход к программированию, который предоставляет вашим приложениям Android возможность учиться и совершенствоваться автоматически на основе опыта без явного программирования для этого. В последнее время в Android появился широкий спектр инструментов машинного обучения, доступных всем: дизайнерам, менеджерам по продуктам, инженерам, мобильным разработчикам и экспертам по машинному обучению. Итак, Android — это платформа, и один из способов, которым вы можете измерить успех платформы, — это большие достижения, которые вы строите на ее основе. Сегодня Android работает на 2,5 миллиардах устройств, и некоторые из них уже используют машинное обучение на устройствах. Кроме того, машинное обучение на устройстве больше не является технологией будущего, потому что оно доступно для использования прямо сейчас. Например, было упомянуто, что более 25 000 приложений для Android и iOS используют функции ML Kit.

Другими словами, современные мобильные телефоны имеют достаточную мощность, чтобы обрабатывать столько же, сколько и традиционные компьютеры, а наши телефоны и планшеты достаточно мощны, чтобы запускать приложения, которые могут обучаться и взаимодействовать в режиме реального времени. Машинное обучение (ML) помогает нам создавать интеллектуальные приложения. Например, прогноз Google Apps для следующих приложений, которые вы, вероятно, будете использовать, и мобильное приложение, которое решает самую большую в мире проблему поиска идеальных смайликов. Кроме того, Smart Assistants, Snapchat Filters, Smart Reply и Google Lens — это некоторые из других продуктов, использующих машинное обучение на устройствах. На мобильных телефонах существует ряд пакетов SDK, которые помогают запускать машинное обучение на мобильных устройствах. Некоторые из них включают комплекты для разработки программного обеспечения, разработанные такими популярными компаниями, как Amazon, Intel и Microsoft, а также Google разработал комплект ML. В следующих разделах этого эссе будут рассмотрены некоторые основные концепции и новые функции, рекомендованные Google для разработки под Android.

Определение машинного обучения (ML)

Фактически, специальность машинного обучения связана с вопросом о том, как создавать компьютерные программы, которые автоматически улучшаются с опытом. Таким образом, ваш ответ находится в ваших данных. Короче говоря, машинное обучение рассматривается как подмножество ИИ, в котором используются статистические методы, позволяющие машинам совершенствоваться с опытом. Это позволяет компьютерной системе принимать решения для выполнения определенной задачи. Эти программы или алгоритмы разработаны таким образом, что они могут обучаться и улучшаться с течением времени, наблюдая за новыми данными. Основная цель машинного обучения — извлекать смысл из данных. Таким образом, данные — это ключ к разблокировке машинного обучения. Чем более квалифицированными данными обладает ML, тем точнее становится алгоритм ML.

Машинное обучение (ML) — это наука о компьютерных алгоритмах, которые автоматически совершенствуются на основе прошлого опыта.

Чтобы делать прогнозы или принимать решения без явного программирования, алгоритмы машинного обучения строят модель на основе примеров, которые называются обучающими данными.

Машинное обучение — это извлечение знаний из данных.

Кроме того, существуют некоторые различия между искусственным интеллектом и машинным обучением. Цель искусственного интеллекта — создать машину, которая может имитировать человеческий разум, и для этого также требуются способности к обучению. Однако это больше, чем просто обучение; это также касается представления знаний, рассуждений и абстрактного мышления. Напротив, машинное обучение сосредоточено исключительно на написании программного обеспечения, которое может учиться на прошлом опыте. Кроме того, машинное обучение более тесно связано с интеллектуальным анализом данных и статистикой, чем с искусственным интеллектом.

Машинное обучение позволяет нам решать определенные виды проблем очень элегантными способами. Важным моментом является то, почему мы используем машинное обучение на практике. Например, вам нужно было написать код, чтобы определить, ходит ли кто-то. Кроме того, если у вас есть доступ к его скорости, вы должны написать довольно простой код, чтобы указать показатель скорости, который показывает ходьбу в реальности. Распространение этой ситуации на бег кажется достаточно простым. Кроме того, если мы хотим охватить езду на велосипеде, нам просто нужно добавить еще одно граничное условие в наш код. На данный момент возникает вопрос, а как насчет других видов деятельности, например, игры в гольф?

На самом деле игра в гольф включает в себя много прогулок, но есть еще и ношение и размахивание кучей клюшек. Итак, как мы объясним это состояние? Вот где машинное обучение может нам эффективно помочь. В традиционном программировании мы выражаем правила на таких языках, как Kotlin, Java. Затем мы применяем эти правила к интересующей нас проблеме. В машинном обучении парадигма несколько иная. Вместо того, чтобы писать кучу правил, мы берем много данных меток, таких как фотографии людей, занятых разными видами деятельности, с соответствующими ярлыками для этих действий. Кроме того, если мы передадим эти данные в нашу нейронную сеть, она изучит для нас бизнес-правила, не требуя их определения. Короче говоря, машинное обучение оказалось чрезвычайно эффективным при решении ряда различных проблем, таких как обнаружение активности.

Машинное обучение в Android-разработке

Как вы заметили, машинное обучение — это подход к программированию, который предоставляет вашим приложениям для Android возможность учиться и совершенствоваться автоматически на основе опыта без явного программирования для этого. Кроме того, это хорошо подходит для приложений Android, которые используют неструктурированные данные, такие как изображения и текст, или задач с большим количеством параметров, таких как прогнозирование спортивной команды-победителя. В настоящее время Android предоставляет широкий спектр инструментов и методов машинного обучения: Руководства по проектированию ML, готовый SDK Google для машинного обучения ML Kit, TF Hub для поиска готовых передовых моделей, TF Lite Model Maker. для обучения существующей модели с вашими собственными данными, а также пользовательские модели ML Kit и Android Studio для интеграции этих моделей в ваше приложение для Android в соответствующем формате.

При разработке приложений машинного обучения для Android вы столкнетесь с четырьмя основными задачами:

  1. Дизайн: определение целей продукта и предоставление шаблонов проектирования машинного обучения для их достижения.
  2. Создать и обучить: создание модели машинного обучения или обучение предварительно обученной модели от Google.
  3. Вывод: процесс использования модели машинного обучения, которая уже обучена для выполнения определенной задачи.
  4. Развертывание: установка и обновление моделей машинного обучения для вашего приложения Android.

Рекомендации по разработке приложений для Android

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

  1. Руководство Люди + ИИ: в этом руководстве есть шесть различных разделов, которые помогут вам структурировать диалог с вашими дизайнерами и менеджерами по продуктам. В целом, он предлагает лучшие практики, которые помогут вашей команде принимать решения в отношении продуктов ИИ, ориентированных на человека.

2. Спецификация дизайна материалов для машинного обучения: это руководство включает следующие разделы:

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

Во-вторых, обеспечение отличного сквозного мобильного UX на основе машинного обучения.

В-третьих, исходный код доступен для обнаружения и отслеживания объектов и сканирования штрих-кодов.

Ключевое решение в Android-разработке

На самом деле, ключевое решение, которое вы должны решить при разработке Android, заключается в том, что логические выводы будут выполняться на устройстве или использовать облачный сервис, доступ к которому будет осуществляться удаленно. Чтобы принять это решение точно, вы должны рассмотреть некоторые параметры как преимущества или недостатки. Например, для подхода на устройстве вы столкнетесь с некоторыми преимуществами:

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

2. Офлайн: машинное обучение на устройстве работает, когда нет подключения или когда сеть неоднородна. Например, если вы проводите какое-то время в поездах метро, ​​вы будете знать, что это может быть полезно.

3. Низкая задержка: запустив нашу обработку на устройстве, мы можем полностью исключить сетевую задержку из уравнения. Кроме того, сочетая это с последними достижениями в области аппаратного ускорения, мы можем предоставить пользователям возможность работать в режиме реального времени на самых разных устройствах Android.

ML Kit для разработчиков приложений

По сути, ML Kit SDK — это новый продукт от Google, который был представлен в 2018 году. ML Kit — это комплект для разработки программного обеспечения, который позволяет разработчикам упростить интеграцию моделей машинного обучения в свои мобильные приложения. Кроме того, с этой задачей легко справится даже джуниор-разработчик. Еще один момент заключается в том, что это делает ваши приложения для iOS и Android намного более привлекательными, персонализированными и полезными благодаря решениям, оптимизированным для работы на устройстве. Как уже упоминалось, более 25 000 приложений для Android и iOS используют функции ML Kit.

Новый SDK, предоставляющий разработчикам мобильных устройств возможности машинного обучения Google в мощном и простом в использовании пакете на Firebase.

ML Kit имеет некоторые функции, которые можно разделить на три раздела:

  1. Vision: API анализа видео и изображений для маркировки изображений и обнаружения штрих-кодов, текста, лиц и объектов.
  2. Естественный язык: API-интерфейсы обработки естественного языка для идентификации и перевода между 58 языками и предоставления вариантов ответа.
  3. Пользовательские. Создавайте собственные модели с помощью AutoML Vision Edge или используйте собственные модели TensorFlow Lite, проводите эксперименты, и разверните их в рабочей среде с помощью ML Kit.

Каждая категория имеет некоторые особенности. Например, Vision имеет некоторые функции в качестве базовых API: сканирование штрих-кода, распознавание лиц, маркировка изображений, распознавание объектов, распознавание ориентиров и распознавание текста.

ТензорФлоу Лайт

По сути, TensorFlow Lite — это набор инструментов, помогающих программистам правильно запускать модели TensorFlow на мобильных, встроенных устройствах и устройствах IoT. Фактически, он обеспечивает вывод машинного обучения на устройстве с малой задержкой и небольшим размером двоичного файла. Другими словами, TensorFlow Lite предназначен для упрощения запуска машинного обучения на устройствах на границе сети вместо отправки данных с сервера туда и обратно. TensorFlow Lite включает в себя два основных компонента:

  1. Интерпретатор TensorFlow Lite: он работает (оптимизированные модели) на многих типах оборудования, таких как мобильные телефоны и микроконтроллеры.

2. Конвертер TensorFlow Lite: он преобразует модели TensorFlow в продуктивную форму для использования интерпретатором и может вводить оптимизации для увеличения размера двоичного файла и производительности.

В конце концов, шаги по использованию TensorFlow Lite кратко содержат следующие шаги:

  1. Выбор модели
  2. Преобразование модели
  3. Развертывание на вашем устройстве
  4. Оптимизация вашей модели

AutoML Vision Edge

Эта новая функция от Google может создавать пользовательские модели классификации изображений на основе ваших собственных обучающих данных. На самом деле, если вы планируете распознавать содержимое изображения, одним из вариантов может быть использование API маркировки изображений ML Kit на устройстве. Однако, если вам требуется более специализированная модель маркировки изображений, вы можете использовать Firebase ML и AutoML Vision Edge для обучения модели с вашими собственными изображениями и категориями. Например, модель для различения видов цветов или видов продуктов питания. Пользовательская модель обучается в Google Cloud, после чего ее можно полноценно использовать на устройстве.

В заключении

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