Нейронная сеть Feed Forward для изменения акцента? не знаю, делаю ли я что-то не так! (Тензор потока и керас) - PullRequest
0 голосов
/ 14 января 2020

Добрый вечер, я на самом деле разрабатываю проект, который включает в себя машинное обучение, где я использую MFCC для изменения акцента на другой. Через некоторое время я пришел к выводу, что мой лучший шанс (на данный момент, так как я абсолютный новичок ie в DL) - это создать нейронную сеть, которая меняет некоторые коэффициенты на другие такого же рода.

Моя гипотеза проста. Я думаю, что я могу использовать простую FFNN, чтобы изменить некоторые MFCC (Цепльные Коэффициенты Мел) на некоторые другие MFCC , как в этой статье из Стэнфордского университета . Что они делают в этом проекте, так это то, что они берут 20 коэффициентов из сигнала, вставляют их в NN размером 20x100x100x20 (размеры: 20 для входа, 100 скрытого слоя 1, 100 скрытого слоя 2, 20 выходных), и эти MFCC изменяются на другие MFCC, которые представляют тот же сигнал, но с другим акцентом.

Я хочу сделать то же самое или подобное, но проблема в том, что я только что узнал, как использовать TensorFlow и Keras для настройки нейронных сетей. Я абсолютный нуб и есть кое-что, что я не делаю правильно. Может быть, FFNN используются только для классификации? Я просто не очень хорошо понимаю их, и поэтому моя нейронная сеть просто плохо учится и застаивается с плохой точностью.

Мой вопрос: действительно ли это возможно? могу ли я получить новые значения MFCC из выходных данных нейронной сети, как эта, даже если они имеют отрицательные значения и не объединены между 0 и 1?

Для большего контекста: данные хранятся в тензоре размерность [2, m, n], где 2 представляют акцент (испанский sh & чилийский), m - количество образцов, а n - число MFCC для каждого образца (в настоящее время 20). Я использую коэффициенты испанского sh в качестве входных данных и чилийские коэффициенты в качестве выхода / цели NN. Для конфигурации NN: есть 4 слоя по 20, 100, 100 и 20 нейронов соответственно, все они с функцией активации «tanh», функция оптимизации - Адам, функция потерь - среднеквадратическая ошибка, а метрика - «точность». (Должен сказать, что я просто использовал их, потому что я не знаю, какой из них действительно используется). Я тренирую это с 10 эпохами (возможно, я должен использовать больше? 1 тысяч эпох?)

Как я уже сказал, я не знаю, если что-то не так, может быть, моя гипотеза неверна, но в статье Стэнфорда они сделал это так, поэтому я не знаю, как сделать то же самое. Я могу показать вам мой текущий код, если это необходимо, но я не думаю, что есть что-то плохое, поскольку настроенная мной модель довольно проста и очень похожа на другие, которые я видел в Интернете.

Если кто-то мне поможет, я буду вечно благодарен, всем спасибо и хорошего дня! Я могу показать вам код, если вы тоже хотите.

...