Нейронные сети не могут определить преобразования Фурье?

Я пытаюсь понять несколько вещей о нейронных сетях. Во-первых, после просмотра в Интернете кажется, что нет способа вычислить (дискретное) преобразование Фурье через нейронную сеть. Вы можете взломать это путем жесткого кодирования вещи, чтобы включить константы Фурье для преобразования, а затем получить достойный результат. Почему машина не может определить это самостоятельно?

Ответ 1

ДПФ является линейным оператором. Некоторые нейронные сети имеют сигмовидный или другой нелинейный элемент в пути вычисления, что может затруднить симуляцию линейного оператора достаточно близко.

Добавлено: полный DFT - умножение матрицы N на N. Нейронная сеть должна быть достаточно большой, чтобы представлять много умножений (минимум O (NlogN)).

Ответ 2

Как я понимаю, нейронная сеть - это всего лишь метод классификации, который "учится". Для решения проблемы с использованием нейронных сетей вам необходимо:

  • Определить входы классификатора
  • Определить выходы классификатора
  • Обеспечьте набор тренировок: это набор пар (вход, выход)
  • Выберите топологию (сколько слоев, сколько нейронов на слой...) и функция отдельных нейронов будут использовать для преобразования входов в выходы.

После обучения нейронной сети, учитывая новый вход, нейронная сеть производит выход. Насколько хорошо результат зависит от того, насколько "хорошим" был тренинг. Как правило, как репрезентативными данными являются учебные данные. Этот метод может быть очень полезен при попытке решить проблемы классификации, в которых существует неизвестная взаимосвязь между входами и выходами.

Быстрое преобразование Фурье - это просто функция. Вы можете иметь БПФ в одном dimesion, который применяется к одномерным явлениям, подобным звуковой волне. В этом случае вы передаете вектор значений (образцы интенсивности звуковой волны) и возвращаете вектор частот. В частности, амплитуда гармоник разных частот, которые при составлении создают исходную звуковую волну. В двух измерениях БПФ принимает на вход матрицу. Например, для изображения это может быть интенсивность цвета в точках сетки. БПФ преобразует это в матрицу гармоник. Длина вектора или порядок матрицы задаются частотой дискретизации сигнала orignal.

Чтобы применить нейронные сети для вычисления БПФ:

  • Хорошо определен алгоритм вычисления БПФ в 1 и 2 измерениях. Его сложность - O (n log n), что делает ее очень эффективной. Реализация нейронной сети должна быть очень эффективной (parallelism?), Чтобы оправдать ее использование.
  • Если вы измените частоту дискретизации, вам необходимо переустановить свою нейронную сеть: допустим, что у вас есть сеть, которая вычисляет БПФ для заданной частоты дискретизации, если вы значительно уменьшите частоту дискретизации, нейронная сеть будет "перегружать" данных и наоборот.

При этом я думаю, что нейронные сети могут очень хорошо соответствовать конкретной реализации FFT, если параметры (частота дискретизации...) не изменяются.

Ответ 3

Я думаю, что нашел исследовательскую работу по этой теме: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.144.9688&rep=rep1&type=pdf

В нем говорится, что "для достижения нейронной сети [которая] обрабатывает ДПФ, необходимо применить стратегию, которая отображает математическую формулу ДПФ на структуру нейронной сети", и кажется, что они получили он должен работать (раздел 6).