Текущая версия |
Ваш текст |
Строка 6: |
Строка 6: |
| == Введение == | | == Введение == |
| Как видно из названия, наша нейронная сеть создает музыку. Главной задачей мы ставили не столько создать шедевры мировой музыкальной индустрии, Мику Хацунэ 2.0, так сказать. Хотелось разобраться с двумя необычными сферами программирования: нейронные сети и работа с файлами-контейнерами формата WAV. | | Как видно из названия, наша нейронная сеть создает музыку. Главной задачей мы ставили не столько создать шедевры мировой музыкальной индустрии, Мику Хацунэ 2.0, так сказать. Хотелось разобраться с двумя необычными сферами программирования: нейронные сети и работа с файлами-контейнерами формата WAV. |
− | == Нейронная сеть ==
| |
− | За основу была выбрана сеть прямого распространения, как вытекает из названия это сеть с последовательным соединением нейронных слоев, в ней информация всегда идет только в одном направлении.
| |
− | Нейронная сеть состоит из нейронных слоев и соединяющих их синапсов, всего бывает 3 типа слоев: входной(на него подается какая-то информация, в нашем случае ноты: 1 - нота играет, 0 - не играет), скрытый(может быть 1 и более) и выходной. Каждый синапс имеет свой вес. Благодаря ему, входная информация изменяется, когда передается от одного нейрона к другому. Допустим, есть 3 нейрона, которые передают информацию следующему. Тогда у нас есть 3 веса, соответствующие каждому из этих нейронов. Из того нейрона, из которого будет выходит синапс с большим весом, будет передана более доминирующая информация в следующий нейрон. Благодаря совокупности весов нейронной сети, входная информация обрабатывается и превращается в результат. Изначально веса расставляются случайно, тем самым после первого прогона информации через нейронную сеть мы получим весьма плаченый результат, именно поэтому сеть нужно тренировать, то есть корректировать веса синапсов. Для тренировки нашей нейронной сети используется метод обратного распространения с использованием идеальных данных, то есть мы говорим сети, что есть хорошо, а что плохо.
| |
− | Визуализация метода обратного распространения: [http://tm.spbstu.ru/%D0%A4%D0%B0%D0%B9%D0%BB:6276e1d365ba4f8497cd41fb110d7619.gif Картинка тут]
| |
− |
| |
| == WAV == | | == WAV == |
| Итак, рассмотрим самый обычный WAV файл (Windows PCM). Он представляет собой две, четко делящиеся, области. Одна из них – заголовок файла, другая – область данных. В заголовке файла хранится информация о: | | Итак, рассмотрим самый обычный WAV файл (Windows PCM). Он представляет собой две, четко делящиеся, области. Одна из них – заголовок файла, другая – область данных. В заголовке файла хранится информация о: |
Строка 33: |
Строка 28: |
| | | |
| [[File:WAV.png]] | | [[File:WAV.png]] |
− | == Итоги ==
| |
− | Создана нейоронная сеть с возможностью замены метода тренировки и удобным классом загрузки музыки формата WAV.
| |
− | == Реализация на Java ==
| |
− | * [https://github.com/Naryadchikov/YetiSoundNeuralNetwork Ссылка на GitHub]
| |
− | == Участники проекта ==
| |
− | * [http://tm.spbstu.ru/Нарядчиков_Александр Нарядчиков Александр]
| |
− |
| |
− | * [http://tm.spbstu.ru/Лебедев_Станислав Лебедев Станислав]
| |
− | == Текст курсовой ==
| |
− | * [http://tm.spbstu.ru/File:MusicNeuralNetwork.pdf Ссылка на скачивание PDF файла с текстом курсовой]
| |
− |
| |
− | == Дополнительные материалы ==
| |
− | * [https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/ A Step by Step Backpropagation Example]
| |
− |
| |
− | * [http://stevenmiller888.github.io/mind-how-to-build-a-neural-network/ How to Build a Neural Network]
| |
− | == См. также ==
| |
− | [[Кафедра "Теоретическая механика"]]
| |