神经网络无法弄清傅立叶变换?

时间:2012-04-26 15:34:38

标签: neural-network fft dft

我正在尝试了解有关神经网络的一些事情。首先,在浏览网页后,似乎没有办法通过神经网络计算(离散)傅里叶变换。你可以通过对事物进行硬编码来包含变换的傅里叶常数,然后获得一个不错的结果。为什么机器本身不能解决这些问题呢?

3 个答案:

答案 0 :(得分:14)

DFT是线性算子。一些神经网络在计算路径中具有sigmoid,RLU或其他非线性元素,这可能使得更难以足够模拟线性算子。

补充:完整DFT是N乘N矩阵乘法。神经网络必须足够大才能表示多次乘法(至少为O(NlogN))。

答案 1 :(得分:3)

据我了解,神经网络只是一种“学习”的分类方法。要使用神经网络解决问题,您需要:

  1. 定义分类器输入
  2. 定义分类器输出
  3. 提供训练集:它是一组对(输入,输出)
  4. 选择拓扑(多少层,每层有多少神经元......)以及各个神经元用于将输入转换为输出的功能
  5. 在训练神经网络后,给定新输入,神经网络产生输出。产出有多好取决于培训的“好”程度。通常,数据的代表性如何是训练数据集。当尝试解决输入和输出之间存在未知关系的分类问题时,此技术非常有用。

    快速傅立叶变换只是一个功能。您可以在一维中使用FFT,这适用于像声波这样的一维现象。在这种情况下,您传递一个值向量(声波强度的样本)并返回一个频率向量。更具体地说,组合时产生原始声波的不同频率的谐波幅度。在二维中,FFT将矩阵作为输入。例如,对于图片,它可以是网格中点处的颜色强度。 FFT将其转换为谐波矩阵。矢量的长度或矩阵的阶数由原始信号的采样率给出。

    应用神经网络计算FFT:

    1. 明确定义了1维和2维计算FFT的算法。它的复杂性是O(n log n),这使它非常有效。神经网络实现需要非常高效(并行性?)才能证明使用它。
    2. 如果您更改采样率,则需要重新训练神经网络:让我们假设您有一个染色网络来计算给定采样率的FFT,如果您显着降低采样率,神经网络将“过度拟合”数据,反之亦然。
    3. 有了这一切,我认为只要参数(采样率......)不变,神经网络就能很好地适应FFT的特定实现。

答案 2 :(得分:3)

我想我找到了一篇关于这个主题的研究论文:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.144.9688&rep=rep1&type=pdf

它说“为了实现处理DFT的神经网络,必须采用一种策略,将DFT的数学公式映射到神经网络的结构”,似乎它们得到了它起作用(第6节)。