Разработка средств визуального программирования для моделей машинного обучения на основе двудольного представления графа потоков данных тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Ходненко Иван Владимирович

  • Ходненко Иван Владимирович
  • кандидат науккандидат наук
  • 2022, ФГАОУ ВО «Национальный исследовательский университет ИТМО»
  • Специальность ВАК РФ00.00.00
  • Количество страниц 218
Ходненко Иван Владимирович. Разработка средств визуального программирования для моделей машинного обучения на основе двудольного представления графа потоков данных: дис. кандидат наук: 00.00.00 - Другие cпециальности. ФГАОУ ВО «Национальный исследовательский университет ИТМО». 2022. 218 с.

Оглавление диссертации кандидат наук Ходненко Иван Владимирович

SYNOPSIS

ВВЕДЕНИЕ

Глава 1. Аналитический обзор применения технологий визуального программирования в задачах ИИ и МО

1.1 Жизненный цикл систем искусственного интеллекта на основе моделей машинного обучения

1.2 Технологии и системы визуального программирования

1.3 Особенности применения визуального программирования в задачах моделирования на данных

1.4 Выводы

Глава 2. Методы формализации, построения и оценки качества моделей

машинного обучения в форме композитных приложений

2.1 Метод описания и алгоритм управления процессом создания моделей машинного обучения, основывающийся на двудольном представлении графа вычислений

78

2.1.1 Анализ форм представления вычислительного графа

2.1.2 Нотация вычислительного графа

2.1.3 Алгоритм управления процессом создания и обучения моделей МО, основывающийся на двудольном представлении графа вычислений

2.2 Синтез структуры вычислительного графа на основе интерпретации путей графа знаний в МО

2.2.1 Представление пайплайнов МО на графе знаний

2.2.2 Построение вычислительного графа методами символьного ИИ

2.2.3 Модель автоматического машинного обучения FEDOT

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

2.3.1 Оценка качества систем искусственного интеллекта

2.3.2 Качественная оценка разрабатываемого пайплайна с применением системы шаблонов и правил

2.3.3 Количественная оценка разрабатываемых моделей машинного обучения

2.4 Выводы по главе

Глава 3. Реализация математического, алгоритмического и программного

обеспечения облачной VP-платформы

3.1 Архитектура и реализация системы визуальной разработки моделей машинного бучения

3.1.1 Общая архитектура системы визуальной разработки моделей машинного

обучения

3.1.2 Структура и формирование гиперпараметров моделей МО для интеграции существующих библиотек

3.1.3 Обобщение групп моделей МО с одинаковым поведением

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

3.1.5 Интеграция моделей в платформу для использования нейронных сетей

3.1.6 Автоматическая генерация вычислительного графа

3.1.7 Особенности процедуры обучения для обновления внутренних состояний вычислительного графа

3.2 Метод отложенных вычислений и его реализация

3.2.1 Обоснование требований к отложенным вычислениям

3.2.2 Формирование списка преобразования метаинформации для метода отложенных вычислений

3.2.3 Архитектура подсистемы распределенных вычислений

3.3 Экспериментальные исследования характеристики системы для задач машинного обучения

3.3.1 Результаты испытаний компонентов системы для задач машинного

обучения

3.3.2 Исследования производительности разработанной системы SMILE

3.3.3 Исследования посещаемости системы SMILE

3.4 Выводы по главе

Глава 4. Апробация разработанной системы на прикладных задачах машинного

обучения

4.1 Экспериментальная оценка времени разработки приложений с использованием системы визуального программирования

4.1.1 Экспериментальная оценка времени разработки приложений по

сравнению с традиционным программированием

4.1.2 Экспериментальная оценка разработанной системы с аналогами

4.1.3 Обучения навыкам разработки сложных МО с помощью разработанной платформы

4.2 Апробация системы для построения моделей машинного обучения для управления городской средой

4.3 Апробация системы для построения моделей машинного обучения в нефтегазовом секторе на примере детектирования заколонных циркуляций

4.4 Апробация системы для автоматизации анализа данных по подрядчикам в рамках задачи определения времени выполнения работ при разработке месторождений

164

4.5 Выводы по главе

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

СПИСОК ОСНОВНЫХ ОБОЗНАЧЕНИЙ

модели

Приложение В. Параметры и структура API методов Тексты публикаций

181

РЕФЕРАТ

Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Введение диссертации (часть автореферата) на тему «Разработка средств визуального программирования для моделей машинного обучения на основе двудольного представления графа потоков данных»

Актуальность темы исследования

Современный искусственный интеллект (ИИ) во многом оперирует моделями на данных, которые строятся методами машинного обучения (МО). Для работы с такими моделями нужны особые специалисты - аналитики данных (datascientist), которые не являются полноценными программистами или математиками, но часто хорошо разбираются в предметных областях, для которых необходимо строить модели и решать на их основе прикладные задачи. Спрос на таких специалистов постоянно растет, что мотивируется в первую очередь всевозрастающим объемом генерируемых данных и большим потенциалом их использования. В этих условиях от специалистов требуется умение решать вполне определенный класс задач за разумное время с приемлемым для заказчика качеством, которое может быть объективно подтверждено.

Современное программное обеспечение (ПО) для ИИ и МО в основном представлено открытыми библиотеками (Scikit-learn, Tensorflow, PyTorch, CatBoost и др.), с помощью которых пишут код на популярных языках программирования Python, R и других. При этом процесс разработки специфичен и сводится к однотипным операциям по подготовке данных, обучению моделей, составлению ансамблей, оптимизации параметров. Обычно работа по решению прикладной задачи в области МО начинается с подготовки базовой модели (baseline), которая далее улучшается за счет применения различных практик, сводящихся преимущественно к различным вариантам перебора: методов предобработки данных, моделей и их параметров. Критерием качества модели является расчет метрики на независимых данных, что также является типовой процедурой. В целом практически все практики в области МО, за исключением предметно зависимых, можно считать автоматизируемыми в форме шаблонных потоков задач (pipeline), что стимулирует появление соответствующих программных инструментов. Автоматизация типовых процедур имеет особенный смысл в условиях трудоемкости ручного кодирования, которое неизбежно ведет к ошибкам особенно при работе специалистов с недостаточным опытом. При ручном кодировании методов МО для сохранения контроля над реализацией код разносят в блоки, и обычно это занимает более, чем один экран текста на стандартном мониторе, что ухудшает понимание проекта в целом. Часть этих сложностей можно смягчить за счет применения подходов потокового визуального программирования (Visual Programming, VP), что должно облегчить труд разработчика. К соответствующим классам инструментов относятся Microsoft Azure, KNIME, Orange, Databricks и другие. Для

некоторых узких задач к подобным инструментам можно отнести в том числе достаточно традиционные инструменты, такие как Simulink. Подобные инструменты, не подразумевающие ручного программирования (No-Code системы), позволяют описывать композитные приложения, состоящие из набора стандартных процедур, в форме графа, но их нотация и логика не всегда заточены под специфику задач МО, таких как генерация и нормализация признаков, подбор оптимальных гиперпараметров для моделей, оценка их качества на основе кросс-валидации и других. По этим причинам выигрыш в таких системах есть для стандартных задач, но для сложных задач с высокой вариативностью используемых методов выигрыш может быть несущественным. В таких ситуациях выходом может стать использование гибридного подхода, в рамках которого используется как ручное программирование для специфических задач, так и использование высокоуровневых платформ для подготовленных данных (Low-Code системы).

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

Степень разработанности проблемы

