2012-04-26 18 views
10

Próbuję zrozumieć kilka rzeczy o sieciach neuronowych. Po pierwsze, po rozejrzeniu się po sieci wydaje się, że nie ma sposobu na obliczenie (dyskretnej) transformacji Fouriera przez sieć neuronową. Możesz go zhackować, kodując go tak, by zawierał stałe Fouriera dla transformacji, a następnie uzyskać przyzwoity wynik. Dlaczego maszyna nie może sama tego dokonać?sieci neuronowe nie mogą wykryć transformacji Fouriera?

+0

Nie widziałem tego wcześniej (ale nie jestem ekspertem od sieci neuronowej). Czy możesz podać kilka referencji? Widzę jedną gazetę, która twierdzi, że tak, ale nie ma mocnej argumentacji. – tom10

Odpowiedz

7

DFT jest operatorem liniowym. Niektóre sieci neuronowe mają sigmoidalny lub inny nieliniowy element na ścieżce obliczeniowej, co może utrudnić dostateczną symulację operatora liniowego.

Dodano: Pełny DFT jest mnożeniem macierzy N na N. Sieć neuronowa musi być wystarczająco duża, aby reprezentować wiele multiplikacji (minimum O (NlogN)).

+0

Mogę użyć funkcji aktywacji liniowej. Myślisz, że to wystarczy? Sin/Cos domyślnie nie traktuje mnie liniowo. – Brannon

+0

To tylko jeden z możliwych czynników. – hotpaw2

+1

Podaję tutaj nagrodę, ponieważ uważam, że ta odpowiedź była najbliższa odpowiedzi na pytanie. Dziękuję wszystkim. – Brannon

4

Jak rozumiem, sieć neuronowa jest po prostu metodą klasyfikacji, która "uczy się". Aby rozwiązać problem za pomocą sieci neuronowych trzeba:

  1. Definiowanie wejść klasyfikatora
  2. Definiowanie wyjść klasyfikatora
  3. dostarczenie zestawu szkoleniowego: jest to zbiór par (wejście, wyjście)
  4. Wybierz topologia (ile warstw, ile neuronów na warstwę ...) i funkcja poszczególnych neuronów użyje do konwertowania wejść do wyjść

Po przeszkoleniu sieci neuronowej, po wprowadzeniu nowego wejścia, sieć neuronowa produkuje wyjście. To, jak dobry jest wynik, zależy od tego, jak "dobre" było szkolenie. Zazwyczaj reprezentatywny dla danych jest zbiór danych treningowych. Ta technika może być bardzo przydatna podczas próby rozwiązania problemów klasyfikacyjnych, w których istnieje nieznana zależność między wejściami i wyjściami.

Szybka transformacja Fouriera to tylko funkcja. Możesz mieć FFT w jednej dimesion, który jest stosowany do jednowymiarowych zjawisk, takich jak fala dźwiękowa. W takim przypadku należy podać wektor wartości (próbki natężenia fali dźwiękowej) i uzyskać wektor częstotliwości. Dokładniej mówiąc, amplituda harmonicznych różnych częstotliwości, które po skomponowaniu wytwarzają oryginalną falę dźwiękową. W dwóch wymiarach FFT przyjmuje jako dane wejściowe matrycę. Przykładowo, dla obrazu może to być intensywność koloru w punktach siatki. FFT przekształca to w matrycę harmonicznych. Długość wektora lub kolejność macierzy są określone przez częstotliwość próbkowania sygnału ortitalnego.

celu zastosowania sieci neuronowej do obliczania FFT:

  1. algorytm do obliczania FFT, w 1 i 2, wymiarów jest dobrze zdefiniowana. Jego złożoność to O (n log n), co czyni ją bardzo wydajną. Implementacja sieci neuronowej musiałaby być bardzo wydajna (paralelizm?), Aby usprawiedliwić korzystanie z niej.
  2. Jeśli zmienisz częstotliwość próbkowania, musisz przekwalifikować sieć neuronową: załóżmy, że masz spętaną sieć, która oblicza FFT dla danej częstotliwości próbkowania, jeśli znacząco zmniejszysz częstotliwość próbkowania, sieć neuronowa "przebije" dane i viceversa.

Myślę, że sieci neuronowe doskonale pasują do konkretnej implementacji FFT, o ile parametry (częstotliwość próbkowania ...) nie ulegną zmianie.

+0

Kilka problemów tutaj: 1. * Dokładniej, amplituda harmonicznych różnych częstotliwości, które po skomponowaniu wytwarzają oryginalną falę dźwiękową. * Nie do końca prawda. wyjście z fft to liczby zespolone. każda liczba zespolona reprezentuje amplitudę i fazę, ale w swojej surowej postaci nie jest do końca taka. 2. kiedy ludzie mówią harmoniczne, mają na myśli całkowite wielokrotności podstawowej częstotliwości (http://en.wikipedia.org/wiki/Harmonic). w rzeczywistości FT pobiera próbki częstotliwości tylko do Nyquist, więc * FFT przekształca to w matrycę harmonicznych * nie jest prawdą. – thang