Open-source библиотеки от команд ИТМО: оптимизация графовых структур, генеративный дизайн, оптимизация гиперпараметров

Источник: https://github.com/aimclub

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

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

Все эти проекты написаны на Python с использованием стандартного стека технологий для задач обработки данных и графов: numpy, scipy, networkx. Их можно найти на GitHub и даже поучаствовать в дальнейшем развитии.

GOLEM — оптимизация графовых структур

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

Хотя задачи, сводящиеся  к применению графов, относятся к различным сферам, проблема поиска подходящей структуры и ее оптимизации с точки зрения логики выглядит везде одинаково (и, откровенно говоря, проблема это не новая). Для ее решения в ИТМО разработали библиотеку GOLEM (Graph Optimization and Learning by Evolutionary Methods). Она позволяет строить и оптимизировать композитные графовые структуры, в том числе довольно экзотические, например, совмещающие байесовские сети, алгоритмы машинного обучения и дифференциальные уравнения. 

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

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

О примененных в библиотеке алгоритмах можно прочитать по ссылке. 

Ниже показаны пример оптимизации структуры графа (для синтетической задачи) и архитектура библиотеки.

3399040295c7d19480ef2a9659822c34.png27857a214c6c0ddc51524cfb1f14445c.pngАрхитектурная схема GOLEM. Источник: https://aim.club/solutions/golem

Архитектурная схема GOLEM. Источник: https://aim.club/solutions/golem

Библиотека GOLEM — проект исследовательского центра «Сильный искусственный интеллект в промышленности» (ИЦ СИИП) ИТМО, реализуемый командой ученых, разработчиков и студентов-стажеров, в которую входят Григорий Киргизов, Любовь Ямщикова (студент магистратуры факультета цифровых трансформаций), Майя Пинчук (студент бакалавриата факультета информационных технологий и программирования) и к. т. н., руководитель группы научно-технического развития исследовательского центра Николай Никитин.

У библиотеки уже есть первый стабильный релиз, который используется в некоторых проектах ИТМО. GOLEM позволяет сократить время, необходимое на поиск подходящих моделей. В частности, библиотека применяется во фреймворках автоматического машинного обучения FEDOT и структурного обучения байесовских сетей BAMT — проектах той же NSS Lab, которые имеют и коммерческие применения.

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

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

GEFEST — генеративный дизайн физических объектов

В одной из предыдущих статей мы рассказывали о применении генеративного дизайна для сокращения веса цилиндрических лопастей ветрогенератора на эффекте Магнуса. Но в том проекте речь шла об оптимизации готовой структуры — ее нужно было просто улучшить (облегчить). С такими задачами справляются многие инструменты, например, средства для генеративного дизайна от Autodesk. А вот для решения задачи с нуля, то есть оптимизации структуры и расположения нового объекта, в ИТМО разрабатывают библиотеку GEFEST (Generative Evolution For Encoded STructures). Ее задача — проработка физических объектов «с чистого листа» под конкретные внешние условия, а именно — сокращение затрат времени на начальные этапы проектирования, а заодно расширение пространства поиска возможных решений.

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

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

Реализованный в библиотеке процесс генеративного дизайна. Источник: https://aim.club/solutions/gefest

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

Архитектурная реализация GEFEST

Архитектурная реализация GEFEST

Разработкой библиотеки занимается Николай Никитин, а также студенты магистратуры факультета цифровых трансформаций и одновременно сотрудники NSS Lab ИТМО —  Никита Стародубцев и Денис Сидоренко.

Научная группа выпустила статью, где описаны алгоритмы GEFEST и продемонстрирована их эффективность для ряда прикладных задач в Q1-журнале Engineering Applications of Artificial Intelligence (Starodubcev N.O. et al. Generative design of physical objects using modular framework //Engineering Applications of Artificial Intelligence. — 2023. — Т. 119. — С. 105715.).

Hidden text

Про частные применения фреймворка можно почитать:

  • Grigorev G.V. et al. Single Red Blood Cell Hydrodynamic Traps via the Generative Design //Micromachines. — 2022. — Т. 13. — №. 3. — С. 367. Статья посвящена оптимизации «искусственных селезенок». Опубликована совместно с представителями Беркли (University of California in Berkeley) и ряда других университетов. 

  • Starodubcev N. O., Nikitin N. O., Kalyuzhnaya A.V. Surrogate-Assisted Evolutionary Generative Design Of Breakwaters Using Deep Convolutional Networks //2022 IEEE Congress on Evolutionary Computation (CEC). — IEEE, 2022. — С. 1–8.и статья описывает решение задачи суррогатной оптимизации волнозащитных сооружений.

Репозиторий проекта. Текущую версию библиотеки уже можно использовать при решении конкретных инженерных задач. Но активное развитие продолжается: API для конечного пользователя и документация еще будут дорабатываться. Еще одно направление работы — повышение алгоритмической эффективности для конкретных прикладных задач.

Проект развивается за счет гранта РНФ для молодых ученых, полученного в 2022 году. Группа открыта для научного взаимодействия и вклада в библиотеку со стороны сообщества.

iOpt — контролируемый подбор гиперпараметров для МL

Целевые метрики качества алгоритмов машинного обучения могут существенно варьироваться в зависимости от начальных параметров. Так что перед исследователями стоит задача выбора оптимального набора этих параметров, и она актуальна в любой предметной области, где в принципе применяется машинное обучение — и в математике, когда нужно адаптировать модели под имеющиеся данные, и в рамках исследований в области ИИ, когда нужно добиться максимально возможного качества используемых методов. Для подбора оптимальных параметров в ИЦ СИИП разработали фреймворк iOpt, который помогает выбирать их значения в рамках широкого класса процессов и алгоритмов, например для методов машинного обучения или эвристической оптимизации.

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

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

Визуализация решения задачи оптимизации. Пример целевой функции подбора параметров в рамках решения одной из задач. Точки соответствуют выполненным поисковым испытаниям.  Источник:https://aim.club/solutions/iopt

Визуализация решения задачи оптимизации. Пример целевой функции подбора параметров в рамках решения одной из задач. Точки соответствуют выполненным поисковым испытаниям. Источник: https://aim.club/solutions/iopt

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

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

Основная разработка iOpt ведется сотрудниками, совмещающими работу в ИТМО и ННГУ им. Н.И. Лобачевского. В составе команды —  Александр Сысоев, Евгений Козинов, Илья Лебедев, Антон Штанюк, Марина Усова, Денис Карчков, Дарья Черных, Янина Силенко, Денис Родионов и Виктор Москаленко. Также в работе участвуют и студенты ИТМО — например, Любовь Ямщикова, решающая задачу интеграции iOpt и фреймворка FEDOT. 

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

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

© Habrahabr.ru