Igel как казуальное будущее ML (Machine learning для ёжиков)

Обзор одного из первых интерфейсов по машинному обучению.

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

Пришло время для решения данной проблемы: уже некоторое время уважаемые в индустрии специалисты указывали на путь развития Data science и конкретно Machine Learning по упрощению и стандартизации в пользу создания пользовательских интерфейсов. Тенденцию развивает инструмент Igel (нем. «Ёж»), который будет рассмотрен в данной статье.

Igel как казуальное будущее ML (Machine learning для ёжиков)

Igel – это инструмент машинного обучения, позволяющий создавать, обучать и оценивать модели без использования языков программирования. Проект находится на раннем этапе разработки и по сути своей демонстрирует концепт того, как в будущем будет выглядеть инструментарий специалиста по Data Science, которому не нужна тонкая настройка модели.

Igel работает на основе библиотеки Scikit-learn, которая позволяет обработать данные и решать стандартные задачи машинного обучения (классификация, кластеризация и регрессия). Инструмент поддерживает два способа использования: консольный и простой пользовательский интерфейс (UI), использующий браузер. Далее рассмотрим каждый способ отдельно.

Основные функции Igel:

  • Решение задач регрессии/классификации/кластеризации

— пока без обработки текста, временных рядов и картинок

  • Поддержка основных методов и моделей ML и их тонкой настройки

— в пределах предоставляемого списка параметров (он исчерпывающий)

  • data preprocessing

— одно из слабых мест инструмента, грамотная предобработка данных всё ещё требует хорошего кода

  • CV + GS

— доступна кросс-валидация и поиск по сетке

  • Multi-processing

— возможность ведения параллельных вычислений

  • Форматы yaml/json

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

Igel как казуальное будущее ML (Machine learning для ёжиков)
Igel как казуальное будущее ML (Machine learning для ёжиков)

Через интерфейс. Предоставленный автором интерфейс для Igel довольно дружелюбен к пользователю, хоть и урезан в большинстве настроек. Для его использования достаточно скачать архив и открыть титульную страницу в браузере.

После открытия доступен выбор одной из трёх функций, которые ведут к шаблонам, после подтверждения всех параметров алгоритм выполняется.

Достоинства:

  • Доступно человеку с минимальными представлениями о Data Science
  • Отсутствие даже формального кода
  • Удобные шаблоны для операций тренировки, оценки и предсказания модели, которые содержат основные разветвления вариантов использования
  • Портативность
  • Рекомендуемые параметры
Igel как казуальное будущее ML (Machine learning для ёжиков)

Недостатки:

  • Требуется заранее отформатированный набор данных и начальный файл. yaml модели (программа может создать файл по умолчанию, но он появится где-то в районе system32, опознать его сложно)
  • Доступны не все функции. В частности создание файла модели критически необходимо. Можно отнести все недоработки первой версии инструмента к этому пункту
  • Нет отслеживания прогресса программы, вы можете даже не понять когда она завершилась, потому что предупреждающего окна не будет
  • Нет локализации
Igel как казуальное будущее ML (Machine learning для ёжиков)

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

Для установки на компьютер необходимо иметь консоль с полным доступом к pip:

pip install igel igel –h

Далее пользователю даётся полный справочник по пользованию инструментом. Для большего удобства функции даны в правильной последовательности и для записи всех гиперпараметров имеется шаблон.

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

Итого для полного выполнения задачи машинного обучения:

igel –h (вывод инструкции) igel init (с последующими вопросами – создание файла модели) igel fit -dp ‘C:\prep\data.csv’ -yml ‘C:\prep\model.yaml’ (получили yaml-обученную модель) igel evaluate -dp ‘C:\prep\data_val.csv’ (получили evaluation.json) igel predict -dp ‘C:\prep\data_test.csv’ (получили csv-результат)

Достоинства:

  • Полный функционал
  • Хорошая инструкция и интерактивный режим
  • Возможна интеграция с используемыми средами (например, Jupyter Notebook)
  • Доступна шкала прогресса

Недостатки:

  • Требуется умение работать в консоли
  • Требуется всё так же предобработанный датасет
  • Локальные ошибки из-за сырости проекта
  • Отсутствие локализации

В результате использования Igel можно отметить:

  • Удобство шаблонного использования и возможность интеграции в UI
  • Лёгкий и понятный интерфейс
  • Использование Scikit-learn для обработки данных
  • Обязательные и довольно жёсткие условия на формат используемых данных на раннем этапе и малом масштабе разработки.

В завершение статьи хочется обратить внимание, что появление интерфейса Igel не просто открывает новый подвид программного обеспечения для специалистов, но также обозначает тенденцию к повышению доступности и «дружелюбности» машинного обучения и отрасли в целом. Не приходится сомневаться, что дальнейшее развитие подобных проектов полностью изменит профессиональную деятельность в Data Science.

Источники:

22
2 комментария

Да, логично. Как и в веб-разработке.
php, фреймворк какой-нибудь, Wordpress,  tilda

1
Автор

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