Редактирование: Нейронная сеть "Рояль в кустах"

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
[[File:e613db56971c92a6dedae728ef6997e0.png|200px|thumb|right|Модель нейорнной сети]]
+
[[File:947cdd91841e5ec69db32eddb7a070e9.jpg]][[File:e613db56971c92a6dedae728ef6997e0.png]]
Иску́сственная нейро́нная се́ть (ИНС) — математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети У. Маккалока и У. Питтса. После разработки алгоритмов обучения получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др.
 
 
 
ИНС представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты (особенно в сравнении с процессорами, используемыми в персональных компьютерах). Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие по отдельности простые процессоры вместе способны выполнять довольно сложные задачи.
 
 
 
== Введение ==
 
Как видно из названия, наша нейронная сеть создает музыку. Главной задачей мы ставили не столько создать шедевры мировой музыкальной индустрии, Мику Хацунэ 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 файл (Windows PCM). Он представляет собой две, четко делящиеся, области. Одна из них – заголовок файла, другая – область данных. В заголовке файла хранится информация о:
 
 
 
Размере файла.
 
Количестве каналов.
 
Частоте дискретизации.
 
Количестве бит в сэмпле (эту величину еще называют глубиной звучания).
 
Но для большего понимания смысла величин в заголовке следует еще рассказать об области данных и оцифровке звука. Звук состоит из колебаний, которые при оцифровке приобретают ступенчатый вид. Этот вид обусловлен тем, что компьютер может воспроизводить в любой короткий промежуток времени звук определенной амплитуды (громкости) и этот короткий момент далеко не бесконечно короткий. Продолжительность этого промежутка и определяет частота дискретизации. Например, у нас файл с частотой дискретизации 44.1 kHz, это значит, что тот короткий промежуток времени равен 1/44100 секунды (следует из размерности величины Гц = 1/с). Современные звуковые карты поддерживают частоту дискретизации до 192 kHz. Так, со временем разобрались.
 
 
 
Теперь, что касается амплитуды (громкости звука в коротком промежутке времени). От нее, я бы сказал, зависит точность звука. Амплитуда выражается числом, занимаемым в памяти (файле) 8, 16, 24, 32 бит (теоретически можно и больше). Как известно, 8 бит = 1 байту, следовательно, какая-то одна амплитуда в какой-то короткий промежуток времени в памяти (файле) может занимать 1, 2, 3, 4 байта соответственно. Таким образом, чем больше число занимает места в памяти (файле), тем больше диапазон значений для этого числа, а значит и для амплитуды.
 
 
 
1 байт – 0..255
 
2 байта – 0..65 535
 
3 байта – 0..16 777 216
 
4 байта – 0..4 294 967 296
 
В моно варианте значения амплитуды расположены последовательно. В стерео же, например, сначала идет значение амплитуды для левого канала, затем для правого, затем снова для левого и так далее.
 
 
 
Совокупность амплитуды и короткого промежутка времени носит название сэмпл.
 
 
 
Теперь таблица, наглядно показывающая структуру WAV файла.
 
 
 
[[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]
 
== См. также ==
 
[[Кафедра "Теоретическая механика"]]
 
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)