Летние стажировки Центра «Компьютерные технологии»

Лаборатория «Эволюционные вычисления»

Разработка генератора звука для импровизации, основанной на эволюционных алгоритмах

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

Целью практики является разработка пилотной версии одного или нескольких генераторов звуковой волны, каждый из которых конфигурируется набором параметров. При этом структура генератора должна быть такой, чтобы, в соответствии с принципами работы эволюционных алгоритмов, малое изменение вектора параметров порождало бы, как правило, (субъективно) малое изменение звучания. Также предполагается провести испытание различных интерфейсов между человеком-музыкантом и эволюционным алгоритмом, оптимизирующим векторы параметров согласно желаниям музыканта.

Ссылки:

  1. Драфт документации проекта Impro-Evolution: https://github.com/abuzdalova/impro-evolution/blob/documentation/global-specification/doc/global-specification.md

Требования:

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

Контакты: Максим Буздалов (mbuzdalov@gmail.com), Арина Буздалова (abuzdalova@gmail.com)

Генерация простых стратегий для настольных игр на основе конечных автоматов с помощью эволюционных подходов

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

Похожий подход применен в [1].

Ссылки:

  1. F. de Mesentier Silva, J. Togelius, F. Lantz and A. Nealen, "Generating Novice Heuristics for Post-Flop Poker," 2018 IEEE Conference on Computational Intelligence and Games (CIG), 2018, pp. 1-8, doi: 10.1109/CIG.2018.8490415.

Требования:

  • Обязателен опыт программирования на объектно-ориентированном языке.
  • Полезно знание теории автоматов и методов оптимизации.
  • Приветствуется интерес к настольным играм.

Контакты: Владимир Миронович (ninerlp@gmail.com)

Разработка агента для игры Legends of Code and Magic на основе эволюционного подхода

Предлагается изучить современные методы применения эволюционных алгоритмов для разработки AI для игр и применить их для создания агента для игры Legends of Code and Magic (Strategy Card Game AI Competition - COG 2021) или для других бенчмарков (примеры).

Источники: Evolutionary algorithm outperforms deep-learning machines at video games.

Предполагается использование подходов, аналогичных представленным в [1].

Ссылки:

  1. Lucas et al, “Efficient Evolutionary Methods for Game Agent Optimisation: Model-Based is Best”, 2019.

Требования:

  • Обязателен опыт программирования на объектно-ориентированном языке.
  • Полезно знание методов оптимизации и искусственного интеллекта.
  • Приветствуется интерес к AI и играм.

Контакты: Владимир Миронович (ninerlp@gmail.com)

Разработка новых теорем сноса (дрифт-теорем)

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

Подробное описание:

Одной из простейших дрифт теорем является аддитивная дрифт-теорема. Упрощенно говоря, она звучит так. Пусть есть процесс {Xt}t ℕ, такой, что он начинает с X0 = a и никогда не превышает какой-то b > a. Мы хотим найти время T, когда впервые XT=b. Если для любого s < b выполняется E[Xt + 1- Xt | Xt = s] ,то E[T] b - a.

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

Первая удачная попытка формулировки аддитивной дрифт-теоремы, которая бы давала некоторые оценки на концентрацию T, была сделана в [1]. Однако она касается только процессов с ограничением изменения (как в неравенстве Хефдинга), либо суб-Гауссовых процессов, а доказать, что процесс суб-Гауссовый не всегда просто.

Схожий результат был получен в [2] (Теорема 2.9). Однако он сформулирован только для целочисленного процесса (то есть все Xt ℤ), а также он дает только верхние оценки, хотя аналогичным способом можно получить и нижние оценки.

Первой задачей данного проекта является устранение недостатков последнего результата, а именно расширение его на вещественно-значный процесс {Xt}t ℕ, а также получение аналогичной теоремы для нижних хвостовых оценок.

