Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

杜伟、陈萍机器之心报道

相较神经网络,大名鼎鼎的傅里叶变换,为何没有一统函数逼近器?答案在这

其实,针对不同类型的任务,我们可以有选择性地使用傅里叶变换或神经网络。

函数逼近(function approximation)是函数论的一个重要组成部分,涉及的基本问题是函数的近似表示问题。函数逼近的需求出现在很多应用数学的分支学科中,尤其是计算机科学。具体而言,函数逼近问题要求我们在定义明确的类中选择一个能够以特定于任务的方式匹配(或逼近)目标函数的函数。

目前,领域内可以实现函数逼近的方式有很多,比如傅里叶变换以及近年来新兴的神经网络。这些函数逼近器在实现过程中采用的方法各有不同,效果也各有差异。

近日,reddit 上的一个热议帖子「对傅里叶变换神经网络作为函数逼近器进行了比较」。

发帖者认为,这是一个基础性问题。ta 提出了疑问,「如果神经网络的主要前提是全局函数逼近器,那么与傅里叶变换等其它也被证明能逼近任何函数的逼近器相比有哪些优势?为什么整个监督学习没有变成计算傅里叶系数的领域之一?」

图片

原贴地址:https://www.reddit.com/r/MachineLearning/comments/ryw53x/d_fourier_transform_vs_nns_as_function/

网友纷纷对以上问题给出了他们的解读。

傅里叶变换神经网络,应按需使用

在网友众多的回答中,一位网友的回答可谓是高赞,收获 208 点赞量。ta 的回答是这样的:

图片

高赞回答部分截图

大多数研究都证明了这一点,即傅里叶级数是连续函数的通用逼近器。(快速)傅里叶变换(FFT)可用于从均匀间隔的数据中快速计算傅里叶级数,尽管也存在非均匀 FFT。FFT 具有以下特性:如果模型足够平滑,它们会得到光谱收敛,这意味着误差呈指数递减(你可以通过系数的赫尔德条件看到这一点)。虽然傅里叶级数需要周期性,但对其模型的扩展包括切比雪夫变换 / 切比雪夫多项式,它们具有相似的光谱收敛性,但在 [-1,1] 上,它们是非周期函数。

神经网络收敛速度达不到指数级,甚至在最优的情况下,也很少达到线性收敛速度,那么为什么很多研究都使用神经网络方法呢?首先,我们以计算科学来说,很多研究都使用拟谱法、谱元素等。甚至多项式也是大量函数的通用逼近器(参考魏尔施特拉斯逼近定理)。

我们回到刚才的问题,为什么是神经网络?答案是因为所有这些通用逼近器都是一维的(也有一些专门为低维设计的逼近器,例如球谐函数,但它们适用于非常特殊的情况)。你可以通过张量积将一维通用逼近器变为多维,但是如果将其写出来,你会看到会发生以下现象,一维通用逼近器:
a0 + a1*sin(x) + b1*cos(x) + a2*sin(2x) + b2*cos(2x) + ...

二维通用逼近器,其形式如下:
a0 + a1*sin(x) + b1*cos(x) + c1*sin(y) + d1*cos(y) + a2*sin(2x) + b2*cos(2x) + c2*sin(2y) + d2*cos(2y) + e2*sin(x)*cos(y) + ...

通过对上述公式进行研究发现,当进入更高维度时,必须为更高阶项的每个组合添加新的项。组合以阶乘或近似指数的方式增长。例如一个表达形式有 161,700 个项,这也仅表示 100 维输入扩展的三阶交叉项。使用这种近似器永远不会完全表示具有数千个像素的大图像。

这种相对于输入大小呈现指数增长的方式就是所谓的维度灾难。神经网络的经验证明了多项式成本增长与输入大小的关系,这就是为什么神经网络被用于这些大数据问题的原因。