Визуальное программирование является устоявшейся концепцией для инструментов разработки программного обеспечения и решения прикладных задач. Из ранних работ следует отметить книгу 1982 года Джеймса Мартина «Разработка приложений без программиста», в которой отмечено, что «с появлением непроцедурных языков появилась возможность предоставлять пользователям средства, которые позволяют им самим создавать программы». Среди первых инструментов визуального программирования следует выделить LabVIEW - платформа для инженерного проектирования, успешно развивающаяся с 1986 года до настоящего времени. Помимо задач автоматизации разработки приложений в различных прикладных сферах, визуальное программирование успешно используется, чтобы помочь новичкам изучить основы программирования, визуализируя элементы программы. Большинство инструментов визуального программирования используют разного рода абстракции, позволяющие скрыть детали реализации от пользователя, и используют схожие подходы к взаимодействию элементов конструктора приложений.

Непосредственно в принципы создания систем визуального проектирования для аналитики данных и машинного обучения большой вклад внес Бернд Висведел (Bernd Wiswedel) из Университета Констанца - один из авторов системы KNIME. Среди его работ встречаются статьи как по общей функциональности KNIME с описанием функциональности ядра, так и затрагивающие узконаправленные области, такие как модули для биологических и химических данных. Стоит отметить работы Рассела Вольфигенра (Russell D. Wolfinger), сотрудника SAS Institute Inc., который развивает тему применения SaS продукта в сфере машинного обучения. Сфера проведенного исследования затрагивает в том числе автоматизацию разработки потока задач (pipeline) для задач машинного обучения. В этой области стоит отметить исследования Радала Ольсона (Randal S. Olson) из Университета Пенсильвании в рамках проекта TPOT, который совместно с доктором Джейсоном Муром (Dr. Jason H. Moore) является разработчиком данного решения. TPOT -это инструмент оптимизации потока задач на основе дерева, который был одним из самых первых методов автоматического машинного обучения (AutoML) и программных пакетов с открытым исходным кодом, разработанных для сообщества специалистов по данным и аналитиков.

Из отечественных решений необходимо отметить интеграционную сервисную платформу для задачи ИИ BAUM AI, представленную 15 сентября 2022 года разработчиками Нелюбом Владимиром Александровичем и Строгановым Павлом Андреевичем. Платформа имеет контейнер-ориентированную архитектуру и поделена на отдельные модули для решения задач машинного обучения и искусственного интеллекта. Инструменты решения представляют весь цикл разработки моделей МО от парсинга и предобработки данных до анализа данных и создания моделей. Соколова Елена Владимировна, доцент кафедры «Математика и вычислительная техника» университета ЮУрГУ, разработала программу по визуальному программированию, которая обучает студентов с помощью WPF (Windows Presentation Foundation) создавать клиентские приложения Windows.

Отдельно стоит отметить научную школу Александра Валерьевича Бухановского из Университета ИТМО, в рамках которой была разработана VP-платформа облачных вычислений CLAVIRE (А.В. Бухановский, А.В. Ларченко, Д.А. Насонов). Платформа предназначена для построения технологических платформ поддержки облачных вычислений и способна строить ориентированные графы на основе разработанных скриптов. Также стоит отметить систему автоматизации построения композитных приложений для машинного обучения FEDOT, разработанную в Университете ИТМО под

руководством А.В. Калюжной и Н.О. Никитина. Предложенное в рамках диссертационного исследования решение является во многом логическим продолжением данных работ. Цель диссертационной работы

Целью исследования является сокращение времени создания и обучения моделей машинного обучения (МО) специалистами, имеющими ограниченные навыки разработки приложений в области машинного обучения, с обеспечением качества1 получаемых решений за счет формализации структуры композитного приложения в форме компактного представления двудольного графа вычислений. Задачи исследования:

1. Исследование и анализ No-Code или Low-Code систем моделирования процессов, а также их функциональных и архитектурных особенностей применительно к задаче создания и обучения моделей машинного обучения.

2. Формализация представления графа знаний МО, обобщающего процессы разработки, обучения, использования и валидации моделей в форме типовых пайплайнов.

3. Трансляция пайплайнов из графа знаний в представления графа в задачах в области МО, исследование его структурных характеристик, развитие методов хранения, интерпретации и анализа.

4. Разработка метода комплексной оценки качества разработки моделей МО, исходя из свойств и структуры вычислительного графа и точностных характеристик.

5. Формализация VP-представления графа знаний МО для типовых задач машинного обучения.

6. Разработка структур данных и программной архитектуры, а также создание реализующего их программного средства.

7. Экспериментальные исследования повышения эффективности решения задач машинного обучения (включая снижение времени разработки) при использовании разработанного инструмента по сравнению с традиционным программированием. Научная новизна определяется:

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

1 ГОСТ Р 59898-2021. Оценка качества систем искусственного интеллекта. Общие положения.

2. Синтезом оптимальной структуры композитного приложения для задач МО, основанного на комбинации методов символьного искусственного интеллекта и методов автоматического машинного обучения в условиях неопределенности выбора модели специалистом, обеспечивающих снижение сложности разработки.

3. Сочетанием в рамках единого подхода контроля использования лучших практик разработки моделей МО, расчетом типовых метрик качества моделей при различных модификациях обучающих и тестовых данных в том числе в форме интервальных оценок, механизмом сравнения полученного решения с различными вариантами автоматического машинного обучения.

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

Практическая значимость работы определяется разработанной и размещенной в свободном доступе системой SMILE для разработки, обучения и оценки качества моделей машинного обучения. Разработанная программная система обеспечивает качественный прорыв в области разработки моделей и систем ИИ за счет следующих факторов:

- единственное на рынке средство разработки, предназначенное для использования как исполнителем (для создания и обучения модели), так и заказчиком (для интерпретации и подтверждения качества модели);

- на уровне встроенных механизмов обеспечивает использование методов автоматического машинного обучения, применяемого как для создания новых моделей ИИ на данных, так и порождения эталонов для оценки качества существующих моделей ИИ;

- использует компактную low-code-нотацию для описания моделей ИИ в форме объяснимых композитных приложений, которые могут разрабатываться отраслевыми специалистами без навыков программирования и автоматически транслироваться в исходный код на Python.

Платформа внедрена в деятельность Ассоциации «Искусственный интеллект в промышленности», ПАО «Газпром нефть», а также Министерства обороны РФ (в рамках технополиса «Эра»).

На защиту выносятся:

1) Метод управления процессом создания и обучения моделей в форме композитных приложений на основе трансляции представления пайплайна МО на графе знаний в двудольный граф вычислений с помощью автоматического машинного обучения.

2) Математическое, алгоритмическое и программное обеспечение облачной VP-платформы для быстрой разработки, обучения и оценки моделей ИИ на данных отраслевыми специалистами.

Соответствие паспорту специальности 1.2.1:

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

Степень достоверности и апробации результатов

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

- XLIX научная и учебно-методическая конференция Университета ИТМО (2020)

- The 2020 International Conference on Computational Science and Computational Intelligence (CSCI) (2020, Las Vegas, USA)

- Young Scientists Conference in Computational Science (2021, онлайн)

- Пятидесятая научная и учебно-методическая конференция Университета ИТМО (2021, Санкт-Петербург)

- Юбилейный X Конгресс молодых ученых (2021, онлайн)

- Пятьдесят первая (LI) научная и учебно-методическая конференция Университета ИТМО (2022, Санкт-Петербург)

Публикации

По результатам, представленным в диссертации, опубликовано 4 статьи в рецензируемых научных изданиях, входящих в международные реферативные базы данных и системы цитирования Scopus и Web of Science. Личный вклад автора

