神经网络可以计算吗是的=X2y=x2?

数据挖掘 机器学习 神经网络
2021-09-30 01:28:03

本着著名的Tensorflow Fizz Buzz笑话和XOr 问题的精神,我开始思考,是否有可能设计一个神经网络来实现y=x2功能?

给定数字的某种表示形式(例如,作为二进制形式的向量,因此该数字5表示为[1,0,1,0,0,0,0,...]),在这种情况下,神经网络应该学会返回其平方 - 25。

如果我能实现y=x2,我可能可以实现y=x3通常是 x 的任何多项式,然后使用泰勒级数我可以近似y=sin(x),这将解决 Fizz Buzz 问题 - 一个可以找到除法余数的神经网络。

显然,仅 NN 的线性部分无法执行此任务,因此如果我们可以进行乘法运算,这将归功于激活函数。

你能就这个主题提出任何想法或阅读吗?

3个回答

我认为@ShubhamPanchal 的回答有点误导。是的,确实,通过 Cybenko 的普遍逼近定理,我们可以逼近f(x)=x2具有包含有限数量神经元的单个隐藏层可以在紧凑子集上逼近连续函数Rn,在激活函数的温和假设下。

但主要问题是该定理有一个非常重要的局限性该函数需要在一个紧凑的子集上 定义Rn(紧凑子集 = 有界 + 封闭子集)。但是为什么会有问题呢?在训练函数逼近器时,您将始终拥有一个有限的数据集。因此,您将在一个紧凑子集中近似函数Rn. 但我们总能找到一点X近似可能会失败。话虽如此。如果你只想近似F(X)=X2在一个紧凑的子集上R那么我们可以用yes来回答您的问题但是如果你想近似F(X)=X2对所有人XR 那么答案是否定的(我排除了使用二次激活函数的琐碎情况)。

关于泰勒近似的旁注:您始终必须记住,泰勒近似只是局部近似。如果您只想在预定义区域中近似函数,那么您应该能够使用泰勒级数。但近似(X) 由泰勒级数评估为 X=0 会给你可怕的结果 X10000 如果您在泰勒展开式中没有使用足够的项。

神经网络也被称为基于通用函数逼近定理的通用函数逼近。它指出:

在人工神经网络的数学理论中,通用逼近定理指出,在激活函数的温和假设下,具有包含有限数量神经元的单个隐藏层的前馈网络可以逼近 Rn 的紧凑子集上的连续函数

这意味着具有非线性激活函数的 ANN 可以映射将输入与输出相关联的函数。功能y=x2可以很容易地使用回归 ANN 来近似。

您可以通过笔记本示例在此处找到出色的课程。

此外,由于这种能力,ANN 可以映射复杂的关系,例如图像与其标签之间的关系。

是的,从理论上讲,它们可以逼近任何函数。

其他答案非常详细和彻底。但是,让我补充一个有趣的方面:​​当您尝试逼近非常简单的函数时,如果您发现您将训练的大多数模型都会失败,请不要绝望。这是因为简单的函数需要简单的模型,而简单的模型(即参数数量非常少的模型)对于权重的随机初始化极其不鲁棒。因此,您训练的 10 个网络中的 9 个很有可能会在最初相对简单的任务中失败。

幸运的是,这y = x**2是一个凸优化问题,这意味着对于梯度下降,初始化并不重要。