глава отдела мобильной разработки Talaera, США, г. Нью Йорк
СИСТЕМНОЕ ИССЛЕДОВАНИЕ ИНСТРУМЕНТОВ ВНЕДРЕНИЯ МАШИННОГО ОБУЧЕНИЯ НА ПЛАТФОРМЕ ANDROID
АННОТАЦИЯ
Инновационные решения, сформированные машинным обучением (ML), необходимы разработчикам мобильных приложений, отрасли в целом. Мобильные приложения совершенствуют свои технологические возможности, обеспечиваются более адаптивным, комфортным пользовательским интерфейсом, что повышает конкурентоспособность, продуктивность, функциональность и безопасность деятельности современных компаний. Существуют различные способы, чтобы применить машинное обучение на платформе Android. Выбор оптимального способа зависит от поставленной задачи, задания, что предстоит выполнить инструментами машинного обучения.
ABSTRACT
Innovative solutions generated by machine learning (ML) are necessary for mobile application developers and the industry as a whole. Mobile applications are improving their technological capabilities and are provided with a more adaptive, comfortable user interface, which increases the competitiveness, productivity, functionality and safety of modern companies. There are various ways to apply machine learning on the Android platform. The choice of the optimal method depends on the task at hand, the task that needs to be performed using machine learning tools.
Ключевые слова: системное исследование, инструменты, внедрение, машинное обучение, платформа Android.
Keywords: systems research, tools, implementation, machine learning, Android platform.
Современные мобильные устройства (смартфоны, планшеты) постоянно совершенствуются, ведущие компании, повышая конкурентоспособность, с большей эффективностью управляют себестоимостью, продумывают дизайн, следуют политике ресурсосбережения, массово внедряют технологии ИИ, средства программной инженерии. Отрасль развивается благодаря системному и прикладному программированию, внедряются теории, методы, инструменты, повышающие эффективность профессиональной разработки ПО. Развитие машинного обучения также связано с программной инженерии. Цифровизация становится частью общественной, государственной сферы, бизнес-среды, способствует динамичному развитию IT-сферы. Программные системы востребованы на рынке, крупнейшие игроки предлагают решения, основанные на возможностях ИИ.
Машинное обучение (machine learning, ML) – это совокупность методов искусственного интеллекта, что способствуют самообучению компьютерных систем (в том числе, нейросетей). Разработчик не занимается прописыванием конкретного алгоритма при решении задания для подобной системы. Достаточно провести работу по подготовке данных и предоставить описание критериев результативного решения, чтобы нейросеть начала обучение.
Обучающие методы разнообразны, как и их параметры. Речь идет о нейросетях, SVM, методе k-средних. С помощью различных количественных и иных параметров происходит настройка под конкретные задачи, что повышает эффективность решения. Например, мощности в нейросети предопределяют слои и нейроны в структуре слоя, тот или иной параметр регулязации.
В методе опорных векторов среди основных параметров называют конкретный тип ядра, уделяют внимание параметру регуляризации C и с упором на регрессию - параметру s (задает ширину «трубки»).
Реализация в рамках метода описывается уникальными алгоритмами, имеет неодинаковую скорость, а также расходится в качестве обучения. Определенный метод эффективен для поиска ответа на конкретное условие, а использование другого покажет низкие результаты, что заставит отказаться от его применения. Вполне логично, что каждая задача ставит ударение на индивидуализации подхода в машинном обучении. Базой для решения всегда будет специалист, опыт которого поясняет практику выбора способов алгоритмизации и настройки параметров. Не менее ценно н прерывать контроль сложности, что достигается кросс-валидацией. Метод подразумевает, что обучение опирается на набор процессов, их параметры задаются, а в итоге выбирается из всех вариантов именно оптимальный.
Но трудности в машинном обучении возникают с неясностью использования наилучшего метода векторизации, который бы поддерживал и классификацию. Обычно нужно перебрать несколько методов, чтобы через апробацию выйти к оптимальному, самому действенному в рамках поставленной задачи и класса. Представления о размерности векторов в случае их заданной природы упрощает выбор, но лишает его творческого поиска. Проект алгоритма машинного обучения успешно реализуют разработчики с креативным началом, с высокими профессиональными компетенциями. Ввести в разработку машинное обучение достаточно затратно для заказчика проекта, что поясняется сложностью исполнения. В настоящее время возник тренд поиска особого формата обработки больших данных, чтобы обеспечить комплексное решение проблем конкретной предметной области [7].
На современном этапе существует разбивка машинного обучения по категориям. Оно может быть контролируемым, неконтролируемым, полууправляемым и обучением с подкреплением. Задача контролируемого обучения – выведение взаимосвязей, имеющих определенные выходные результаты. Его фундамент - помеченные входные данные. Предназначение неконтролируемого обучения – обнаружить закономерности, присущие неразмеченным входным данным. Полууправляемое обучение подразумевает, что к работе привлекается учитель, при нем комбинируются оба вышеперечисленных вида обучения. Подкрепление в данном контексте означает, что от программы требуется способность повторить заданную последовательность циклов, или же разработать процессы, чтобы получить необходимые и безошибочные результаты [1].
Системы, в основе которых – машинное обучение, применяются все активнее. Это своего рода системы ИИ, тем важнее для разработчиков сделать их надежными и безопасными. Устойчивость нужна системам, которые решают задачу в режиме реального времени, иным специальным системам, где есть так называемые критические применения [6].
Организация машинного обучения на платформе Android имеет специфику, которую нужно учесть:
1. Ограниченность ресурсов: у устройств Android ресурсы не так значительны, как у серверов или облачных вычислений. Значит, модель ML должна пройти оптимизацию, чтобы продуктивно работать на мобильном устройстве, имеющем ограничения, в том числе, памяти и энергопотребления.
2. Необходимость оптимизировать модели: чтобы успешно реализовать ML на устройствах Android, нужно оптимизировать модели под ресурсоемкие условия. часто требуется оптимизация моделей для работы в ресурсоемких условиях мобильных устройств. Проводится квантизация, также модели могут быть «обрезаны», уменьшены в размерах и проч.
3. Интегрированность с Android SDK: чтобы разработать приложения ML на базе Android, можно воспользоваться Android SDK. С помощью последнего становятся доступными функции устройств, от камеры, микрофона до геолокации.
4. Политика безопасности и конфиденциальности: информация должна быть надежна защищена от несанкционированного доступа. Приватность становится приоритетом при разработке моделей ML.
5. Инструменты обучения на устройстве: модели обучаются непосредственно на мобильных устройствах, таким образом, облачные вычисления практически не нужны, а данные остаются конфиденциальными.
Мобильные приложения необходимо разрабатывать с учетом перечисленных особенностей, с применением ML на платформе Android. Использование современных инструментов при внедрении ML позволяет разработчику создать модель, интегрировать в приложение на устройстве Android. Применяемые инструменты могут быть следующими:
1. TensorFlow Lite является библиотекой ML, которая предложена Google *. С ее помощью разработчики внедряют модели машинного обучения в устройства Android. Ее оптимизировали, чтобы адаптировать к мобильным устройствам, добиться повышения производительности и низкого энергопотребления.
Инструменты, которые обеспечивают выполнение машинного обучения на устройствах, облегчают запуск моделей на мобильных, встраиваемом, периферийном устройстве, отличаются определенными характеристиками, которые должны быть учтены разработчиками.
Оптимизированные под ML инструменты имеют определенные ограничения. Речь идет о задержке, конфиденциальности, подключении, размерности и расходовании энергии. Система осуществляет поддержку нескольким платформам: Android, iOS, встраиваемый Linux с микроконтроллерами, поддержкой различных языков, с включением Java, Swift, Objective-C, C++ и Python. TensorFlow Lite помогает добиться высокой производительности, потому что имеет аппаратное ускорение и оптимизирует модели, располагает примерами для решения общих задач машинного обучения. Речь идет о классификации изображений, обнаружении объектов, оценке позы, ответах на вопросы, классификации текстов, что могут быть применимы на той или иной платформе. Основные достоинства в системе представлены масштабируемостью, компактностью, простотой в использовании, высококачественности при обработке изображения [5].
2. ML Kit – инструменты в наборе, ML от Google *. Используя их, разработчики могут воспользоваться элементарным способом, чтобы интегрировать модели машинного обучения в приложение Android. Отличается поддержкой различных типов моделей, распознавания изображений, обнаружения объектов, текстового распознавания и других. С мобильным SDK от Google * используется ML для Android и iOS, распознаются тексты, лица, объекты; размечаются объекты на изображениях и создается своя модель классификации; производится сканирование штрих-кодов и QR-меток; распознаются ориентиры; определяются языки текста; переводятся тексты прямо на устройстве; позволяет оперативнее реагировать на письменное сообщение. ML Kit занимается поддержкой кастомных продуктов, а это означает, что могут быть реализованы самые сложные модели [4].
3. Core ML – является фреймворком машинного обучения, предложенный Apple, с его помощью разработчики создают и внедряют модели ML на устройствах iOS и Android. Осуществляет поддержку различных типов моделей. Среди предоставляемых возможностей: позволяет распознавать изображения в режиме онлайн; возможность предиктивного ввода текста; распознавать образы; анализировать тональность; распознавать рукопись; ранжировать поиск; стилизовать изображения; распознавать лица; идентифицировать голос; определять музыку; реферировать текст. Среди ключевых характеристик Core ML: решение от Apple не способно заниматься приемом данных и обучением модели; нет возможности сжимать и шифровать модель, данные нужно защищать отдельно [8].
Фреймворк Core ML располагает низкоуровневыми фреймворками Metal, Accelerate и BNNS, в связи с чем вычисления идут с высокой скоростью. У ядра есть поддержка нейросетей, а также широкого класса моделей, куда входят также обобщенные линейные, древовидных алгоритмов при принятии решений, генерации признаков, метода опорных векторов, инструментом, который подготавливает данные, при обучении модели, оценки ее качества [3].
4. PyTorch Mobile – является инструментом ML, это разработка Facebook **. С его помощью разработчики внедряют модели ML на устройствах Android. Платформа гибкая и интуитивно понятная в эксплуатации, может использоваться для того, чтобы разработать и развертывать модели ML.
Данная библиотека создана в 2012 г., спустя несколько лет она стала общедоступной. PyTorch располагает достаточным функционалом и набором алгоритмов. Библиотека оперирует динамическим графом, в результате вычислительные процессы нужны в меньшем количестве, снижаются и времязатраты на то, чтобы тестировать нейросети [2]. Особенности платформы, которая может использоваться с PyTorch и осуществлять запуск на устройствах: применяется на Linux, Android и iOS; занимается обеспечением мобильного интерпретатора для Android и iOS; осуществляет поддержку трассировки и сценарий посредством TorchScript; поддержку библиотеки ядра с плавающей запятой XNNPACK, что необходима процессорам Arm; дает возможности для интеграции QNNPACK для 8-битных квантованных ядер. Основные преимущества PyTorch Mobile: двоичные файлы уменьшаются в размерах при выполнении; модель быстро и легко развертывается; позволяет осуществлять непосредственную конвертацию модели PyTorch в подходящих мобильным устройствам форматах.
5. Caffe2 – является фреймворком ML, разработка Facebook **, его возможности способствуют внедрению моделей машинного обучения на устройствах Android. Разработка способна повышать производительность и результативность действий разработчиков. Новая версия популярного набора инструментов Caffe, что создана для мобильных и крупномасштабных развертываний в производственной среде, востребована ввиду того, что: Caffe2 может предложить заранее обученную модель, чтобы создавать предлагает демонстрационные приложения; она также отличается скоростью, масштабируемостью и легкостью; хорошей совместимостью с PyTorch и др.; оптимизирована для вывода на сервер [9].
Среды глубокого обучения предназначены, в том числе, для того, чтобы упрощать этапы, когда разрабатываются и обучаются модели. Так, происходит задействование элементов высокого уровня, которые включены в структуру алгоритма с шагами из математических преобразований, по характеру сложными и неопределенными. Подобный пример иллюстрирует любой из названных ниже алгоритмов: логического вывода, градиентного спуска или обратного распространения.
Важно грамотно подобрать среду, причина проблемности данного процесса в общей неразвитости данного аспекта разработки. Универсального, выгодного варианта до сих пор не создано.
Среда определяется целями, ресурсами, и решениями, которые принимает команда специалистов.
Итак, проведенный анализ выявил эффективность применения разработчиками данных инструментов для выполнения прикладных задач, и внедрения модели ML на базе Android. Системное исследование инструментов и библиотек для интеллектуализации приложений, позволило установить наиболее перспективные из них для Android.
1. Использование ПО, платформ для разработки моделей на базе Android, среди которых хорошо зарекомендовали себя следующие: TensorFlow, PyTorch, Caffe, Keras. Они упрощают машинные вычисления, вычисления глубокого обучения. Это простые функции и алгоритмы, с помощью которых особенно удобно визуализировать данные.
2. Использование обширных библиотек функций, чтобы решать задачи с текстом, изображением, видео и проч. Например, TensorFlow Lite, ML Kit, scikit-learn. Они помогают в распознавании, поиске отслеживании объектов, сканировании кодов и меток, разбивке данных. Они многофункциональные, удобные, с большим количеством алгоритмов. С их помощью разработчики успешно интегрируют модели ML в приложениях Android.
3. Изученные программные продукты имеют широкий спектр возможностей для создания, обучения и развертывания моделей ML на Android. Множество функций, включая аналитику и прогнозирование, доступно, даже если отсутствует интернет.
4. Большую значимость имеют различные преимущества перечисленных инструментов. Речь идет об их адаптации, совместимости при работе с моделями машинного обучения. Все готовые модели и алгоритмы доступны, имеют высокую производительность, масштабируемость и демонстрируют хорошие результаты на устройстве Android.
5. Одно из важнейших преимуществ ML – возможность работы над сложными вычислениями непосредственно на устройствах. Даже если нет подключения к интернету, происходит онлайн-обработка данных, осуществляются все планируемые операции.
Ограничения, с которыми сталкиваются разработчики и конечные пользователи, следующие: ограничения вычислительной мощности, сравнительно небольшой объем памяти. Это означает затруднения при попытке адаптировать сложные модели для Android. Энергопотребление, энергоэффективность, углеродный след от данных технологий также являются существенно проблемой.
Кроме того, решается проблема с несбалансированной производительностью устройства Android. Компании работают над оптимизацией производительности для таких платформ, внедряют модели, способные качественно обобщать данные, с удобным процессом обучения, отладки, поддержкой различных GPU.
Подытоживая, следует сказать, что результаты проведенного системного исследования демонстрируют эффективность специальных и оптимизированных инструментов, программных продуктов при внедрении машинного обучения на мобильные устройства Android. При этом необходимо учитывать, что на сегодня - вычислительные ресурсы ограничены, и сама специфика мобильного устройства диктует методы внедрения моделей машинного обучения.
Среди задач, решаемых разработчиками – повышение производительности, объема памяти, улучшение пользовательского интерфейса, простота и удобство, кросс-платформенность и многофункциональность, соответствие потребительским ожиданиям. Таким образом, процесс интеграции моделей машинного обучения в мобильные приложения постоянно совершенствуется, что позитивно сказывается на спросе конечных потребителей.
Список литературы:
- Гущин С.И. Программная инженерия, модели машинного обучения на десяти базовых языках программирования // Инновации и инвестиции. 2023. №5.
- Друки А.А., Спицын В.Г. Применение нейросетевых алгоритмов для семантической сегментации спутниковых снимков поверхности Земли // Вестн. Том. гос. ун-та. Управление, вычислительная техника и информатика. 2023. №63.
- Инструменты Apple для машинного обучения [Электронный ресурс] URL: https://habr.com/ru/company/redmadrobot/blog/418307/ (дата обращения 14.03.2024).
- Информационно-компьютерные технологии в экономике, образовании и социальной сфере. 2021, № 1 (31). - 2021. - 186 с.
- Майоров Р.С., Бождай А.С. Разработка интеллектуальной системы улучшения качества изображений на мобильной платформе Android // Вестник ПензГУ. 2023. №2 (42).
- Намиот Д.Е., Ильюшин Е.А., Чижов И.В. Основания для работ по устойчивому машинному обучению // International Journal of Open Information Technologies. 2021. №11.
- Невоструев К.Н. Обзор литературы по методам машинного обучения (machine learning) // КИО. 2014. №4.
- Саверский В.О. Функциональные возможности фреймворка Core ml // StudNet. 2020. №7.
- Хамидулин Т.Г. Сравнение программного обеспечения глубокого обучения // Экономика и социум. 2019. №2 (57).
*По требованию Роскомнадзора информируем, что иностранное лицо, владеющее информационными ресурсами Google является нарушителем законодательства Росасийской Федерации – прим. ред.
** социальная сеть, запрещенная на территории РФ, как продукт организации Meta, признанной экстремистской – прим.ред.