[Из песочницы] Машинное обучение на Android
Привет, Хабр! Представляю вашему внимаю перевод статьи из журнала APC.
Машинное обучение и интеллектуальный анализ данных — это практические разработки ИИ, благодаря которым появляются приложения различных тематик, начиная от воздухоплавания и заканчивая зоологией. Эти процессы чаще всего выполняются в облаке, на ПК или ноутбуке, гораздо реже — в смартфоне.
Однако недавно в Google Play появилось новое бесплатное приложение под названием «DataLearner», с помощью которого можно добывать данные. Оно не требует внешних ресурсов и доступа с полномочиями суперпользователя.
Вычислительные ресурсы смартфонов
Многие ошибочно полагают, что для машинного обучения и добычи данных требуется много ресурсов облачной вычислительной системы или по меньшей мере мощный компьютер. Однако в конечном счёте всё сводится к размеру анализируемых данных и типу машинного обучения, которое вы хотите применить.
У компьютерного обучения есть свои уровни сложности. Если представить, что такая недавно появившаяся техника глубокого обучения, как свёрточная нейросеть (CNN) — это автомобиль с высокой удельной мощностью, то другие техники, например, дерево поиска решений и многие прочие «лесные» методы обучения — это горячие «хэтчбеки». Они показывают отличные результаты, быстры и легки даже при ограниченных вычислительных возможностях CPU.
Приложение для обработки данных
Недавно Google выпустила TensorFlow Lite. Это приложение для смартфонов и Интернета вещей, предназначенное для глубинного обучения физических объектов. Однако DataLearner пошёл иным путём. Он поддерживает традиционные алгоритмы классификации, например, NaïveBayes и Random Fores. Все они будут храниться в вашем телефоне и не требовать участия третьей стороны для получения доступа к ним.
В DataLearner сочетаются основные компоненты приложения для извлечения данных с открытым исходным кодом Weka и новые алгоритмы компьютерного обучения, разработанные сотрудниками Университета Чарльза Стерта в Австралии. Приложение автономно, т.е. не требует облачных вычислений или интернет — соединения для нормальной работы. Программа не запрашивает доступ с полномочиями суперпользователя, не собирает информацию о вас (за исключением тех данных, которые Google получает из загрузочных файлов в Google Play) и поддерживается на всех устройствах на Android 4.0 и выше. Она легка в управлении благодаря простому пользовательскому интерфейсу, состоящему из трех основных экранов.
При запуске приложения появляется загрузочный экран, где можно скачать пакеты данных CSV или ARFF. Их можно сохранить локально или в загрузках. Для формата CSV нужна строка заголовка. После загрузки вы увидите общую информацию о данных, включая типы и число параметров, а также атрибуты класса.
Выбери себе алгоритм
Если провести по экрану влево, откроется окно, где можно выбрать один из 40 алгоритмов для распознавания паттернов в пакете данных. Извлечение информации — по сути, это выделение паттернов в данных и связей между различными атрибутами и признаками. Совершенного алгоритма не существует, и потому DataLearner предоставляет вам широкий спектр для выбора. Помимо большого числа алгоритмов от разработчиков приложения Weka в списке имеются несколько новых методов, созданных сотрудниками Университета Чарльза Стерта, например, ForestPA, SysFor и SPAARC.
Запусти свой алгоритм
Здесь начинается самое интересное.
Делать вам ничего не придётся, кроме того, что нажать кнопку «Run». Остальное DataLearner сделает сам. Сначала он построит модель ваших данных, т.е. соотнесёт атрибуты друг с другом.
Атрибут класса определяет сгруппированный список, к которому принадлежит каждый пакет данных. Например, стандартная демонстрационная версия пакета данных выдаёт такие показатели погоды, как температура, влажность, направление ветра и количество осадков за последние несколько дней. А вы извлекаете данные, чтобы узнать, есть ли какие-нибудь паттерны в том, как данные показатели погоды соотносятся с тем, дождливо или нет было в тот день.
Затем приложение выполняет перекрёстную сверку набора правил или «модели», созданной посредством метода под названием »10-проходная перекрёстная проверка», чтобы узнать, каковы её прогностические возможности. В итоге вы получите математический анализ, основной результат которого процент точности. Он появится вверху экрана.
Нажмите кнопку «View details/matrix» внизу экрана, и вы получите более детализированную информацию о модели и том, как она работает. Здесь информация о паттернах будет представлена в более наглядном виде.
Также необходимо помнить о количестве загружаемых данных на обработку: несмотря на хвалёную производительность мобильных процессоров, не стоит ожидать от них той же скорости, что и у AWS или Google Cloud. Также не стоит ждать, что вы сможете загрузить с Facebook данные о дорожной обстановке за последние десять лет и того, программа обработает их за…нет, она никогда их не обработает. Тем не менее есть много приложений с более скромными источниками информации, для обработки которых смартфон бы подошёл идеально.
Карманный вычислитель
DataLearner не заменит облачное машинное обучение в скором времени, но это и не является его целью. Вместо этого приложение представляет собой полностью портативное решение, которое умещается в вашем кармане и не требует присоединения сетевого шнура или интернет–кабеля. Приложение можно скачать бесплатно из Google Play. Кроме того, предоставленный по лицензии GPL3 исходный программный код доступен на GitHub.