但这是否意味着傅里叶级数可以更好地解决足够小、足够平滑的问题?确实如此!这就是为什么基于物理的神经网络和傅里叶神经算子在 3 维情况下无法与优秀的 PDE 求解器竞争。事实上,在论文《Universal Differential Equations for Scientific Machine Learning》中,该研究展示了如何以特定方式将 CNN + 通用逼近器混合到 ODE(通用微分方程)中,以自动发现 PDE 离散化,论文表明,对于特定情况,傅里叶通用逼近器比神经网络效果更好。出于这个原因,DiffEqFlux.jl 包括经典基础层和张量积工具,也就是说,它们必须在正确的上下文中使用。请记住,谱收敛要求被逼近的函数是平滑的,当违反这一点时,你仍然可以获得收敛,但速度很慢。

神经网络是一种工具,傅里叶级数是一种工具,切比雪夫系列也是一种工具。当它们以符合其理论特性的方式使用时,你可以提高性能。 

补充一点关于吉布斯现象。如果假设一个函数是平滑的,那么每个点都会影响域中的其他任何地方。你可以通过查看泰勒级数的收敛性来考虑这一点,随着获得越来越多的导数正确,近似值越来越接近原始函数。当假设无限多的导数时,每条数据的影响实际上是全局的。当你有一个不连续性时,这不再是正确的,所以吉布斯现象是一种在这个假设被打破的点附近引入的畸变。这是一个非常高级的描述,但你可以将其引入光谱分析,因为它是误差界限需要做出平滑假设的地方。

傅里叶变换轻松处理音频信号,但面对高维数据效率低下

网友 @hillac 认为,傅里叶变换被认为是具有集合核的卷积神经网络(CNN)。经过数据预训练的傅里叶变换可以实现很好地逼近。当你观察图像上训练的 CNN 的倾斜内核时,它们会让人联想到傅里叶变换中发现的不同频率的触发函数。对于大多数应用来说,傅里叶变换的速度比 CNN 快,所以,如果数据易于处理,则可以使用傅里叶变换

神经网络可以被训练用于更好地逼近任意数据,因为它不会像傅里叶变换那样对数据携带的信息做出相同假设。因此,虽然傅里叶变换可以轻松地将音频信号分解为信息高度密集的表示,但如果尝试将它用于文本数据,则效果会很差。

图片

另一位网友 @wavefield 表示,傅里叶变换不近似值。它是信息到傅里叶域的转换,仍然包含原始信号中的所有信息,这也是为何能够逆计算的原因。应该看到,某些神经网络运算更容易在傅里叶域中学习。

这一观点获得了赞同。我们可以通过找到用于表示的频率子集来将傅里叶变换转换为近似值。如果使用损失函数(L1)的话,这可以高效地完成。

图片


还有网友 @visualard 总结了傅里叶变换与 CNN 的其他特征。

傅里叶分析是在全局信号上计算的,而 CNN 的一个优点是它们可以检测局部模式。有时将整个信号分解为多个部分,然后再对信号中的全局「thing」做出决策会更有意义。

图片

有人更是指出,傅里叶变换对高维数据效率非常低下。对此,使用随机傅里叶特征是一种解决方案,它类似于仅训练最后一层的随机单隐藏层神经网络

图片

对于傅里叶变换神经网络作为函数逼近器的异同与优劣,各位读者可在留言区给出自己的观点。
理论神经网络傅里叶变换
1
相关数据
收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

导数技术

导数(Derivative)是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x_0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x_0) 或 df(x_0)/dx。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

傅里叶变换技术

傅里叶变换(法语:Transformation de Fourier、英语:Fourier transform)是一种线性积分变换,用于信号在时域(或空域)和频域之间的变换,在物理学和工程学中有许多应用。因其基本思想首先由法国学者约瑟夫·傅里叶系统地提出,所以以其名字来命名以示纪念。实际上傅里叶变换就像化学分析,确定物质的基本成分;信号来自自然界,也可对其进行分析,确定其基本成分。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

傅里叶分析技术

傅里叶分析,是数学的一个分支领域。它研究如何将一个函数或者信号表达为基本波形的叠加。它研究并扩展傅里叶级数和傅里叶变换的概念。基本波形称为调和函数,调和分析因此得名。在过去两个世纪中,它已成为一个广泛的主题,并在诸多领域得到广泛应用,如信号处理、量子力学、神经科学等。

推荐文章
暂无评论
暂无评论~