Из работ, выполненных в соавторстве, в диссертацию включены результаты, соответствующие личному вкладу автора. В том числе личный вклад автора заключается в работе [1], а именно в анализе предметной области, формировании нотации и метода

управления графом, а также разработке архитектуры платформы в форме WEB-сервиса, что включено в первую, вторую и третью главы. В работе [2] личный вклад автора заключался в экспериментальном исследовании решения задачи классификации состояния домов при помощи разработанного сервиса, что соответствует четвертой главе диссертации. В работах [3, 4] личный вклад автора был в исследовании методов для решения задач машинного обучения для интеграции их в платформу, что соответствует четвертой главе диссертации. Вклад соавторов в работах заключается в следующем:

Иванов С. В. во всех работах, выполненных в соавторстве, осуществлял постановку научных задач и консультировал при написании статей.

Антонов А. и Кудинов С. апробировали разработанную систему на практическом примере.

Kajabad Е. N. подобрал необходимую архитектуру нейронной сети для решения задачи прогнозирования событий на основе показаний датчиков электропотребления.

Прокофьев К. исследовал область реализации представленного подхода и разрабатывал web-инструмент манипуляции рабочим пространством.

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

Структура и объем диссертации

Диссертация содержит рефераты на русском и английском языках, введение, четыре главы основного текста, заключение, список использованной литературы, сокращения и четырех приложений. Работа содержит 217 страниц, 91 рисунок, 9 таблиц и 66 ссылок на литературные источники.

СОДЕРЖАНИЕ РАБОТЫ

Во введении обоснована актуальность исследуемой проблемы, сформулированы цель и задачи исследования, определена научная новизна, представлены теоретическая и практическая значимость работы, а также перечислены основные положения, выносимые на защиту.

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

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

использование данных пользователей социальных сетей для определения типа таргетированной рекламы.

Поток задач (pipeline) в процессе создания моделей машинного обучения имеет схожий характер независимо от предметной области рассматриваемой задачи. Качество данных является критически важным параметром, определяющим итоговое качество модели. Поэтому первым этапом при разработке моделей является предобработка данных. После предобработки данных и перед созданием модели может следовать этап отбора признаков. Выбор конкретных моделей в рамках решаемой задачи является сложной задачей, требующей глубоких знаний и опыта в решении практических задач. Большинство рекомендаций сводятся к перебору моделей при разработке потока задач. Важным критерием при разработке моделей МО является воспроизводимость моделирования, для чего существуют правила вида «публикации моделей и кода» или «автоматизация рабочих процессов». Другим критерием является безопасность разрабатываемых моделей. К безопасности можно также отнести сохранение конфиденциальности данных, которые использовались для создания модели.

Программирование потока данных (data flow, DF) подразумевает, что программа создается с использованием графа вычислений, формируемого средствами визуального программирования (visual programming, VP). Одной из областей применения DF и VP является программирование компьютерных схем. Визуальное программирование является основой для создания инструментов разработки программного обеспечения без непосредственного кодирования (No-Code подход) или с программированием только отдельных вычислительных модулей (Low-Code подход). Некоторые инструменты даже позволяют генерировать программный код на основе блок-схем.

Визуальное программирование применяют для обучения традиционным языкам программирования. Обучение с помощью средств визуального программирования также используется для обучения детей робототехнике. Такой подход существенно понижает порог входа и дает положительный результат. В игровой индустрии VP подход также применим, например, для обучения детей созданию игр без кодирования или прототипирования игр для их оценки. Также существуют инструменты VP для создания программ в области интернета вещей. Например, инструмент VIPO - система пространственно-визуального программирования для рабочих процессов robot-IoT. Другой продукт визуального программирования с открытым кодом VIPLE направлен на помощь в обучении IoT. Методы VP также активно применяются в создании и сопровождении вебсайтов или их прототипировании, например с помощью Wix сервиса. Также VP используют

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

Первые упоминания современных VP решений в области машинного обучения встречаются с 1996 года, и к настоящему времени существует более тридцати известных сервисов. На рисунке 1.1 показано распределение создания VP программного обеспечения для машинного обучения по годам. Рисунок основан на данных по 23 инструментам с использованием информации о дате первого релиза продукта.

4

О Кол-во опубликованных платформ в год

:______

1996 1998 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018

Рисунок 1.1 - Развитие VP платформ в области машинного обучения

Наиболее популярными VP платформами для МО являются: Orange, RapidMiner, KNIME, IBM SPSSModelere, CMS Pipelines. Обзор литературы демонстрирует, что ни одно из решений не способно удовлетворить все функциональные задачи и в некоторых задачах необходима комбинация платформ. Некоторые платформы, такие как KNIME, используют в более узких сферах, таких как химия, биология и визуализация данных. Несмотря на обилие подходов, с помощью которых эти платформы были разработаны, они уступают по производительности разработке моделей при помощи традиционного программирования с использованием языка Python. Однако лучшие показатели метрик качества для разрабатываемых моделей показывают платформы Weka, KNIME и IBM Modeler, а RapidMiner показал наихудшую сходимость моделей.

Тема построения эффективного для задач МО вычислительного графа также обсуждается в работах по автоматическому машинному обучению (AutoML). Примерами AutoML моделей являются TPOT и FEDOT. Главное отличие моделей AutoML заключается в том, что их структура определяется собственным потоком задач, то есть модели AutoML изначально являются композитными моделями. Структуру большинства AutoML моделей можно представить в виде ориентированного ациклического графа (DAG). Обзор литературы в отдельных работах демонстрирует, что AutoML показывает лучшее качество разработки моделей МО по метрикам качества по сравнению с ручным созданием потока задач. Однако большинство AutoML представляют конечное решение потока задач как

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

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

Таблица 1.1 - Сравнения Low-Code и No-Code систем для решения задач МО

Функциональность Dataiku SaS* MathWor ks* DataBrick s* TIBCO Data science* IBM* SMILE

Web-интерфейс + + - + + + +

Визуальное программирование + + - - + + +

Бесплатный - - - + - - +

Совместный доступ + - - ? + ? +

Система рекомендаций разработчику - - - - - - +

Предобработка данных + + + + + ? +

AutoML - - - - - ? +

Сравнение моделей + + + + + ? +

Мультизадачность + + + + + ? +

Использование сторонних моделей (pickle) - - - - - ? +

Использование обученных моделей на новых данных + + ? ? ? ? +

Использование предсказанных данных + - ? ? ? ? +

Автогенерация графа - + - - - ? +

BigData ? ? ? ? ? ? +

Функциональность Dataiku SaS* MathWor ks* DataBrick s* TIBCO Data science* IBM* SMILE

Нейронные сети + + - ? ? + +

* Система не доступна на территории России

Таким образом VP платформы широко распространены в разных сферах деятельности и по многим No-Code и Low-Code платформам в области МО ведется статистика по эффективности этих систем. На основе проведенного анализа была составлена таблица функциональности наиболее эффективных решений, включающая 15 критериев. Ни одна из рассмотренных систем не удовлетворяет в полной мере всем пользовательским и системным требованиям, поэтому было принято решение предложить собственную нотацию вычислительного графа и архитектуру системы, чтобы обеспечить полную функциональность.

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

Учитывая рассмотренные процедуры и способы представления потока задач, была предложена следующая нотация вычислительного ориентированного двудольного графа:

