Sto cercando di capire alcune cose sulle reti neurali. Innanzitutto, dopo aver guardato sul Web, sembra che non ci sia modo di calcolare una trasformata (discreta) di Fourier attraverso una rete neurale. Puoi hackerarlo codificando la cosa per includere le costanti di Fourier per la trasformazione e ottenere quindi un risultato decente. Perché la macchina non può capirli da sola?Le reti neurali non riescono a capire le trasformate di Fourier?
risposta
Un DFT è un operatore lineare. Alcune reti neurali hanno un sigmoide o altro elemento non lineare nel percorso di calcolo, che potrebbe rendere più difficile simulare un operatore lineare abbastanza da vicino.
Aggiunto: Una DFT completa è una moltiplicazione di matrice N by N. Una rete neurale deve essere abbastanza grande da rappresentare tante moltiplicazioni (almeno O (NlogN)).
Posso usare una funzione di attivazione lineare. Pensi che sia tutto ciò che serve? Sin/Cos non mi portano giù per un percorso lineare di pensiero per impostazione predefinita. – Brannon
Questo è solo un possibile fattore. – hotpaw2
Qui sto dando la taglia perché penso che questa risposta sia stata la risposta più vicina alla domanda. Grazie a tutti. – Brannon
A quanto ho capito, una rete neurale è solo un metodo di classificazione che "impara". Per risolvere un problema utilizzando le reti neurali è necessario:
- Definire gli ingressi classificatore
- Definire le uscite classificatore
- fornire una serie di formazione: si tratta di un insieme di coppie (input, output)
- Scegli una topologia (il numero di strati, come molti neuroni per strato ..) e la funzione di singoli neuroni useranno per convertire input in output
Dopo la rete neurale è addestrato, dato un nuovo input, la rete neurale produce un output. Quanto è buono l'output dipende da quanto "buono" è stato il training. In genere, quanto rappresentativo dei dati è il set di dati di addestramento. Questa tecnica può essere molto utile quando si tenta di risolvere problemi di classificazione in cui esiste una relazione sconosciuta tra input e output.
Fast Fourier Transform è solo una funzione. Puoi avere FFT in una dimensione, che viene applicata a fenomeni unidimensionali come un'onda sonora. In questo caso si passa un vettore di valori (campioni dell'intensità dell'onda sonora) e si ottiene un vettore di frequenze. Più in particolare, l'ampiezza delle armoniche di diverse frequenze che, una volta composte, producono l'onda sonora originale. In due dimensioni, FFT prende come input una matrice. Ad esempio, per un'immagine, potrebbe essere l'intensità del colore nei punti di una griglia. FFT lo trasforma in una matrice di armoniche. La lunghezza del vettore o l'ordine della matrice sono dati dalla frequenza di campionamento del segnale originale.
Per applicare reti neurali per calcolare FFT:
- L'algoritmo per calcolare FFT in 1 e 2 dimensioni è ben definito. La sua complessità è O (n log n), che lo rende molto efficiente. L'implementazione della rete neurale dovrebbe essere molto efficiente (parallelismo?) Per giustificare l'utilizzo.
- Se si modifica la frequenza di campionamento è necessario riqualificare la rete neurale: si supponga di disporre di una rete tained che calcola FFT per una data frequenza di campionamento, se si riduce significativamente la frequenza di campionamento, la rete neurale "sovrag- dati e viceversa.
Con tutto questo, penso che le reti neurali possano adattarsi molto bene a un'implementazione specifica di FFT fintanto che i parametri (frequenza di campionamento ...) non cambiano.
problemi di coppia qui: 1. * Più specificamente, l'ampiezza delle armoniche di diverse frequenze che quando composte producono l'onda sonora originale. * Non del tutto vero. l'output di fft sono numeri complessi. ogni numero complesso rappresenta l'ampiezza e la fase, ma nella sua forma grezza, non è proprio questo. 2. quando le persone dicono armoniche, significano multipli interi di una frequenza fondamentale (http://en.wikipedia.org/wiki/Harmonic). in effetti FT ti fa assaggiare le frequenze solo fino a Nyquist, quindi * FFT lo trasforma in una matrice di armoniche * non è vero. – thang
Credo di aver trovato un documento di ricerca su questo argomento: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.144.9688&rep=rep1&type=pdf
si dice che "al fine di realizzare una rete neurale [che] elabora una DFT, una strategia deve essere applicato che mappa la formula matematica di la DFT alla struttura di una rete neurale ", e sembra che l'abbiano fatta funzionare (sezione 6).
Non ho visto questo fatto prima (ma non sono un esperto di reti neurali). Potresti dare qualche riferimento? Vedo un articolo che afferma questo, ma non costituisce un caso forte. – tom10