ВВЕДЕНИЕ 4
1. Введение в генеративно-состязательные нейронные сети 6
1.1. Генеративно-состязательный подход 6
1.2. Добавление условий 7
1.3. Добавление свёрточной архитектуры 9
1.4. Улучшение стандартного подхода 10
1.4.1. Использование метрики Васерштейна 10
1.4.2. Прогрессивно растущая генеративно-состязательная
сеть 12
1.5. Генерация звуковых сигналов 16
1.6. Генерация звуковых сигналов с приминением
прогрессивно растущей генеративно-состязательной сети 18
1.7. Методы оценивания качества генерации 18
2. Реализация генеративно-состязательной нейронной сети для
генерации звуков 22
2.1. Данные 22
2.2. Средства разработки 23
2.3. Характеристики вычислительного устройства 23
2.4. Архитектура нейронных сетей 23
3. Эксперименты 27
3.1. Описание процесса обучения нейронных сетей 27
3.2. Вариант с дополнительной задачей классификации 27
3.3. Вариант с построением отображений 30
3.4. Результаты генерации 33
ЗАКЛЮЧЕНИЕ 36
СПИСОК ЛИТЕРАТУРЫ 37
ПРИЛОЖЕНИЕ
Генеративно-состязательные нейронные сети - подход из области машинного обучения, позволяющий генерировать данные, которые были бы похожими на данные из какой-либо обучающей выборки. С момента появления в работе [1] данный подход приковывает к себе большое количество внимания среди исследователей. Причина популярности этого метода, в первую очередь, связана с тем, что идея генеративно-состязательного подхода достаточно проста как для понимания, так и для реализации, однако, одновременно с этим данный метод также показывает хорошие результаты в генерации данных. В качестве примера работы таких сетей можно обозначить следующие результаты: генерация реалистичных фотографий, генерация видео, рисунков, звуков, 3-х мерных моделей или же генерация текстов и описаний. Однако, генеративно-состязательные сети также имеют ряд проблем, препятствующих успешному обучению, например: нестабильность процесса обучения, медленная сходимость, а также проблема “схлопывания мод”. Различные техники, применённые при обучении, позволяют снизить негативный эффект от таких проблем, хотя вопрос в поиске решений лучших техник всё ещё остаётся открытым.
В данной работе речь пойдёт про применение генеративно-состязательных нейронных сетей в задаче генерации звука. В частности, будет описан случай так называемой условной генерации, то есть случай, когда становится возможным генерировать данные, которые удовлетворяли бы каким-либо условиям. Также, в случае генерации звука, к перечисленным проблемам обучения генеративно-состязательных сетей добавляется проблема поиска представления звука, которое бы способствовало повышению качества генерации.
Цель данной работы - разработать генеративно-состязательную нейронную сеть, которая по заранее заданным условиям могла бы генерировать звуковые сигналы.
Задачи работы:
1. Изучить литературу по генеративно-состязательным нейронным сетям.
2. Изучить существующие методы условной генерации (метод добавления условий через задачу классификации [2], а также метод с применением дополнительных отображений [3]).
3. Изучить модификации генеративно-состязательных нейронных сетей (использование метрики Васерштейна [4], использование прогрессивно растущей архитектуры [5]).
4. Реализовать метод, способный к условной генерации звукового контента, из статьи [6] на языке программирования Python с использованием библиотеки машинного обучения PyTorch.
5. Скачать и подготовить данные с музыкальными инструментами для обучения нейронных сетей.
6. Обучить реализованные генеративно-состязательные нейронные сети для генерации реалистичного звукового контента.
7. Провести исследование влияния архитектуры на качество результатов.
В данной работе была реализована генеративно-состязательная нейронная сеть, а также рассмотрена возможность её применения для задачи условной генерации звука. После обучения генеративно-состязательной нейронной сети, полученная нейронная сеть генератора способна создавать реалистичное звучание музыкальных инструментов, при этом имеется возможность управлять генерацией с помощью указания дополнительных условий генератору, например: указание условия ноты, условия октавы, условия семейства инструмента и условия источника звука. По сравнению с работой [6], в которой рассматривалась такая же задача, здесь была опробована модификация условной генерации по методу из статьи [3]. Данная модификация позволила гибче влиять на процесс условной генерации, благодаря чему стало возможным смешивание условий для генерации, получая тем самым переходное звучание инструментов между условиями. Также как и в [6] была обучена нейронная сеть с условной генерацией сделанной по методу [8], такая нейронная сеть показала лучшие в данной работе результаты метрик FID и IS. Однако такая архитектура нейронной сети, в отличие от варианта архитектуры с условной генерацией по методу из статьи [3], не позволяет также гибко управлять процессом условной генирации.
Поставленную цель работы можно считать выполненной, также были выполнены все поставленные задачи в данной работе. Однако полученное качество генерации всё ещё не доходит до качества реальных данных (если принять во внимание метрики FID и IS). Для повышения значений метрик FID и IS возможно использование других архитектур нейронных сетей, изменение процесса обучения или же модернизация самого подхода к решению задачи генерации.
Таким образом, по данной теме возможны дальнейшие исследования с целью создания новых и более совершенных методов генерации данных.