I'm trying to understand a few things about neural networks. First, after looking around on the web, it seems that there is no way to compute a (discrete) Fourier transform through a neural network. You can hack it by hard-coding the thing to include the Fourier constants for the transform and then get a decent result. Why can the machine not figure these out by itself?
A DFT is a linear operator. Some neural networks have a sigmoid, RLU, or other non-linear element in the computation path, which might make it harder to simulate a linear operator closely enough.
Added: A full DFT is an N by N matrix multiplication. A neural net has to be big enough to represent that many multiplications (at minimum O(NlogN)).
I think I found a research paper on this topic: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.144.9688&rep=rep1&type=pdf
It says that "in order to achieve a neural network [that] processes a DFT, a strategy has to be applied which maps the mathematical formula of the DFT to the structure of a neural network", and it seems that they got it to work (section 6).
As I understand it, a neural network is just a classification method that "learns". To solve a problem using neural networks you need:
After the neural network is trained, given a new input, the neural network produces an output. How good the output is depends on how "good" was the training. Typically, how representative of the data is the training dataset. This technique can be very useful when attempting to solve classification problems in which there is an unknown relationship between inputs and outputs.
Fast Fourier Transform is just a function. You can have FFT in one dimesion, which is applied to one dimensional phenomena like a sound wave. In this case you pass a vector of values (samples of the intensity of the sound wave) and get back a vector of frequencies. More specifically, the amplitude of harmonics of different frequencies that when composed produce the original sound wave. In two dimensions, FFT takes as input a matrix. For a picture, for example, it could be color intensity at the points in a grid. FFT transforms this into a matrix of harmonics. The length of the vector, or the order of the matrix are given by the sampling rate of the orignal signal.
To apply neural networks to compute FFT:
With all this, I think neural networks can fit very well a specific implementation of FFT as long as the parameters (sampling rate...) do not change.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With