G(V, Е) = <VD + VM, Е>, ECVD- Vm, ({Щ, U2}, < С Е, где Vd - множество вершин данных, Vm - множество узлов моделей, E - множество ориентированных ребер графа. Двудольный граф был выбран в качестве основного формализма для вычислительного графа, так как в ходе вычислений используются только два типа сущностей: данные и модели, которые подразумевают разное поведение. Узел данных ответственен за чтение, обработку и визуализацию данных. Узел модели определяет модель МО, в которой доступно использование процедуры обучения, применения или трансформации с передаваемыми в неё данными. Ребро делится на два типа: ребро вызова Ес С Е и ребро применения ЕА С Е. Ребро вызова указывает направление передачи данных и обозначает, что в дочернем узле модели будет вызвана процедура обучения или трансформации данных. Ребро применения отражает процедуру применения и определяет узлы данных, для которых обученная модель может предсказывать значения на основе данных, находящихся в них. Рисунок 2.1 содержит пример двудольного ориентированного графа, представляющего собой вычислительный

граф, описывающий использование моделей МО совместно с изменяемыми промежуточными данными между моделями.

Рисунок 2.1 - Пример ориентированного двудольного вычислительного графа

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

Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Список литературы диссертационного исследования кандидат наук Ходненко Иван Владимирович, 2022 год

СПИСОК ЛИТЕРАТУРЫ

1. Jordan M.I., Mitchell T.M. Machine learning: Trends, perspectives, and prospects // Science (1979). American Association for the Advancement of Science, 2015. Vol. 349, № 6245. P.255-260.

2. Jain A. et al. Overview and Importance of Data Quality for Machine Learning Tasks // Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, NY, USA: Association for Computing Machinery, 2020. P. 35613562.

3. Albon C. Machine learning with python cookbook: Practical solutions from preprocessing to deep learning. " O'Reilly Media, Inc.," 2018.

4. Pargent F. et al. Regularized target encoding outperforms traditional methods in supervised machine learning with high cardinality features // Comput Stat. Springer Science and Business Media Deutschland GmbH, 2022. Vol. 37, № 5. P. 2671-2692.

5. Liu Y., Gopalakrishnan V. An Overview and Evaluation of Recent Machine Learning Imputation Methods Using Cardiac Imaging Data // Data 2017, Vol. 2, Page 8. Multidisciplinary Digital Publishing Institute, 2017. Vol. 2, № 1. P. 8.

6. Saad M. et al. Machine Learning Based Approaches for Imputation in Time Series Data and their Impact on Forecasting // Conf Proc IEEE Int Conf Syst Man Cybern. Institute of Electrical and Electronics Engineers Inc., 2020. Vol. 2020-October. P. 2621-2627.

7. Zhou Z.-H. Machine learning. Springer Nature, 2021.

8. Zinkevich M. Rules of machine learning: Best practices for ML engineering // URL: https://developers. google. com/machine-learning/guides/rules-of-ml. 2017.

9. Wujek B., Hall P., Gunes F. Best practices for machine learning applications // SAS Institute Inc. 2016.

10. Hapke H., Nelson C. Building machine learning pipelines. O'Reilly Media, 2020.

11. Rudzicz F., Paprica A., Janczarski M. Towards international standards for evaluating machine learning.

12. François D. Methodology and standards for data analysis with machine learning tools. 2008.

13. Walsh I. et al. Reproducibility standards for machine learning in the life sciences // Nature Methods 2021 18:10. Nature Publishing Group, 2021. Vol. 18, № 10. P. 1132-1135.

14. Al-Rubaie M., Chang J.M. Privacy-Preserving Machine Learning: Threats and Solutions // IEEE Secur Priv. Institute of Electrical and Electronics Engineers Inc., 2019. Vol. 17, № 2. P. 49-58.

15. Liu Q. et al. A survey on security threats and defensive techniques of machine learning: A data driven view // IEEE Access. Institute of Electrical and Electronics Engineers Inc., 2018. Vol. 6. P. 12103-12117.

16. Xue M. et al. Machine Learning Security: Threats, Countermeasures, and Evaluations // IEEE Access. Institute of Electrical and Electronics Engineers Inc., 2020. Vol. 8. P. 7472074742.

17. Sousa T.B. Dataflow programming concept, languages and applications // Doctoral Symposium on Informatics Engineering. 2012. Vol. 130.

18. Burnett M M., McIntyre D.W. Visual programming // COMPUTER-LOS ALAMITOS-. IEEE INSTITUTE OF ELECTRICAL AND ELECTRONICS, 1995. Vol. 28. P. 14.

19. Luo Y. et al. Characteristics and Challenges of Low-Code Development: The Practitioners' Perspective // Proceedings of the 15th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). New York, NY, USA: ACM, 2022. P. 111.

20. Johnston W.M., Hanna J.R.P., Millar R.J. Advances in dataflow programming languages // ACM computing surveys (CSUR). ACM New York, NY, USA, 2004. Vol. 36, № 1. P. 134.

21. Adrian B., Hinrichsen S., Nikolenko A. App Development via Low-Code Programming as Part of Modern Industrial Engineering Education // Advances in Intelligent Systems and Computing. Springer, 2020. Vol. 1207 AISC. P. 45-51.

22. Asenov D., Muller P. Envision: A fast and flexible visual code editor with fluid interactions (Overview) // Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC. IEEE Computer Society, 2014. P. 9-12.

23. Ozkaya M. Are the UML modelling tools powerful enough for practitioners? A literature review // IET Software. The Institution of Engineering and Technology, 2019. Vol. 13, № 5. P. 338-354.

24. Kanika, Chakraverty S., Chakraborty P. Tools and techniques for teaching computer programming: A review // Journal of Educational Technology Systems. SAGE Publications Sage CA: Los Angeles, CA, 2020. Vol. 49, № 2. P. 170-198.

25. Tsai C.-Y. Improving students' understanding of basic programming concepts through visual programming language: The role of self-efficacy // Comput Human Behav. Elsevier, 2019. Vol. 95. P. 224-232.

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

Banerjee R. et al. Empowering Children To Rapidly Author Games and Animations Without Writing Code // Proceedings of the The 15th International Conference on Interaction Design and Children. New York, NY, USA: ACM. Визуальное программирование с помощью Unity.

Huang G. et al. Vipo: Spatial-Visual Programming with Functions for Robot-IoT Workflows // Conference on Human Factors in Computing Systems - Proceedings. Association for Computing Machinery, 2020. Vol. 20.

Ray P.P. A survey on visual programming languages in internet of things // Sci Program. Hindawi, 2017. Vol. 2017.

Mattsson H., Magnusson J. Using no-code tools within the requirements validation process with focus on web development. 2022.

Cahyadi A.T. et al. Website Designing for Business Enterprises Using Wix.com. 2022. Käppi S. How to make an online store without coding. 2021.

Broll B. et al. A visual programming environment for learning distributed programming // Proceedings of the 2017 ACM SIGCSE technical symposium on computer science education. 2017. P. 81-86.

Hall P. et al. An overview of machine learning with SAS® enterprise miner™ // Citeseer. Pynam V. et al. An extensive study of data analysis tools (rapid miner, weka, r tool, knime, orange) // researchgate.net. 2018. Vol. 5, № 9.

Labhade D. et al. An overview of machine learning techniques and tools for predictive analytics // asianssr.org.

Subathra P. et al. A study of open source data mining tools and its applications // Research Journal of Applied Sciences, Engineering and Technology. 2015. Vol. 10, № 10. P. 11081132.

Jovic A., Brkic K., Bogunovic N. An overview of free software tools for general data mining // 2014 37th International Convention on Information and Communication Technology, Electronics and Microelectronics, MIPRO 2014 - Proceedings. IEEE Computer Society, 2014. P.1112-1117.

Löfström T. et al. Tutorial for using conformal prediction in KNIME // Proceedings of Machine Learning Research. PMLR, 2022. Vol. 179. P. 4-23.

Çelik H., ... A.Ç.-C. on D.A. for B., 2021 undefined. An Application on Ensemble Learning Using KNIME // ieeexplore.ieee.org.

Padmavaty V., ... C.G.-I.J. of, 2020 undefined. Analysis of data mining tool Orange // modern-journals.com.

42. Pawar S., Stanam A. Scalable, reliable and robust data mining infrastructures // Proceedings of the World Conference on Smart Trends in Systems, Security and Sustainability, WS4 2020. Institute of Electrical and Electronics Engineers Inc., 2020. P. 123-125.

43. Engineering S.A.-, Research T.& A.S., 2022 undefined. Data Mining Regarding Cyberbullying in the Arabic Language on Instagram Using KNIME and Orange Tools // etasr.com. 2022. Vol. 12, № 5. P. 9364-9371.

44. Getting started with Azure Machine Learning [Electronic resource] // https://cloudblogs.microsoft.com/industry-blog/en-gb/technetuk/2022/02/10/getting-started-with-azure-machine-learning/.

45. Berka P. KDD Tools for Do-It-Yourself Analyses. 2019.

46. László K., Ghous H. Efficiency comparison of Python and RapidMiner // Multidiszciplináris Tudományok. Multidiszciplinaris tudomanyok, 2020. Vol. 10, № 3. P. 212-220.

47. Hanif M.H.M. et al. Performance Evaluation of Machine Learning Algorithms for Spam Profile Detection on Twitter Using WEKA and RapidMiner // Adv Sci Lett. American Scientific Publishers, 2018. Vol. 24, № 2. P. 1043-1046.

48. Warr W.A. Scientific workflow systems: Pipeline Pilot and KNIME // J Comput Aided Mol Des. Springer, 2012. Vol. 26, № 7. P. 801-804.

49. Pérez-Sánchez H. et al. A Pipeline Pilot based SOAP implementation of FlexScreen for high-throughput virtual screening // Proceedings of the 3rd International Workshop on Science Gateways for Life Sciences (IWSG-Life 2011), London, United Kingdom. 2011. Vol. 819. P. 9.

50. Triguero I. et al. Comparison of KEEL versus open source Data Mining tools: Knime and Weka software. 2016.

51. McCullough B., ... T.M.-... R.D.M., 2019 undefined. On the accuracy of linear regression routines in some data mining packages // Wiley Online Library. Wiley-Blackwell, 2018. Vol. 9, № 3.

52. Naik A., Samant L. Correlation review of classification algorithm using data mining tool: WEKA, Rapidminer, Tanagra, Orange and Knime // Procedia Comput Sci. Elsevier, 2016. Vol. 85. P. 662-668.

53. Wahbeh A. et al. A comparison study between data mining tools over some classification methods // academia.edu.

54. Al-Khoder A., Res H.H.-Int.J.Acad.Sci., 2015 undefined. Evaluating four of the most popular open source and free data mining tools // researchgate.net. Vol. 3, № 1. P. 13-23.

55. Escalante H.J. Automated Machine Learning -- a brief review at the end of the early years // Natural Computing Series. Springer Science and Business Media Deutschland GmbH, 2020. P. 11-28.

56. Waring J., Lindvall C., Umeton R. Automated machine learning: Review of the state-of-the-art and opportunities for healthcare // Artif Intell Med. Elsevier, 2020. Vol. 104. P. 101822.

57. Olson R.S., Edu O., Moore J.H. TPOT: A Tree-based Pipeline Optimization Tool for Automating Machine Learning. PMLR, 2016. Vol. 64. P. 66-74.

58. Nikitin N.O. et al. Automated evolutionary approach for the design of composite machine learning pipelines // Future Generation Computer Systems. Elsevier, 2022. Vol. 127. P. 109-125.

59. Qi F. et al. Darwinml: A graph-based evolutionary algorithm for automated machine learning // arXiv preprint arXiv:1901.08013. 2018.

60. Olson R.S. et al. Evaluation of a tree-based pipeline optimization tool for automating data science // GECCO 2016 - Proceedings of the 2016 Genetic and Evolutionary Computation Conference. Association for Computing Machinery, Inc, 2016. P. 485-492.

61. Nikitin N.O. et al. Automated evolutionary approach for the design of composite machine learning pipelines // Future Generation Computer Systems. North-Holland, 2022. Vol. 127. P.109-125.

62. Orange Data Mining - Ideas and Notes for Teachers [Electronic resource]. URL: https://orangedatamining.com/blog/2022/2022-06-16-training-material/ (accessed: 19.10.2022).

63. Idoine C. et al. Magic Quadrant for data science and machine-learning platforms // Gartner, Inc. 2018. P. 13.

64. ГОСТ Р 59898-2021 Оценка качества систем искусственного интеллекта. Общие положения [Electronic resource]. URL: https://allgosts.ru/11/040/gost_r_59898-2021 (accessed: 25.10.2022).

65. Pascarella L. et al. Investigating type declaration mismatches in Python // 2018 IEEE International Workshop on Machine Learning Techniques for Software Quality Evaluation, MaLTeSQuE 2018 - Proceedings. Institute of Electrical and Electronics Engineers Inc., 2018. P. 43-48.

66. Give Me Some Credit | Kaggle [Electronic resource]. URL: https://www.kaggle.com/c/GiveMeSomeCredit (accessed: 23.10.2022).

СПИСОК ОСНОВНЫХ ОБОЗНАЧЕНИЙ

Данные, набор данных Информация, представленная в виде, пригодном для обработки автоматическими средствами при возможном участии человека.

Машинное обучение Процесс обучения системы на наборе данных (опыте) за счет применения алгоритмов (методов) обучения.

Машинное обучение (в узком смысле - как процесс) Процесс обучения системы на наборе данных (опыте) за счет применения алгоритмов (методов) обучения.

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

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

Обучающая выборка Набор данных, на котором идентифицируется модель машинного обучения.

Тестовая выборка Набор данных, на котором оценивается качество модели, идентифицированной на обучающей выборке.

Гипер-параметры Параметры моделей и алгоритмов, остающиеся неизменными в процессе машинного обучения. Идентификация гиперпараметров является предметом для автоматического машинного обучения.

Вычислительный граф Объект генерации, соединяющий все модели и данные в рамках одного решения.

Поток задач (pipeline) Последовательная часть вычислительного графа, выполняемого при запуске конкретного узла

Базовая модель (baseline) Совокупность конкретной модели МО и методов предобработки данных, полученных в результате запуска потока задач с применением набора типовых шаблонов, реализующих лучшие практики.

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

Композитная модель Модель машинного обучения, имеющая явную внутреннюю структуру, в рамках которой может быть выделено несколько атомарных моделей. Данные модели могут носить гетерогенный характер, в т. ч. быть основанными на уравнениях и не относиться к классу моделей МО вовсе (см. "гибридная модель").

Гибридная модель Композитная модель, в состав которой, помимо моделей МО, входят численные модели, специфичные для конкретной предметной области (например, модели на основе уравнений)

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

ВВР Время выполнения работ

СИИ Система искусственного интеллекта

Приложение А. Список мероприятий дополнительного профессионального образования по апробации платформы

Программа ДПО Даты Название лекции

Большие данные и машинное обучение для службы квалифицированного заказчика 08-12 февраля 2021 Машинное обучение без программиста: какие программные инструменты подходят для всех? Как создавать цифровые двойники на основе машинного обучения: быстро и наглядно

Фронтиры прикладного искусственного интеллекта: промышленность, экономика, образование 22 ноября -10 декабря 2021 Разработка робастных методов машинного обучения на основе ансамблирования

Преподаватель в области искусственного интеллекта 20-30 июня 2022 Особенности практико-ориентированной реализации дисциплин в сфере ИИ: как правильно формулировать практические задания для обучения Инструменты разработки в машинном обучении и платформенные решения: платформы машинного обучения

Платформа визуального программирования (краткосрочный курс) 15 августа -15 сентября 2022 Вводный экскурс в систему визуального программирования

Классификация/Регрессия (модели)

Кросс-валидация и подбор параметров

Проблемы с данными (пропуски, аномалии, категориальные признаки)

Улучшение результата (нормализация, несбалансированность, понижение размерности)

Дикая предобработка данных (скрытые зависимости, polynomial)

Школа YSC: Оценка качества разработок на основе искусственного интеллекта 12-17 сентября 2022 Действительно ли модель удачна: оценка качества модели ИИ на основе данных

Школа Р1 ИИ в междисциплинарных научных проектах: оценка качества и потенциала 19 сентября -15 ноября 2022 Это действительно заработает? Оценка качества модели ИИ на основе данных.

Приложение Б. Формат интерфейса Python для встраивания пользовательской

модели

from typing import List, Diet, Union, Tuple

from data.modules.machine learning.models. abstract module import AbstractModule

from data.modules.machine learning.plot methods import BaseMethod as BasePlot

class CustomUserModel(AbstractModule):

II II II

Содержимые состояния:

- data mix class: DataMix - ссылка на класс для работы со список

данных

- calculation manager: CalculationManager - ссылка на класс для работы с удаленными вычислениями

access dtypes = []

access target dtypes = []

return input: bool = True # возвращает ли модель входящие признаки

def init (self, instance: any, plots: List[BasePlot] = None, logger=None):

a a a

:param instance: Класс модели. Может быть None при отсутствие вариативного использования

:param plots: Список визуализаторов для отрисовки :param logger:

а а а

super(CustomUserModel, self). init (instance, plot =plots, logger=logger)

def get docs(self, docs=None):

a a a

[Optional if there is the instance]

Returns the documentation of instance method for creating of arguments for this module :return:

a a a

return super(CustomUserModel, self).get docs(doc =docs)

def get params(self, properties, only read=False, extra parameters: list = None) -> list:

a a a

Получить из документации конкретного метода/модели список параметров и информацию о них

:param properties: Сохраненные в бд свойства

:param only read: Если требуется запретить изменения возвращаемым свойствам (например, если зашел

пользователь в проект, у которого нет прав на

редактирование)

:param extra parameters: Кастомизированные параметры выбранной модели (исключают параметры из документации

:return: Список объектов с параметрами

return super(CustomUserModel, self).get params(properties, only read, extra parameters)

def get extra params(self, extra params=None, **kwargs) -> List[Dict[str, Union[bool, int, str, dict]]]:

II II II

Вернуть дополнительные параметры для модели [Optional] Extension of model parameters

:param extra params: list(dict(model: str, name: str, default: str, description: str, types: dict))

Пример дополнительного параметра [{ 'model': self.get name(), 'name': 'some value',

'input type': 'number', # [boolean, number, string, select,

multiselect]

'default': 10,

'description': 'Какой-то пользовательский параметр', 'types': {'select': [10, 20, 30]}, # В случае input type=select

'is required': True, Обязательный или нет

}]

:param kwargs: dict(node: Node, default values: dict) :return:

a a a

return []

def get extra features(self, node, properties, columns=None, **kwargs):

a a a

Получить дополнительные признаки для детей

[Optional] The values which the model to translate to out nodes :param node: Узел в котором выбрана текущая модель :param properties: Сохраненные свойства модели :param columns: Оставшиеся признаки данных в моделе :return: dict(id of feature: dict(group=self.get name(), content=name if feature))

a a a

features = {}

# features = ('abc': self.get default meta(dtype='int', n rows=n rows)}

return self.form features by list(node.id, features)

def validate(self, node, **kwargs) -> Tuple[List[str], List[str]]: errors, warning = [], [] return errors, warning

def plot(self, data, plotting, additional data):

return super(CustomUserModel, self).plot(data, plotting, additional data)

def call(self, df, model parameters, panel id, **kwargs):

a a a

The calling of the node

:param df: translated DataFrame collected from parent nodes. :param model parameters: :param kwargs: :return:

a a a

pass

def apply(self, data: list, calculation id: str = None):

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

модель. Например RegressionModels. :param data: список с данными.

:param calculation id: - id вычисления, для ограничения области расчета для текущего узла

:return: Результаты применения. Обычно это словарь, например ("predict": [...]}

н " "

pass

def get template(self) -> str:

н " "

Сформировать html код с отображением результатов (прототип для наследуемых классов). Пример RegressionModels :return:

return

def get description(self) -> str:

return super(CustomUserModel, self).get description()

def get size(self) -> int:

n II II

Вернуть размер обученной модели (необходимо для анализа проектов)

н н н

return super(CustomUserModel, self).get size()

Приложение В. Параметры и структура API методов

get_panels - вернуть кэшированные панели

Запрос вида:_

/api/task/<project_id>/action/?action=get_panels

Ответ сервера:_

{

"panels": {

"<panel_id>": {

"model_node": <model_node_id: str>, "was_called": boolean

},

}

}

Пример запроса:_

http://127.0.0.1:8000/api/task/1/action/?action=get_panels

Пример ответа запроса:_

{

"panels": {

"calculation_panel_3": {

"model_node": " 02056e20-bfc7-4f10-a21 e-bb8ffc4dcf23", "was_called": true

},

"one_model_panel": { # для единичной панели под графом "was_called": true

}

}

}

get_calculation_panel_json - получить информацию для рендеринга панели вычислений

Запрос вида:_

GET: /api/task/<project_id>/action/?action=get_calculation_panel_json

Параметры:

Параметр Значение Описание

node_id <node_id: str> id узла модели

panel_id <panel_id: str> id панели, для уже существующих панелей, если нужно получить состояния кэша, например

generate_id falsejtrue Сгенерировать или нет id для новой панели

Пример ответа запроса:

{

"panel": { "id": "<paneljd: str>", "nodejd": "<node_id: str>", "nodes": [{

"id": "<node_id: str>", "name": "<node_label: str>"

},

],

"advancedSettings": {

"extra_parameters": [ {

"model": "<model_name: str>", "name": "<parameter_name: str>", "input_type": "{bool|str|number|select|multiselect}", "default": "<Значение по умолчанию: str>", "description": "<Описание: str>", "types": { # Актуально для типов select и multiselect "select": [ # select - если input_type == 'select', multiselect - если input_type == 'multiselect' "Не выбрано", "sepaljength",

]

},

"is_required": false, # Для выделение жирным текстом "value": "species_transformed" # Сохраненное значение

}

],

"parameters": [] # Аналогично extra_parameters

},

"callRecord": {

"id": <node_id: str or null>, # id узла если расчет завершен, иначе null "resource_name": "<remote_server: str>", # Наименование вычислительного сервера "project": { "id": <project_id: int>, "name": "<project_name: str>"

},

"user": { "id": <user_id: int>, "username": "<username: str>"

},

"node_id": "<node_id: str>", "model": { "id": "<node_id: str>", "label": "<node_label: str>"

},

"status": "<status: str>", "finish_status": "...",

"running_time": <calculation_time: int>, # сколько секунд узел запущен "color": "light" # Игнорировать пока

}

}

}

