«Машинное обучение и анализ данных»: дипломы 2022 года
В этом году магистерскую программу «Машинное обучение и анализ данных» окончили 14 студентов. Две выпускницы — Дарья Дятлова и Дарья Евсикова — рассказали о своих дипломных работах: как их ВКР связаны со стажировками после первого курса, почему они выбрали именно эти проекты и какие результаты получили.
Дарья Дятлова, окончила бакалавриат по направлению «Управление персоналом» в СФУ
Я поступила на программу «Машинное обучение и анализ данных» со второго раза, набрав минимальный проходной балл за экзамен по математике и программированию и максимальный балл за собеседование.
К началу второго курса, когда нас попросили определиться с темами дипломов, я в целом представляла, чем можно заниматься в мире машинного обучения, и решила, что хочу работать с речью и звуком. Моим научным руководителем стала Надя Зуева, разработчик из ВКонтакте, с которой я познакомилась на стажировке после первого курса. Надя работала над расшифровкой аудиосообщений в приложении ВКонтакте и решала смежные задачи в области звука в ML. Мне хотелось поработать над задачей максимально близкой к продуктовой, которая была бы востребована и могла бы быть адаптирована под реальные продукты. Я предложила Наде несколько тем, и в итоге мы остановились на подавлении шумов в аудиосообщениях с речью на русском языке.
В ходе дипломной работы я собрала датасет с чистой речью на русском языке и параллельный датасет из аудио, замешанных с разными категориями шума: разговоры в офисе, машины на улице, пение птиц, шаги людей в парке и т.д. Затем я дообучила несколько моделей для подавления шумов и ту, что показала наилучшие результаты (денойзер Demucs, статья 2020 года от лаборатории Facebook Research*) сконвертировала под запуск на мобильном устройстве с помощью CoreML — библиотеки для интеграции моделей глубокого обучения в iOS-приложения.
Мне хотелось создать решение, максимально приближенное к реальному продукту. Но так как на момент написания диплома я нигде не работала, мы со знакомым iOS-разработчиком написали своё мобильное приложение. Я скачала несколько аудиосообщений друзей с произвольным шумом на заднем фоне из Telegram и протестировала на симуляторе мобильного устройства, как модель подавляет шумы в этих сообщениях. В результате предметом моей защиты стало демо iOS-приложения со встроенной моделью глубокого обучения для подавления шумов в аудио с речью на русском языке.
Было очень здорово увидеть, что после двух лет обучения (в моем случае практически с нуля), ты в силах сформулировать задачу в терминах машинного обучения, определить пайплайн для ее решения и воплотить в жизнь идею, которая может улучшить функционал многих мобильных мессенджеров.
Сейчас я прохожу стажировку в команде прикладных исследований ВКонтакте. Моя задача на лето – научиться синтезировать речь из текста с заданной эмоций (Emotional TTS). В ближайшем будущем я планирую продолжить развиваться в области синтеза речи и глубокого обучения. Это безумно интересное направление, в котором можно предложить множество идей для исследований и экспериментов.
Дарья Евсикова, окончила бакалавриат по направлению «Математические методы в экономике и статистический анализ» в СПбГЭУ
На летнюю стажировку после первого курса магистратуры «Машинное обучение и анализ данных» я попала в стартап Myna Labs. Стартап ориентирован на Deep Learning research в области голосовых технологий, компьютерного зрения и NLP для создания развлекательных приложений. В тот момент ребята выпустили мобильное приложение, которое заменяло твой голос на голос знаменитости. Но в будущем они хотели менять не только голос, но и лицо, то есть добавить визуальную составляющую.
Меня взяли в команду компьютерного зрения, мы работали над моделью для замены лиц. Такую задачу можно решать в разных постановках: модель может уметь заменять лицо только на одного персонажа, на определенный набор персонажей или же на любое желаемое лицо. В зависимости от задачи будет меняться и архитектура модели, последняя – самая сложная.
На летней стажировке я пыталась воспроизвести результаты статьи SimSwap, где авторы решают задачу замены лица на любое другое лицо. Мне удалось повторить результаты и даже немного их улучшить. Но эта модель была довольно тяжелой и не работала в режиме реального времени на мобильном устройстве, что было необходимо для создания приложения. Так мой летний проект вылился в дипломную работу: мне надо было найти другой вариант, как решить эту задачу.
В ВКР я хотела научиться менять любое лицо на одного заданного персонажа, обучив для этого некоторую легкую модель генератора. А в случае успеха усложнить полученную модель, чтобы заменять лица на нескольких предопределенных персонажей или на любое целевое лицо.
Для решения этой задачи я использовала модификацию генератора pix2pix с включением блоков из сети MobileNetV2. Полученная модель качественно заменяет лицо на одного персонажа, работает в разрешении 400х400 и полностью обсчитывается на мобильном устройстве со скоростью ~25 FPS. Добавив в эту модель AdaIN блоки, удалось получить модель для нескольких персонажей. А сделав архитектуру более глубокой и добавив сеть для распознавания лиц, я получила модель, которая умеет заменять лицо на любое другое.
Писать текст диплома мне было довольно легко, т.к. я целый год занималась этой интересной задачей и сильно выросла в области ганов и компьютерного зрения.
После выпуска я продолжаю работать в Myna Labs. Занимаюсь всё так же генеративными задачами в домене лиц — сейчас это бьюти-фильтры для ретуши лица и макияжа.
* Реализация соц. сети Facebook запрещена на территории России.