Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Разовые заказы и подработка > Заказ: Python: построить и обучить нейронную сеть до данным


Автор: BobNik 22.04.17, 18:37
Предлагаю за вознаграждение (сумма обсуждается) выполнить следующее задание. Необходимо построить feedforward нейронную сеть и обучить ее методом backpropagation предсказывать с точностью +-5% мел-частотные кепстральные коэффициенты (MFCC) суммы 5-ти сигналов по MFCC этих сигналов. Данные прилагаются. Формат данных: каждая строка - это 40 MFCC одного звукового фрейма. Итого получаем 200 нейронов входного слоя и 40 в output layer.

Данные лежат здесь:
https://drive.google.com/file/d/0B3XxCLgPDV...iew?usp=sharing (результат - сумма)
https://drive.google.com/file/d/0B3XxCLgPDV...iew?usp=sharing (сигнал 1)
https://drive.google.com/file/d/0B3XxCLgPDV...iew?usp=sharing (сигнал 2)
https://drive.google.com/file/d/0B3XxCLgPDV...iew?usp=sharing (сигнал 3)
https://drive.google.com/file/d/0B3XxCLgPDV...iew?usp=sharing (сигнал 4)
https://drive.google.com/file/d/0B3XxCLgPDV...iew?usp=sharing (сигнал 5)

Задание будет считаться выполненным, если на произвольных данных, которые я предоставлю, нейронная сеть предскажет MFCC суммы сигналов в пределах 5%.

Примечание. Данные получены с помощью Wolfram Mathematica (http://mathematica.wolframcloud.com/app/) запросом
a = Audio["<URL звукового файла Wav>"];
mfcc=AudioLocalMeasurements[a,{"MFCC",40,40,Quantity[80, "Hertz"] ,Quantity[7999, "Hertz"] },PartitionGranularity->{0.0125,0.00625}];
Export[NotebookDirectory[]<>"FILENAME.xlsx",(Prepend[#[[2]],#[[1]]]&)/@Normal[mfcc]]
При этом первый столбец с точками времени я удалил в исходных данных.
Учитывая алгоритм вычисления MFCC, нейронная сеть должна смоделировать:
1. обратное дискретное косинусное преобразование (IDCT, 40*5 чисел на входе и выходе, результат каждой группы из 40 чисел зависит только от 40 соответствующих входов)
2. показательная функция / экспонента (судя по моим данным корреляций на больших выборках данных, Wolfram использует натуральный логарифм для MFCC)
3. обратное преобразование из Log FilterBank Energies (LFBEs) - восстановление с потерями спектра сигнала
4. простое суммирование спектров всех 5 сигналов
5. вычисление LFBE по спектру суммы
6. логарифмирование с основанием e или 10
7. DCT (дискретное косинусное преобразование).
В связи с большим количеством операций предлагается использовать несколько скрытых слоев.
Также сигналы 1-5 обладают специфическими свойствами, и желательно, чтобы нейронная сеть была устойчива к замене одного сигнала другим (то есть при обучении надо менять 5 раз местами исходные данные, и ещё, возможно, следует часть весов приравнивать друг другу из-за идентичности преобразований на первых этапах).

Автор: BobNik 26.04.17, 02:34
Другая задача:
Реализация расчета MFCC Wolfram Mathematica на Python. Известные реализации не дают тех же результатов.
Код Wolfram Mathematica (запустить можно локально или здесь http://mathematica.wolframcloud.com/app/):
a = Audio["<URL звукового файла Wav>"];
mfcc=AudioLocalMeasurements[a,{"MFCC",40,40,Quantity[80, "Hertz"] ,Quantity[7999, "Hertz"] },PartitionGranularity->{0.0125,0.00625}];
Export[NotebookDirectory[]<>"FILENAME.xlsx",(Prepend[#[[2]],#[[1]]]&)/@Normal[mfcc]]

Автор: BobNik 02.05.17, 14:35
Актуальна только задача в посте #2.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)