2012-04-26 27 views
10

Estoy tratando de entender algunas cosas sobre las redes neuronales. En primer lugar, después de mirar alrededor en la web, parece que no hay forma de calcular una transformada de Fourier (discreta) a través de una red neuronal. Puede hackearlo codificando la cosa para incluir las constantes de Fourier para la transformación y luego obtener un resultado decente. ¿Por qué la máquina no puede resolver esto por sí misma?las redes neuronales no pueden descifrar las transformadas de Fourier?

+0

No he visto este hecho antes (pero no soy un experto en redes neuronales). ¿Podría dar algunas referencias? Veo un artículo que afirma esto, pero no es un buen argumento. – tom10

Respuesta

7

A DFT es un operador lineal. Algunas redes neuronales tienen un elemento sigmoide u otro elemento no lineal en la ruta de cálculo, lo que podría dificultar la simulación de un operador lineal lo suficientemente cerca.

Agregado: Un DFT completo es una multiplicación de matrices N por N. Una red neuronal tiene que ser lo suficientemente grande como para representar tantas multiplicaciones (como mínimo O (NlogN)).

+0

Puedo usar una función de activación lineal. ¿Crees que eso es todo lo que necesitas? Sin/Cos no me lleva por un camino lineal de pensamiento por defecto. – Brannon

+0

Ese es solo un posible factor. – hotpaw2

+1

Estoy dando la recompensa aquí porque creo que esta respuesta fue la más cercana a la respuesta a la pregunta. Gracias a todos. – Brannon

4

Según tengo entendido, una red neuronal es solo un método de clasificación que "aprende". Para resolver un problema utilizando las redes neurales que necesita:

  1. Definir las entradas clasificador
  2. Definir las salidas del clasificador
  3. proporcionar un conjunto de entrenamiento: es un conjunto de pares (entrada, salida)
  4. Elija una topología (cuántas capas, cuántas neuronas por capa ...) y la función que las neuronas individuales usarán para convertir las entradas en salidas

Después de que la red neuronal está capacitada, dada una nueva entrada, la red neuronal produce una salida. Qué tan bueno es el resultado depende de qué tan "bueno" fue el entrenamiento. Por lo general, qué tan representativo de los datos es el conjunto de datos de capacitación. Esta técnica puede ser muy útil cuando se intenta resolver problemas de clasificación en los que existe una relación desconocida entre las entradas y las salidas.

Fast Fourier Transform es solo una función. Puede tener FFT en una dimesión, que se aplica a fenómenos unidimensionales, como una onda de sonido. En este caso, pasa un vector de valores (muestras de la intensidad de la onda de sonido) y recupera un vector de frecuencias. Más específicamente, la amplitud de armónicos de diferentes frecuencias que cuando se componen producen la onda de sonido original. En dos dimensiones, FFT toma como entrada una matriz. Para una imagen, por ejemplo, podría ser intensidad de color en los puntos de una grilla. FFT transforma esto en una matriz de armónicos. La longitud del vector, o el orden de la matriz están dados por la tasa de muestreo de la señal original.

Para aplicar redes neuronales para calcular FFT:

  1. El algoritmo para calcular FFT en 1 y 2 dimensiones está bien definido. Su complejidad es O (n log n), lo que lo hace muy eficiente. La implementación de la red neuronal debería ser muy eficiente (¿paralelismo?) Para justificar su uso.
  2. Si cambia su frecuencia de muestreo, necesita volver a entrenar su red neuronal: supongamos que tiene una red limitada que calcula FFT para una frecuencia de muestreo determinada, si reduce significativamente la frecuencia de muestreo, la red neuronal "sobreagretará" el datos, y viceversa.

Con todo esto, creo que las redes neuronales pueden adaptarse muy bien a una implementación específica de FFT siempre que los parámetros (frecuencia de muestreo ...) no cambien.

+0

problemas de pareja aquí: 1. * Más específicamente, la amplitud de armónicos de diferentes frecuencias que cuando se componen producen la onda de sonido original. * No es del todo cierto. salida de fft son números complejos. cada número complejo representa amplitud y fase, pero en su forma original, no es exactamente eso. 2. Cuando las personas dicen armónicos, significan múltiplos enteros de una frecuencia fundamental (http://en.wikipedia.org/wiki/Harmonic). de hecho, FT te muestra las frecuencias muestreadas solo hasta Nyquist, por lo que * FFT lo transforma en una matriz de armónicos * no es verdad. – thang

Cuestiones relacionadas