Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.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. |