Фото Марии ДУБОВСКОЙ
Нейросети так вошли в нашу жизнь, что мы уже не замечаем их. Те же поисковые запросы: тысячи алгоритмов машинного обучения! Прогноз погоды, ценообразование в такси, маркетинг – тоже нейросети. «Определенно, за ними уже не будущее – настоящее» – уверен Илья Дмитриевич Ильяшенко, аспирант 3-го курса ИЦТЭФ направления «информатика и вычислительная техника». О нейросетях мы с ним и поговорили.
– Нейросети появились раньше, чем вы думаете. Современный подход и математическая база для обучения нейронных сетей появилась еще в 60-х годах и первая модель называлась перцептронами. Нейросети, более понятные для нас, были созданы в 1997 году, например LSTM: подход для обработки последовательности. С 2010-х появились большие объемы данных и вычислительные ресурсы, поэтому нейросети стали набирать популярность, – объясняет Илья Ильяшенко.
Вы знаете, что это
Заниматься нейросетями мне захотелось еще на втором курсе. Все началось с обработки звука, сейчас меня интересует шумоочистка речевых сигналов. А еще я работаю с YandexGPT, занимаюсь генеративными ответами. Вы 100 % знаете, что это! С ними вы сталкиваетесь во время поискового запроса, когда видите ответы, всплывающие сверху. Так вот, их генерирует нейросеть. Моя диссертация тоже связана с нейросетями, но не с большими языковыми моделями. Я еще работаю над темой, пока ориентируюсь на «Механизм самовнимания как метод обработки сигналов в задаче шумоочистки речи».
Еще чище
Представьте: у нас есть запись голоса, сделанная на улице или концерте. Из нее нам нужно получить чистый голос. Для такого результата мы разработали специальный алгоритм на основе нейронных сетей. Чтобы лучше понять суть, разберемся с аудиосигналом. Аудиосигнал состоит из волн. Наше ухо раскладывает его по частотам, которые вибрируют определенное количество раз в секунду. При обработке сигнала в компьютере используется подобная схема, называемая преобразованием Фурье, именно она позволяет представить звуковой сигнал в виде набора частот. Мы берем каждые 10–32 миллисекунды и делаем преобразование. Так мы разбиваем весь сигнал на окошки и смотрим, какие частоты есть. После мы работаем с картинкой. Представьте картинку, на которой две полоски – голос, а остальное – шум. Как убрать шум? Нам нужно определить, где голос, все лишнее – убрать. Это проблема стоит остро: во время онлайн-лекций, на конференциях часто можно слышать плохой звук.
Добавим шум
Еще во время бакалавриата мне хотелось заняться наукой. Я пришел к научному руководителю Андрею Александровичу Лепендину, он сказал: «Пройди математический курс на английском». Английского и математики я, конечно же, не знал. Полгода сходил с ума, учил. Следующие полгода ничего не делал. А в четвертом семестре начал активно работать. Сейчас в аспирантских планах довести до ума проект по шумоочистке, провести исследование разработанной модели: понять, как она учится, какими свойствами обладает, как ее можно модифицировать. Попробовать ее применить в других отраслях, например для распознавания речи. Очень важный момент – аугментация данных: усложнение входных данных, благодаря которому модель совершенствуется. Дело в том, что изначально для распознавания речи используют чистые аудиозаписи, в основном аудиокниги. В жизни же очень много громких, лишних звуков. И чтобы модель работала как часы в реальных условиях, мы накладываем на чистые сигналы шумы, будто одновременно включаем две записи.
«Это же собачка!»
Разберем на самом простом примере. Представьте картинки с котиком и собачкой. На одной написано, что это котик, на другой, что это собачка. Теперь мы должны научить этому нейросеть. Ей дается картинка котика и делается запрос: «Скажи, кто это». Она отвечает: «Я думаю, что на 80% это собачка». Ей отправляется примерно следующее: «Видишь, тут написано, что это котик!» Потом даешь ей следующую картинку и спрашиваешь: «Кто это?» Она говорит: «На 10% это котик». А ты ей: «Ты что, это же собачка!» Такой способ обучения называется функцией ошибки, то есть такой функцией, которая высчитывает, насколько сильно мы ошибаемся. В случае с нейросетью, если она скажет, что со 100% вероятностью это собачка и окажется права, значит, ошибка нулевая. Задавая эту функцию, мы понимаем, насколько сильно ошибается модель. Мы можем распространить эту ошибку, используя метод градиентного спуска на все обучаемые параметры модели. В своей разработке мы тоже применяем функцию ошибки. Допустим, есть зашумленная картинка, мы отдали ее в нейросеть, получили маску, умножили на нашу картинку и ждем, что получится чистый сигнал. Зная, какой сигнал был изначально и какой выходит по итогу, мы можем рассчитать метрику сигнала: узнать, сколько шума осталось в итоговом варианте. Если в итоге шума будет больше, то мы продолжаем обучать модель. В зависимости от этого показателя мы меняем параметры модели. Теперь, когда в следующий раз мы будем отдавать новую картинку, этот показатель должен уменьшиться. Таким образом, лучшая модель шумоочистки, разработанная нами, непрерывно училась три недели.В конечном итоге получается моделька, которая поглощает шумы и оставляет голос.
Эля ПЕТРЕНЕВА