Для некоторых случайных процессов может существовать еще один процесс (случайный или детерминированный), от которого рассматриваемый процесс зависит. Например, у нас есть {Xt}t ℕ и {Yt}t ℕ. Причем Yt может рассматриваться как некоторая плата, в зависимости от которой процесс Xt может вести себя по-разному. Допустим, мы рассматриваем процесс Xt, который стартует с Xt = a и хотим, чтобы он достиг какого-то значения b > a. Мы можем выбирать Yt, причем мы знаем, что чем больше мы заплатим, тем больше будет ожидаемый прогресс Xt в сторону b. Однако в данной формулировке нас интересует не время T, когда мы впервые добьемся XT b, а суммарная плата до этого времени T, то есть S = t = 1TYt.

Вторая задача данного проекта – сформулировать и доказать дрифт-теорему, позволяющую оценить S, когда нам известна функция f(y, s) = E[Xt + 1 - Xt | Yt = y, Xt = s]. Данное задание является довольно творческим, так как оставляет вам свободу по накладыванию ограничений на f(y) и на стратегию выбора Yt. Примеры подобной теоремы (но для весьма специфического случая) можно также найти в [2], в разделах 6 и 4 (лучше смотреть эти разделы именно в этом порядке). Там были даны нужные оценки в случае, когда f(y, s) –линейная функция от y и константа по s, а стратегия выбора Yt –любая.

Ссылки:

  1. Timo Kötzing. Concentration of First Hitting Times Under Additive Drift. Algorithmica 75(3): 490-506 (2016)
  2. Denis Antipov, Benjamin Doerr, Vitalii Karavaev. A tight runtime analysis for the (1 + (λ, λ)) GA on LeadingOnes. FOGA 2019: 169-182

Требования:

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

Контакты: Денис Антипов (antipovden@yandex.ru)

Лаборатория «Дискретная оптимизация и формальные методы»

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

