¿Es posible usar TensorFlow para crear una red neuronal que asigne una determinada entrada a una determinada salida?

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

Pregunta

Actualmente estoy jugando con TensorFlow, pero parece que no puedo tener una retención si es útil para mi problema.

Necesito crear una red neuronal, que sea capaz de mapear la entrada a la salida.

La forma en que las cosas son de progresión ahora, no tengo un solo ejemplo en el que esto se ha hecho, todo tipo de problemas de tensorflow parece resolver son la tarea de clasificación, y no este tipo de problema de mapeo ... ¿Tensorflow puede hacerlo? , ¿tengo que usar un marco de red neuronal diferente para hacerlo?, y si está disponible, ¿alguien podría mostrar algún código (no el ejemplo mnist)

Mi tarea:

Actualmente estoy tratando de hacer una red neuronal que reciba muestras de archivos de audio y genera funciones de MFCC a partir de las muestras. Las características de MFCC se pueden calcular manualmente, lo que he hecho, por lo que sé cuál es la salida que busco. La función MFCC es un vector de características son diferentes números de valores reales. No puedo clasificarse como Clase A o Clase B, o hacerlo reduciría en gran medida la precisión de la salida, ya que está ajustando la salida a "contenedores" predeterminados ...

¿Fue útil?

Solución

De su descripción, parece que se enfrenta a un regresión Problema, porque desea que su salida tenga ciertos valores. Esto es diferente de clasificación problemas, que tienen como salida la probabilidad de que la entrada pertenezca a cierta clase.

La clave para usar redes neuronales para la regresión es que la capa de salida no debe tener activación, es decir, debe ser una capa lineal. Como lo señaló @janvandervegt, una función de pérdida común para los problemas de regresión es el error cuadrado medio (MSE) entre la salida actual y las características de MFCC que calculó.

Si google "Ejemplo de regresión de flujo de tensor", puede encontrar docenas de ejemplos completos, como este o este.

Otros consejos

Lo que propones es ciertamente posible, solo habrías norte nodos en su capa de salida, con norte Siendo del tamaño de su vector de características MFCC, y debe definir una función de pérdida que determine qué errores está cometiendo actualmente. Si todas las características tienen una escala similar y una importancia similar, podría usar el error cuadrático medio, pero puede ser creativo aquí. En principio, esto no es muy diferente de la clasificación multiclase con una capa Softmax al final. En ese caso tienes C nodos de salida después de una capa Softmax y una función de pérdida de entropía cruzada, en su caso tiene norte Nodos en su capa de salida después, por ejemplo, una capa totalmente conectada con una función de pérdida de MSE. Alimentarlo varios ejemplos y debe hacer la tarea razonable si los datos están bien representados. Aunque no estoy seguro de por qué querrías usar un enfoque de ML si esto es calculable, perderás precisión y no estoy seguro de cuánta velocidad ganas.

Un ejemplo muy fácil en el que TensorFlow se usa para una tarea de regresión y no una tarea de clasificación es una regresión lineal con descenso de gradiente, que puede ver aquí: https://github.com/aymericdamien/tensorflow-examples/blob/master/notebooks/2_basicmodels/linear_regression.ipynb

Licenciado bajo: CC-BY-SA con atribución
scroll top