Андрей Парков – старший разработчик группы ASR в MTS AI. Он стал призером соревнований Yandex Cup, предложив решение задачи в области распознавания речи, занял третье место. Расскажем об Андрее и его решении подробнее в этой статье.
Yandex Cup: третье место за решение в области распознавания речи
Андрей Парков занимает позицию старшего разработчика группы ASR в департаменте машинного обучения MTS AI. Андрей с детства мечтал создавать роботов, закончил институт по специальности «Робототехника», в 1992 году защитил диплом про искусственный интеллект. А потом ушел в IT и телекоммуникации и вернулся в ИИ только через 10 лет. Самостоятельно начал изучать появляющиеся курсы по машинному обучению, в качестве увлечения решал задачи и создавал умные системы, размещал их на GitHub. Там его разработки и заметили коллеги из нашей команды – так хобби превратилось в работу.
Yandex Cup и другие соревнования
Участие в соревнованиях дает разработчикам поле для экспериментов, возможность проверить уровень своих знаний и компетенций, а также испытать новые методы и алгоритмы в бою. А еще там, чаще всего, предоставляют данные для решения задач. Сегодня качественные данные все еще дефицит и получить датасет в пользование – это уже профит от участия в соревнованиях.
Что такое Yandex Cup? Это открытый онлайн-чемпионат для разработчиков по шести направлениям: фронтенд, бэкенд, мобильная разработка, аналитика, алгоритм и машинное обучение. В рамках трека по машинному обучению участникам чемпионата было предложено решить четыре задачи из разных направлений ML: распознавание речи, рекомендательные системы, компьютерное зрение и анализ текстов.
Задача голосовой активации
В задаче, которую решал Андрей, участникам соревнования требовалось обучить модель, устойчивую к шумам, которая способна распознать фиксированный набор ключевых фраз. Для ее решения организаторы предоставили набор «чистых» ключевых фраз: 38 слов, каждое из которых произнесло примерно три тысячи человек, и отдельный набор с записями типичных шумов. В тестовом наборе данных активационные фразы смешивались с шумами в случайном порядке, на них система должна была определить, что говорят люди.
На решение задачи Андрей потратил 15 вечеров. Для обучения он решил задействовать нестандартную нейросеть, похожую на человеческий мозг, где одна часть отвечает за зрение, другая – за слух, третья – за разговор. Нейросеть была похожей архитектуры. Одна часть отвечала за удаление шума из аудио: на вход ей подавался шумный сигнал, а на выходе она пыталась убрать шум. Так как она работала не совсем точно, очищенный сигнал смешивался с неочищенным и все это подавалось в следующую сетку, которая по спектрограммам пыталась определить слово, – это одна ветка. Вторая ветка была немножко умнее, она сначала определяла буквы, а потом по этим буквам определяла слова. В конце всё это соединялось и получалось какое-то конкретное решение.
Чтобы хорошо обучить нейросеть, данных было недостаточно, поэтому Андрей применил метод обучения на неразмеченных данных. Он пытался дообучить систему и повысить ее качество с помощью тестовых данных итерационно и алгоритм заработал.
Куда пошли конкуренты?
По результатам соревнования Андрей, решив поставленную задачу, занял третье место. На первом и втором месте оказались команды, которые использовали предобученную нейросеть, хорошо распознающую изображения. Они дообучили сеть на спектрограммах от аудио и победили, показав более точный результат. Системы золотого и серебряного призеров давали результат с точностью в 96 и 95% соответственно. Алгоритм Андрея показал точность в 92%. Процент показывает точность угаданных системой слов. Других метрик оценки организаторы не использовали, несмотря на различие подходов к решению задачи.
Соревнования как способ найти оригинальное решение
Часто случается так, что компании целью подобных соревнований ставят найти оригинальное решение, которое показывает, как можно решать стандартные задачи по-новому. Другая цель – собрать пул талантливых разработчиков, которые мыслят нестандартно. В любом случае, такие соревнования помогают разработчикам прокачать свои навыки, посмотреть на решения соперников, перенять новый опыт и поделиться им с сообществом. Так сделал и Андрей: демо системы, которую он разработал, можно посмотреть на YouTube, а техническую основу проекта – на
Практическое применение
С каждым годом рынок умных устройств с голосовыми ассистентами растет.