Одним из методов решения сложных SAT-формул (в особенности, невыполнимых формул) является поиск декомпозиционных множеств. Декомпозиционное множество B – это просто некоторое подмножество множества переменных X булевой формулы. Если декомпозиционное множество выбрано неким удачным способом, то решение всех 2|B| формул, порождаемых подстановкой всех возможных значений переменных, входящих в множество B, может потребовать меньше времени, чем решение исходной формулы. В случае использования для этого распределенных вычислений, можно добиться существенного (в некоторых случаях, сверхлинейного) ускорения. Существуют различные эвристические методы построения декомпозиционных множеств, использующие в своей основе эволюционные алгоритмы, локальный поиск, метод имитации отжига, и другие эвристики. Например, многие методы реализованы в программном инструменте EvoGuess (https://github.com/ctlab/EvoGuess).

Заметим, что для заданной в КНФ SAT формулы можно с легкостью получить эквивалентную ей задачу целочисленного линейного программирования (ЦЛП), для решения которой можно применять соответствующие ЦЛП-решатели, например, Gurobi. Целью работы является перенос результатов по декомпозициям из области SAT в область ЦЛП.

Что следует сделать

  • Написать конвертер КНФ в ЦЛП.
  • Провести эксперименты по решению преобразованных КНФ из выбранного множества с различными ЦЛП-решателями (Gurobi, CPLEX, ...).
  • Добавить поддержку ЦЛП-задач и решателей в EvoGuess.
  • Провести эксперименты с ЦЛП-EvoGuess.

Контакты: Даниил Чивилихин (chivdan@itmo.ru)

Разработка задач по SAT для Codeforces на Polygon

Лаборатория готовит новый образовательный курс по SAT-технологиям. Для курса разрабатываются практические задачи по применению SAT-решателей. В данный момент подготовлено несколько задач: раскраска графа, расстановка ферзей, проверка эквивалентности конечных автоматов, синтез минимальной булевой формулы. Требуется пополнить пул задач.

Что следует сделать

  • Придумать постановки задач
  • Для каждой задачи
  • Написать условие.Разработать и записать сведение к SAT.Реализовать решение на Python с использованием PySAT.Создать тесты.Протестировать все в Polygon.

Контакты: Даниил Чивилихин (chivdan@itmo.ru)

Разработка и программирование распределенной киберфизической системы на базе роботизированных рук под управлением Arduino

В лаборатории реализуется проект по синтезу распределенных автоматных алгоритмов управления. В рамках проекта создается экспериментальный стенд на базе роботизированной руки (есть три таких руки). Требуется спроектировать относительно простую, но интересную систему с распределенным управлением.

Что следует сделать

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

Контакты: Даниил Чивилихин (chivdan@itmo.ru)

Разработка симуляционной модели распределенной киберфизической системы в среде FactoryIO

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

Что следует сделать

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

Контакты: Даниил Чивилихин (chivdan@itmo.ru)

Лаборатория биоинформатики

Сравнение методов MetaFast и Commet для извлечения признаков из данных метагеномного секвенирования

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

Воспалительные заболевания кишечника (ВЗК) поражают до 0.3% людей, поэтому необходимо развитие методов для диагностирования и понимания причин развития заболеваний. Перспективным методом может быть анализ данных, полученных из микробиоты кишечника, что подтвердило соревнование по метагеномной диагностике ВЗК — MEDIC.

Целью работы является сравнение методов MetaFast и Commet выделения признаков из данных метагеномного секвенирования для понимания их преимуществ и недостатков для задачи классификации ВЗК.

Задачи:

  • Разобраться с предметной областью (Введение в NGS. Часть 1 – Stepik)
  • Выделить метагеномные признаки с помощью MetaFast
  • Выделить метагеномные признаки с помощью Commet
  • Применить методы машинного обучения для классификации на основе полученных признаков
  • Попробовать произвести биологическую интерпретацию признаков

Ожидаемые результаты:

Сравнение методов MetaFast и Commet. Получение новых признаков из метагеномных данных, полезных при классификации ВЗК.

Требования:

  • Интерес к естественным наукам и желание разрабатывать алгоритмы для решения биоинформатических задач
  • Умение читать код на C++ и Java на и писать скрипты в командной строке

Контакты: Владимир Ульянцев (ulyantsev@gmail.com),

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

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

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

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

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

Задачи:

  1. Разобраться с предметной областью (Лекция Вывод демографических историй популяций из геномных данных).
  2. Провести оптимизацию гиперпараметров алгоритмов локального поиска с помощью программного обеспечения SMAC.
  3. Построить графики сходимости алгоритмов локального поиска для различных датасетов.
  4. Сравнить методы и составить рекомендации по их использованию на основании графиков сходимости.

Ожидаемые результаты: Сравнение сходимости методов локального поиска, рекомендации по их использованию.

Требования:

  • Интерес к алгоритмам оптимизаций.

Контакты: Екатерина Носкова (ekaterina.e.noskova@gmail.com)

Внедрение fastsimcoal2 в GADMA

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

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

Разработанное нами программное обеспечение GADMA представляет собой новый метод для эффективного вывода демографической истории популяций. Оно предоставляет набор различных методов для вычисления правдоподобия и несколько оптимизаций для поиска наилучших значений параметров демографических историй. На данный момент GADMA предлагает выбор только из двух методов для вычисления правдоподобия: dadi и moments.

Целью работы является внедрение fastsimcoal2 как дополнительный метод вычисления правдоподобия в GADMA.

Задачи:

  1. Разобраться с предметной областью (Лекция Вывод демографических историй популяций из геномных данных).
  2. Разобраться с методов и реализацией fastsimcoal2.
  3. Разобраться с реализацией GADMA.
  4. Внедрить fastsimcoal2 как новый движок в GADMA.
  5. Провести экспериментальное исследование эффективности GADMA для вывода демографических историй с использованием fastsimcoal2 на стимулированных или реальных данных.

Ожидаемые результаты: Возможность использования fastsimcoal2 для вычисления правдоподобия в GADMA

Требования:

  • Интерес к методам вывода демографических историй популяций
  • Умение читать и писать код на Python
  • Желание поучаствовать с активно развивающемся проекте (GADMA)

Контакты: Екатерина Носкова (ekaterina.e.noskova@gmail.com)

Лаборатория «Машинное обучение»

Разработка библиотеки автоматического выбора и настройки алгоритмов кластеризации и соответствующих алгоритмов выбора признаков

В лаборатории реализуется проект по разработке системы (репозиторий скоро обновится) автоматического выбора и настройки алгоритмов кластеризации для заранее заданной меры на Apache Spark. В рамках проекта требуется улучшить существующую систему, добавить реализации различных алгоритмов настройки гиперпараметров (Optuna, H2O и другие). Также требуется реализовать поддержку алгоритмов выбора признаков для задач кластеризации и встроить их в существующий pipeline. Помимо этого опционально требуется реализовать эволюционные алгоритмы кластеризации с настройкой мутации (подробности в тексте диссертационной работы по ссылке). В рамках стажировки будет достаточно выполнения одного из требуемых пунктов, описанных выше.

Задачи:

  • Разобраться с предметной областью.
  • Разобраться с текущей реализацие системы на Apache Spark.
  • Разобраться с существующими реализациями алгоритмов выбора признаков для задачи кластеризации и методами их подбора и настройки.
  • Внедрить новые алгоритмы оптимизации (указанные выше) в текущую систему.
  • Реализовать алгоритмы выбора признаков для задач кластеризации в рамках системы.
  • Реализовать эволюционные алгоритмы кластеризации в рамках существующей системы.
  • Провести экспериментальное исследование реализаций на реальных данных из OpenML.

Требования:

  • Интерес к алгоритмам оптимизаций и автоматическому машинному обучению.
  • Уверенное владение Python.
  • Владение Apache Spark на среднем уровне.

Ссылки:

  • V. Shalamov, V. Efimova, S. Muravyov and A. Filhenkov. 2018. Reinforcement-based Method for Simultaneous Clustering Algorithm Selection and its Hyperparameters Optimization. Procedia Computer Science, 136, 144-153.

Контакты: Сергей Муравьёв (mursmail@gmail.com)

Разработка задач по анализу данных на Python

Лаборатория готовит новый образовательный курс по анализу данных и основам машинного обучения. Для курса разрабатываются практические задачи на Python в Jupyter-ноутбуках. В данный момент подготовлена только задача по анализу датасета Titanic. Требуется пополнить пул задач.

Что следует сделать

  • Придумать постановки задач
  • Для каждой задачи
  • Написать условие.Оформить условие с поясняющими материалами в Jupyter-ноутбуке.Реализовать решение на Python.

Контакты: Сергей Муравьёв (mursmail@gmail.com), Алексей Забашта (zabashta.alexey@gmail.com)

Реалистичное вписывание в видеопоток объектов для размещения рекламных баннеров

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

Цель работы: сгенерировать видео, содержащее рекламу заданных брендов.

Create carousel Add a caption Create carousel Add a caption Create carousel Add a caption Create carousel Add a caption

Что следует сделать:

  • Лучше вписывать объекты из коллекции с образцами => нужно собрать датасет с рекламными щитами и другими объектами для размещения рекламы с разных ракурсов и при разном освещении.
  • Уже есть несколько 3D-моделей мест для размещения рекламы.
  • Для наивного варианта использовать идею статьи https://arxiv.org/pdf/1706.01021.pdf, только не люди, а другие объекты.
  • Для продвинутого варианта нужно определять место, куда вписать такой объект. Находить плоскости с помощью PlaneNet/GroundNet и размер с помощью других объектов в кадре.

Требования:

  • Алгоритм должен быть реализован на Python + PyTorch.
  • Должно обрабатываться видео качеством не менее 1280х720 пикселей.
  • Готовность работать регулярно и предоставлять результаты каждую неделю.
  • Готовность пробовать новые методы решения, а не только описанный выше.

Ссылки:

  1. Размещение 3D-объекта в видео (код) https://github.com/omart075/Markerless-AR
  2. Статья по теме https://arxiv.org/pdf/1706.01021.pdf
  3. Преобразование текста https://arxiv.org/pdf/1908.03047.pdf
  4. Еще статья про замену объектов https://openaccess.thecvf.com/content_CVPR_2019/papers/Chen_Toward_Realistic_Image_Compositing_With_Adversarial_Learning_CVPR_2019_paper.pdf
  5. Замена области https://arxiv.org/pdf/1803.08435.pdf
  6. Статья про PlaneNet и код к ней.
  7. Статья про GroundNet.

Контакты: Валерия Ефимова (valeryefimova@gmail.com, телеграм @evaleria)

Фотореалистичный оффлайн перенос стиля

Рисование – популярная форма искусства. Раньше перерисовка изображения в конкретном стиля требовала значительных усилий профессиональных художников и много времени. Сейчас художественные изображения могут быть созданы с помощью компьютера. Существует множество исследований и методов, изучающих, как автоматически превращать изображения в синтетические произведения искусства. Среди этих исследований множество работ по нейронному переносу стиля. Gatys et al. впервые предложил использовать сверточные нейронные сети для этой задачи, этим он привлек внимание к этой задаче. В академических кругах было проведено множество последующих исследований для улучшения или расширения этого алгоритма NST. С помощью оффлайновой вариации NST можно за секунду получить из произвольного изображения новое в заранее определенном стиле. С помощью же натуралистичного переноса стиля можно не беспокоиться о нарушении границ объектов, будет перенесена только общая цветовая гамма.

Create carousel Add a caption

Цель работы: предложить оффлайн алгоритм фотореалистичного переноса стиля.

Что следует сделать:

Требования:

  • Сервис должен быть реализован на Python + PyTorch.
  • Обработка изображения в онлайне должна занимать не более 1 минуты для изображения 600х900 пикселей.
  • Готовность работать регулярно и предоставлять результаты каждую неделю.

Ссылки:

  1. О NST в целом.
  2. Оффлайн вариант NST https://arxiv.org/pdf/1603.08155.pdf%7C
  3. Фотореалистичный офлайн вариант NST с одной моделью на все изображения, но в онлайне работает неприемлемо долго. https://papers.nips.cc/paper/6642-universal-style-transfer-via-feature-transforms.pdf
  4. Онлайн вариант фоторелистичного NST, планируется дорабатывать его.(изучить код) (тут взять картинки для обучения сети https://github.com/luanfujun/deep-photo-styletransfer )
  5. Реализация оффлайн NST, описанная в первой статье https://github.com/pytorch/examples/tree/master/fast_neural_style

Контакты: Валерия Ефимова (valeryefimova@gmail.com, телеграм @evaleria)

Генерация рекламного объявления по заголовку

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

До -32% на мягкие кровати Create carousel Add a caption Кровать за рубль при покупке матраса. 1 июня - 15 июля Create carousel Add a caption

Что следует сделать:

  • Собрать набор рекламных объявлений и выявить шаблоны расположения, какой текст пишут на объявлении и как.
  • Наивный вариант: расположить текст по шаблону.
  • С помощью BERT находить в полном тексте рекламного объявления слова, которые стоит разместить на баннере.
  • Предсказывать наиболее удачный шрифт и цвет текста (можно алгоритмически, а можно и сетью).
  • Предсказывать расположение текста (можно с помощью обычной feedforward сети).
  • (Извлечение ключевых слов уже реализовано).

Требования:

  • Сервис должен быть реализован на Python + PyTorch.
  • Генерация одного изображения должна занимать менее 1 секунды.
  • Готовность работать регулярно и предоставлять результаты каждую неделю.

Ссылки:

  1. Реализация BERT на PyTorch.
  2. Шрифты из Google Fonts.

Контакты: Валерия Ефимова (valeryefimova@gmail.com, телеграм @evaleria)

Генерация описания бизнеса на английском языке

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

Что требуется сделать:

  • Собрать набор данных, содержащий информацию о категории бизнеса, описание бизнеса, о компании.
  • Дообучить модель GPT-2 по категории и метке (описание/о компании) выдавать текст указанного размера.

Требования:

  • Сервис должен быть реализован на Python + PyTorch.
  • Генерация одного текста должна занимать менее 1 минуты.
  • Готовность работать регулярно и предоставлять результаты каждую неделю.

Ссылки:

  1. Код для GPT-2 https://github.com/huggingface/transformers
  2. Статьи про GPT-3 и GPT-2.

Контакты: Валерия Ефимова (valeryefimova@gmail.com, телеграм @evaleria)

Наличие человека в тексте на русском языке

Читателю проще воспринимать текст, который сопровождается иллюстрацией. Автоматическое создание изображений на основе текста – сложная задача компьютерного зрения. В последнее время (2017-2020) появилось много видов порождающих состязательных сетей (Generative Adversarial Networks, GANs), решающих ее, но эти модели генерируют нереалистичные изображения низкого качества. Данную задачу можно разбить на несколько подзадач, в числе которых будет определение, упоминается ли человек в тексте. Человек может быть явно упомянут в тексте (мужчина/женщина, парень/девушка), а может называться именем (Маша сидела на окне), но в то же время имя может принадлежать животному, например, кошке. Это же верно и для местоимений (он/она). В то же время в тексте может описываться человек, но не быть ни имени, ни местоимения (Светлые волосы, зеленые глаза, а в руке гвоздика). В общем, нюансов много, вам предлагается решить эту задачу с помощью глубокого обучения, а именно трансформеров.

Требования:

  • Сервис должен быть реализован на Python + PyTorch.
  • Определение, поминается ли человек в тексте, должно занимать менее 30 секунд.
  • Готовность работать регулярно и предоставлять результаты каждую неделю.

Ссылки:

  1. Реализация BERT на PyTorch.
  2. Извлечение именованных сущностей библиотекой SpaCy.
  3. Библиотека NLP для русского языка natasha.

Контакты: Валерия Ефимова (valeryefimova@gmail.com, телеграм @evaleria)

Improving Energy-based Models with Adversarial Training

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

Большим преимуществом EBM является совмещение способности классификации и моделирования распределения входных данных! Недавно было показано что любой нейронный классификатор может быть интерпретирован как энергетическая модель, и при специальной тренировке способен генерировать изображения на уровне SOTA генеративных моделей[1]. В тоже время было показано что нейронные сети устойчивые к вредоносным атакам(adversarial robust) также способны осуществлять генерацию изображений[2]

Ввиду схожести процесса inference для adversarial robust и energy-based моделей, предлагается произвести обучение ebm модели с помощью adversarial training на ряде бенчмарков. Подобное исследование обладает высокой актуальностью так как открывает новые связи между моделями и парадигмами машинного обучения.

Что требуется сделать:

  • Обучить adversarial robust EBM на множестве задач и датасетов

Требования:

  • Готовность тратить много времени на эксперименты
  • Готовность представлять результаты каждую неделю.

Ссылки:

  1. YOUR CLASSIFIER IS SECRETLY AN ENERGY BASED MODEL AND YOU SHOULD TREAT IT LIKE ONE

2. Image Synthesis with a Single (Robust) Classifier

Контакты: Арип Асадулаев (aripasadulaev@itmo.ru, телеграм @postmachines)

Разработка задач по генерации данных методами GAN

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

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

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

Что следует сделать

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

Контакты: Арип Асадулаев (aripasadulaev@itmo.ru, телеграм @postmachines)

Прогнозирование поведения клиентов на базе их поведения на маркетплейсе OZON

На основании данных OZON (события с их сайта и приложения) о поведении пользователей (открытие различных страниц, добавление в корзину, покупка и др.) можно видеть, сколько и какие товары покупает увидевший (post-view конверсия) рекламу или кликнувший (post-click конверсия) по ней.

Задача: Разработать ML модель, учитывающую post-click поведение пользователей на OZON на имеющихся событиях.

На основании потока событий с <такими-то типами событий на OZON> имеющими <такие-то поля> от пользователей с <такими-то характеристиками>, а также событиями показа баннера и клика по нему, надо предсказывать с точностью не менее XX, что показ конкретного баннера определённому пользователю должен приводить к целевому событию (покупка) в течении след. HH часов

Цель работы: Обеспечить ДРР <= X% в кампаниях на OZON за счёт использования данных OZON о поведении пользователей. X = 50% — минимум эффективности, хороший результат при X = 40%, лучший при X = 10%.

Уточнения

ДРР (доля рекламных расходов) — отношение затрат к выручке сгенерированной рекл. кампанией.

Затраты — рекламный бюджет + затраты на данные (использование данных OZON для таргетирования рекламы — это +Y% к рекламному бюджету).

Набор событий - фиксированный, в будущем планируем расширить список.

Что следует сделать:

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

Требования:

  • Python, PyTorch и т.д..
  • Готовность работать регулярно и предоставлять результаты каждую неделю.

Дополнительно

  • Оплата труда 50+ т.р. в мес. в зависимости от квалификации
  • Продолжительность проекта 1-2 месяца .

Контакты: Сергей Федоров (sergey@statanly.com, телеграм @Statanly)

Сегментация изображений родинок с помощью GAN

Для диагностики меланомы используются специальные визуальные признаки структур родинки, называемые дерматоскопическими признаками. Задача сегментации дерматоскопических признаков признана очень сложной, лучший результат метрики IoU на официальных соревнованиях составил 0.473 и был получен с помощью сложных моделей и ансамблирования [1]. После соревнований вышла работа, где авторы заявляют о достижении IoU > 0.7 [2] с помощью замены стандартной функции потерь на дискриминатор из архитектуры Pix2Pix (GAN).

Что требуется сделать:

  1. Воспроизвести решение из статьи [2] (код решения [3])
  2. Разобраться в нем как следует и составить полное описание
  3. Перенести это решение с Tensorflow на PyTorch
  4. [опционально] Исследовать причины такого хорошего перформанса метода на основе GAN по сравнению с классическими подходами

Требования:

  1. Использовать Python
  2. Не бояться разбирать чужой не слишком сложный код
  3. Быть знакомым с фреймворками Tensofrlow и PyTorch или быть готовым с ними разобраться (ресурс для освоения PyTorch [4])

Ссылки

[1] https://arxiv.org/pdf/1902.03368.pdf

[2] https://arxiv.org/ftp/arxiv/papers/2102/2102.00169.pdf

[3] https://github.com/CristianLazoQuispe/skin-lesion-segmentation-using-pix2pix

[4] https://github.com/jcjohnson/pytorch-examples

Контакты: Татьяна Полевая (tpolevaya@itmo.ru, телеграм @tpolevaya)

Self-supervised learning для классификации родинок

Для диагностики меланомы используются специальные визуальные признаки структур родинки, называемые дерматоскопическими признаками. Задача распознавания дерматоскопических признаков признана очень сложной [1]. Тем не менее существует набор неразмеченных данных, которые можно использовать для предобучения сегментации с использованием self-supervised методов. В данной стажировке предлагается применить различные существующие претекст-задачи на неразмеченных данных к задаче распознавания дерматоскопических признаков.

Что требуется сделать:

  1. Реализовать несколько претекст-задач на PyTorch ([2-5]) и проверить, как полученные на них решения справляются с задачей распознавания дерматоскопических признаков родинок.
  2. Для контроля проверить эти же решения на задаче распознавания меланомы.

Требования:

  1. Использовать Python
  2. Использовать PyTorch (1h tutorial по PyTorch [6])
  3. Не бояться разбирать чужой не слишком сложный код

Ссылки

[1] https://arxiv.org/pdf/1902.03368.pdf

[2] Relative position pretext task: https://arxiv.org/pdf/1505.05192.pdf

[3] Rotation pretext ask https://arxiv.org/abs/1803.07728

[4] JigSaw puzzle pretext task https://arxiv.org/abs/1603.09246v3

[5] Split-brain autoencoder pretext task https://arxiv.org/abs/1611.09842

[6] https://github.com/jcjohnson/pytorch-examples

Контакты: Татьяна Полевая (tpolevaya@itmo.ru, телеграм @tpolevaya)

1376 views·30 shares