Возможно ли использование TensorFlow для создания нейронной сети, которая отображает определенный вход на определенный выход?

datascience.stackexchange https://datascience.stackexchange.com/questions/14503

Вопрос

В настоящее время я играю с Tensorflow, но, похоже, не могу получить, будь то полезно для моей проблемы?

Мне нужно создать нейронную сеть, которая способна отображать вход с выводом.

То, как обстоят дела, сейчас нет, у меня нет ни одного примера, в котором это было сделано, все типы проблем Tensorflow, кажется, решают задачу классификации, а не такая проблема сопоставления ... способен ли это сделать Tensorflow? , Должен ли я использовать другую структуру нейронной сети для этого?, И если он доступен, может ли кто -нибудь показать какой -то код (не пример MNIST)

Мое задание:

В настоящее время я пытаюсь сделать нейронную сеть, которая принимает образцы аудиофайлов, и генерирует функции MFCC из образцов. Функции MFCC могут быть рассчитаны вручную, что я сделал, поэтому я знаю, что я ищу, я ищу. Функция MFCC - это вектор функций - это разные номера реальных значений. Меня нельзя классифицировать как класс A или класс B, или это значительно снизило бы точность выхода, так как вы подгоняете выход для предопределенных «бункеров» ...

Это было полезно?

Решение

Из вашего описания кажется, что вы сталкиваетесь регрессия Проблема, потому что вы хотите, чтобы ваш вывод был определенными значениями. Это отличается от классификация Проблемы, которые имеют в качестве вывода вероятность ввода, принадлежащего определенному классу.

Ключом к использованию нейронных сетей для регрессии является то, что выходной слой не должен иметь активации, то есть это должен быть линейный слой. Как указано @janvandervegt, распространенной функцией потери для задач регрессии является средняя квадратная ошибка (MSE) между текущим выходом и вычисленными вами функциями MFCC.

Если вы Google «Пример регрессии TensorFlow» вы можете найти десятки полных примеров, например это или же это.

Другие советы

То, что вы предлагаете, безусловно, возможно, вы бы просто не узлы в вашем выходном слое с не Быть размером с вашего вектора функций MFCC, и вам необходимо определить функцию потери, которая определяет, какие ошибки он в настоящее время совершает. Если все функции имеют аналогичную масштаб и аналогичную важность, вы можете использовать среднюю квадратную ошибку, но вы можете проявить творческий подход здесь. В принципе это не сильно отличается от многоклассной классификации с слоем SoftMax в конце. В этом случае у вас есть в Выходные узлы после слоя SoftMax и функции потери поперечной энтропии, в вашем случае у вас не узлы в вашем выходном слое после, например, полностью подключенный слой с функцией потери MSE. Поправьте его ряд примеров, и она должна выполнить задачу разумным, если данные представлены хорошо. Хотя я не уверен, почему вы хотели бы использовать подход ML, если он вычисляется, вы потеряете точность, и я не уверен, какую скорость вы выигрываете.

Очень простой пример, в котором TensorFlow используется для задачи регрессии, а не задача классификации - это линейная регрессия с градиентным спусканием, которую вы можете увидеть здесь: https://github.com/aymericdamien/tensorflow-examples/blob/master/notebooks/2_basicmodels/lineear_regression.ipynb

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top