Пример запроса:_

http://127.0.0.1:8000/api/task/1/action/?action=get_calculation_panel_json&node_id=8ce10fc5-c3b6-4301-9748-4914edc2f051&generate_id=False

Пример ответа запроса: {

"panel": { "id": "one_model_panel",

"nodeId": "8ce10fc5-c3b6-4301-9748-4914edc2f051", "nodes": [{

"id": "02056e20-bfc7-4f10-a21e-bb8ffc4dcf23", "name": "LabelEncoder_1"

}

],

"advancedSettings": {

"extra_parameters": [ {

"model": "AutoBalanceBoost", "name": "target_column", "input_type": "select", "default": "sepal_length",

"description": "Наименование целевого столбца, default_value = species_transformed", "types": { "select": [ "Не выбрано", "sepaljength",

]

},

"is_required": false, "value": "sepal_length"

}, {

"model": "AutoBalanceBoost", "name": "predict_column_name", "input_type": "str", "default": "predict",

"description": "The name of predict column, which will be used in the next nodes, default_value =

predict",

"value": "predict"

}

],

"parameters": []

},

"callRecord": { "id": null,

"resource_name": "Local", "project": { "id": 1,

"name": "Iris classification"

},

"user": { "id": 1,

"username": "admin"

"node_id": "8ce10fc5-c3b6-4301 -9748-4914edc2f051", "model": { "id": "AutoBalanceBoost", "label": "AutoBalanceBoost_1"

"status": "Running 3 sec", "finish_status": "...", "running_time": 3, "color": "light"

}

}

}

Сообщения (сокеты), возвращаемые с сервера, всегда приходят в формате:

{

'content': {}, # dict data

'type': '' # type of event. Usually this is the name of function on client side, which is called and content is

translated to it }

Значение type - наименование функции на клиенте, которая должна быть вызвана и в которую должен быть передан content. Есть общие ответы, такие как node_json, edge_json. Примеры их содержания вынесены отдельно после таблицы.

Таблица 0.1 - Сообщения сервера для обновления вычислительного графа на стороне

браузера.

Тип сокета Описание Содержание

node_called Вызывается, когда модель была посчитана { 'node_id': node_id: str, 'panel_id': panel_id: str or 'one_model_panel' constant, 'template': 'html template to render', 'logs': [], # list of logs (messages) 'disable_stop_button': True|False, }

file_created После создания и записи файла (большие файлы обрабатываются через celery) { 'msg': '', # message 'file_type': 'data', # possible options: ['data', 'model'] 'status': int, # possible options: {201, 500, 404} 'data': [{ 'type': 'data', # possible options: ['data', 'model'] 'file': filejson* or file model_json* }] }

data_was_updated Состояние узла было обновлено (валидация, входные данные и т.д.) node_json*

node_created Узел был создан node_json*

edge_created Ребро было создано edge_json*

node_removed Узел был удален {node_id: '<id>'}

server_fail Когда произошла ошибка во время обучения модели { message: '', # some message node_id: '<node_id: str>', panel_id: '<panel_id: str>', # panel_id or 'one_model_panel' }

apply_fail Когда произошла ошибка во время применения модели к данным { message: '', # some message node_id: '<node_id: str>',

panel_id: '<panel_id: str>', # panel id or 'one model_panel' }

server_warning Когда о чем-то надо предупредить пользователя во время обучения или применения модели { 'message': '', # some message 'panel id': '<panel id: str>' }

update_plots При обновлении графиков. Используется только при динамических данных (редкое событие), чуть позже опишу. { 'plots': [ ] }

print_logs Новое log сообщение { message: '', # some string method: "run_node_with_parents", # method, where it was log msg: "end run: KNNImputer_1 (called: True)", # copy of message panel_id: "one_model_panel" # id of panel }

node_was_dropped При изменении свойств узла node_json*

update_panel Обновление панели вычислений модели. То есть, когда есть панель обучения модели и добавляется новый ребенок для модели {позже}

nodes_called На клиенте можно запустить весь граф, и это сообщение приходит, когда весь граф был запущен {message: '...'}

Формат контента «node json»_

{

"id": '<node_id: str>',

"type": 'methods', # possible options: ['defaultNode', 'methods'] "properties": {

"models_title": '<node_model_id: str>', # for example 'LogisticRegression' "label": '<node_label: str>', # custom user name of node "properties": {

'<node_model_id>.<property_name: str>': '<property_value>', # this is special case

} },

"position": { "x": <number: int>, "y": <number: int> },

"validation": { "is_valid": bool,

"reason": '<message: str>' # invalid message in case, if a node is invalid

},

"called": bool, # if this node was called already "args": {

"color": { # for each node type there are set of colors "background": "#f52f2f",

"border": "#f52f2f", "highlight": "#f52f2f"

}

}

}

Формат контента «edge json»_

{

"id": '<edge_id: str>',

"type": "defaultEdge", # possible options: ['defaultEdge', 'applyEdge'] "properties": { "label": "<edge_label: str>", "features_title": { # in case of defaultEdge "options": {}, "value": []

} },

"args": { "from": "<node_id: str>", "to": "<node_id: str>", "color": { "inherit": "both" # constant

}

}

}

Тексты публикаций

1. Khodnenko I., Ivanov S.V., Prokofiev K., Lantseva A.A. A Lightweight Visual Programming tool for Machine Learning and Data Manipulation // Proceedings - 2020 International Conference on Computational Science and Computational Intelligence, CSCI 2020 - 2020, pp. 9458229

2. Antonov A., Khodnenko I., Kudinov S. Facade deterioration prediction with the use of machine learning methods, based on objective parameters and e-participation data // Procedia Computer Science - 2021, Vol. 193, pp. 42-51

3. Khodnenko I., Ivanov S.V., Perets D.S., Simonov M. Detection of lost circulation in drilling wells employing sensor data using machine learning technique // Procedia Computer Science - 2019, Vol. 156, pp. 300-307

4. Kajabad E.N., Ivanov S.V., Khodnenko I. LSTM Algorithm For Forecasting Events In Changing Electric Consumption // Proceedings - 2020 International Conference on Computational Science and Computational Intelligence, CSCI 2020 - 2020, pp. 9457949

2020 International Conference on Computational Science and Computational Intelligence (CSCI)

A Lightweight Visual Programming tool for Machine Learning and Data Manipulation

o

Q

Ivan Khodnenko nMO University Saint Petersurg, Russia Ivan.Khodnenko@itmo.ru

Sergey V. Ivanov ITMO University Saint Petersurg, Russia svivanov@itmo.ru

Kirill Prokofiev ITMO University Saint Petersurg, Russia Kirill_Prokofiev@itmo.ru

Anastasiia Lantseva ITMO University Saint Petersurg, Russia a.a.lantseva@itmo.ru

Abstract—In recent decades, visual programming tools have focused on scientific workflow tasks. However, the current focus has shifted to machine learning tasks, which are most often amenable to unification. The existing solutions in this area demonstrate many alternatives with the possibility of using models from various machine learning packages. The proposed solution is based on the concept of minimal graphical notation, where all typical operations on data and machine learning models are possible. Another distinguishing feature of the proposed solution is the explicit separation of data and models, making the proposed notation clearer for perception. In the proposed engine, computational graph traversal does not have a rigorous sequence. The call of the sequence of calculations depends on the specific model that the user currently needs.

Type of submission: Full/Regular Research Paper

Symposium: CSCI-ISED

Keywords—visual programming, workflows, machine learning

dataflow programming,

The VP approach helps to decrease the barrier to entry in machine learning (ML) as a paradigm and ML tools. This approach gives a workflow allowing to manipulate a graph, which core does all calculations and shows the results. To apply ML models, a typical user should know a programing language such as python or R. Excel also contains a limited list of ML models and functions. In the related work part, the DP instruments provide a similar way to workflow control (Fig 2). Each model or process usually uses a special node type. The node inputs and outputs relate to the help of a single edge type.

I. Introduction Dataflow programming [1] (DP) implies that a program is created using a graph with the help of visual programming (VP) [2]. This paradigm has been developing since the 1960s after Jack Dennis had suggested it Modern DP solutions have been developing since 1996, offering more than thirty well-known services by now. Figure 1 shows the DP software creation distribution by years. The distribution is built for 23 tools using foundation date information. It was taken only the instruments with the publicly known foundation date. Analyzing the graph, we can conclude that the DP software has become popular and began to expand in the 90s. Until 2008 the number of created instruments was constant and did not exceed one solution per year. Starting from 2008 the increasing trend can be observed despite zero years with the maximum in 2017.

Fig. 1. DP software creation distribution

Fig. 2. The KNIME workflow example.

Analyzing the most popular existing solutions, the complex structure was highlighted. These VP tools use the separate node type for each action such as data reading and manipulating, visualize instruments, models and evaluate blocks. Some VP tools also separate a model into fitting and predicting nodes. Such division seems redundant. For example, both data preparing and model nodes get the input data, manipulate this data, and translate it to the next node.

Our work idea is to simplify this complex structure and decrease the number of type node to two types: the data nodes and the model nodes. The data node reads or loads data from different source into the WF. The model node provides all set of instruments for manipulation with loaded data. The solution proposed in this paper aims for helping people to investigate the machine learning instruments. It provides with the help of using a workflow with only 2 node types for creation projects avoiding hard details of each model.

II. RELATED WORK

Dataflow programming has recently become popular and many solutions were created: Orange, RapidMiner, KNIME, IBM SPSSModelere, CMS Pipelines. KNIME and Orange are opensource projects, while other are only proprietary commercial ones. The most famous and well-known workflow is Azure Machine Learning [3]. The last huge Azure ML update

978-1-7281-7624-6/20/S31.00 ©2020 IEEE DOI 10.1109/CSCI51800.2020.00182

981

was in 2016 which allowed building ML algorithms. The main problems the system features are the import and export work and scalability.

IT Central Station presented a full comparison of 34 workflow software programs [4]. This service collected the opinions of business professionals on these services and generated a detailed report for each tool including their pros and cons. Another evaluation is a numerical and has tool rating which is presented by Gartner webservice [5]. P. Krensky at. al in [6] demonstrates visual estimation of these instruments with the help of graph. The abscissa shows completeness of vision. The ordinate demonstrates the tool ability to compute. Considering these ratings, KNIME is taking the leading positions. In addition, this software is an opensource product and is often referred to as a model in comparing papers. For example, Wendy A. Warr in [7] compares Pipeline Pilot and KNIME workflows. Pipeline Pilot is a desktop software providing the work with workflows in service-oriented architectures, such as Chemistry [8], Biology and even Imaging. Another comparison of KNIME with KEEL and Weka software is presented in [9], where evaluating tables for each instrument are demonstrated.

Amrita Naik and Lilavati Samant present numerical comparation of WEKA, Rapid miner, Tanagra, Orange and Knime. They use classification algorithms such as Decision Tree, Naiive Bayes and KNN to evaluate software quality [10]. KNIME and WEKA demonstrated the best results.

III. REALIZATION The description of the SMILE (Simple Machine LEarning) Platform is split into three sections. The first section introduces the creation of graph editor tool for graph manipulation. The second one presents platform architecture. The last section describes the ML module architecture.

A. Graph editor

The developed exclusive Graph Editor provides data processing interactivity (fig. 3a). The library supports creation, visualization, stylization, edition, saving and loading of a graph; node or edge properties (fig. 3b).

b)

Hierarchical inheritance of element properties is implemented (fig. 4). For example, to create a red node one can inherit it from a red element style. Weak dynamic cohesion supplies optimal tradeoff between the reliability and complexity in dynamic or reactive graph modification scenarios. Reactivity is achieved with event handlers and a callback system, high level API and powerful custom properties.

Fig. 4. Inheritance properties tree.

Graph Editor provides cross platform interactive features. It does not require other libraries or installations, and supports plug and play local or remote usage.

B. Platform architecture

The DP solutions were discussed in the related work section highlighting KNIME as one of the leaders, although it has some limitations.

Thus, the main tasks are:

• Simplicity - the graph must be simple and contain only few types of nodes or edges.

• Flexibility - the tasks must be quite similar

• Scalability - an ability of the architecture to tailor or improve functions for users, or add custom function

The application was developed as a web-service. The full architecture is presented at Figure 5. The main element of the system is the kernel. The kernel allows building the programs using visual programming and their performance. It has the input data, which can be any file for now. For processing or modelling, the kernel supports both basic functions and user models (plugins). The platform out is visual or text information. Also, a user can download the results to a local machine.

Fig 3. (a) Workbench with graph; (b) Node properties editor.

The Graph Editor architecture based on layer model. Each layer expands the incapsulated low level features and provides high level API. Graph Editor consists of an engine and visualization layers. The first layer ensures node and edge canvas rendering, animation, and physics, while the second one implements interactivity, user interface, graph and element properties structuring and interaction. The library is cross platform since it uses a browser for the ground layer and is written in web stack.

Fig. 5. Platform architecture diagram.

982

The application was developed as a web-service. The application base level uses Django framework [11]. It provides flexible work with users and admin panel, which makes the control of entities easier. Apart from users, two main entities were created: module and task. The module is a global entity that allows task manipulation. The task can be tuned with the help of graph skeleton (node/edge styles, node/edge properties and node/edge types) and workflow pages. The graph structure was described in Section ЗА. Each task contains a graph where a user can build and run their algorithm. The uploaded data may be used in nodes. The detailed description is presented in Section 3C.

The main idea is that the graph is a free entity, and a user can tune it at its discretion. For tuning, a user needs to create graph styles on the module edit page. The properties and types should be of similar forms.

The second required element is the pages for graph analysis. The minimal requirements for each page are HTML template and Python script, which processes a graph. The script must contain a "run" function. The first argument is a graph collected in a source form as a list of nodes and edges. The second argument is "kwards, which keeps the user's information and the project and can be extended. The simplest HTML page is a button with a correct set of attributes.

It is essential to separate the module and project entities. The first one allows creating a task, for example, balance modules, schedule generators or linear programming. The project solves specific tasks using task logic.

C. ML module architecture

This section presents the Machine Learning module. To realize this module, it was necessary to extend the base settings and expand graph abilities. Figure 6 shows an extended class diagram for ML module. For node types, there were created two property classes: Data property and Model property. They produce data and models loading, validation, applying, and extra addition methods. The Model property contains Model instance, which covers a particular method, for instance, any scikit-learn or statsmodels functions. Also, a Model instance contains plot methods for rendering output models data.

GW

srtiiri1 gj

rw™ гтш

ЧМО ОШПшт МАЯ <i ««.«WW

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.