×

神经网络为什么可以拟合任何函数

神经网络为什么可以拟合任何函数(神经网络为什么可以拟合任何函数入J星星星大门)

admin admin 发表于2023-04-13 11:30:12 浏览64 评论0

抢沙发发表评论

本文目录一览:

神经网络如何模拟任意函数?

神经网络之所以强大,在于它强大的模拟能力。理论上,它可以以无限小的误差模拟任意函数。

也就是说,我们可以利用神经网络构建任意函数,得到任意算法。

我们这里使用一些可视化的样例,帮助大家获得一些直观的理解。

这个是最简单的情况,我们使用一个不带激活函御纤数的神经元即可模拟。

通过调整 参数,即可模拟任意直线。

我们使用一个带Sigmoid激活函数的神经元来模拟。

随着 参数继续增大,神经网络就会逐步逼近该函数。

我们分成几步来模拟:

得到的结果很好地近似了目标函数。

利用矩形脉冲函数,我们很容易近似其它任意函数,就像积分原理一样。

这个是最简单的情况,镇侍仿我们使用一谈睁个不带激活函数的神经元即可模拟。

通过调整 参数,即可模拟任意平面。

我们使用一个带Sigmoid激活函数的神经元来模拟。

与一元函数的情况类似,我们分步实现它:

最终的神经网络结构如下图所示:

利用二元矩形脉冲函数,我们很容易近似其它任意二元函数,就像积分原理一样。

原理一样,自己想象!😥

构建与数字电路之上的软件程序也可以模拟任意函数,那为什么还要发明人工神经网络呢?

更多内容及可交互版本,请参考App:

形象的解释神经网络激活函数的作用是什么?

这篇文章首先回答了一个人们都忽略的问题:在神经网络中,一个小小的激活函数为何如此重要?它的作用到底是什么?然后我就目前主流的激活函数做了一个对比讨论,并提出一些建议。

这里首先引出结论: 激活函数是来向神经网络中引入非线性因素的,通过激活函数,神经网络就可以拟合各种曲线。 这里举一个例子来说明:假如我的任务是:将下面的这幅图中的三角形和圆形分开,也就是一个典型的二分类问题。-神经网络为什么可以拟合任何函数

就是上图右边的直线,无论如何更改参数,它都不能很好的完成这个二分类问题,因为问题本身就是 线性不可分 的。迟悔

那么如何才能完美解决这个问题呢?我们试一试多感知器的表现

如果仔细观察,你就会发现,多感知器形成的方程其实也是一条直线(不信你把上面的那个式子因式分解一下),上面已经说了,该问题是线性不可分的,所以多感知器也不能解决这个问题。接下来,就让我们看看激活函数能不能解决。在每一层叠加完后,我们为输出与输入之间加上一个激活函数,此时的方程就变成了这样:-神经网络为什么可以拟合任何函数

这样也许就能将这个线性不可分笑桥的问题解决了。最后也许就是这个样子:

从上面的分析来看,我们可以看出激活函数是神经网络碰旦猛在拟合函数方面超过传统机器学习方法的一个关键因素。对比传统机器学习方法中, 即使是最复杂的SVM, 在拟合方面非线性曲线差神经网络n条街。

常见的激活函数

除了以上介绍的几个激活函数外, 还有一些比较小众的激活函数,如 Leaky ReLU、PReLU 或者 Maxout。

如何选择激活函数是一门大学问, 我的研究还不够深,做的实验还不够多, 因此很难有所定论, 这里先引用几篇博客里面和吴恩达视频中的结论。

1.除非在二分类问题中,否则请小心使用sigmoid函数。

2.可以试试 tanh,不过大多数情况下它的效果会比不上 ReLU 和 Maxout。

3.如果你不知道应该使用哪个激活函数, 那么请优先选择Relu。

4.如果你使用了Relu, 需要注意一下Dead Relu问题, 此时你需要仔细选择 Learning rate, 避免出现大的梯度从而导致过多的神经元 “Dead” 。

5.如果发生了Dead Relu问题, 可以尝试一下leaky ReLU,ELU等Relu变体, 说不定会有惊喜。

图神经网络是大数据时代发展的必然(原创)

        大数据的核心是数据智能。数据智能的本质是在大量样本中发现、评估若干概念之间的关联性,归纳形成数学表达,再利用数学表达进行推理运算,从而完成对未知样本的判断决策。这就需要发现海量数据背后的规律,解决数据表征问题。数据智能先后经历了专家系统、传统机器学习和神经网络三个阶段,输入的知识从具体到抽象,从规则到特征再到模式,越来越宏观,智能化处理效率越来越高,对底层的感知和模型的可解释性越来越弱化。随着专家系统逐渐淡出,传统机器学习和神经网络成为数据智能的两大常见技术。实践证明,随着数据集样本的增多,传统机器学习的性能不及神经网络(见图一)。这主要归结于前者的表达能力不如后者。Goodfellow在2013年ICML(国际机器学习大会)上发表了论文《MaxoutNetworks》(最大输出网络)。在这篇论文中证明了MaxoutNetworks能够无限逼近任意连续函数。也即是说,神经网络能够拟合任意连续函数,与传统机器学习相比,神经网络具有突出的表达能力优势。-神经网络为什么可以拟合任何函数

         (上图):横轴代表数据量,纵轴代表算法精度     

        我们看到几个趋势:行业数据量指数级增长、以GPU为代表的专业芯片算力增长、新型算法层出不穷、学术界的前沿研究、投资界的资金投入、工商业的多种场景,这些因素都促进了神经网络快速发展。神经网络的发展形态有两种方向:一是以DNN深度全连接和CNN卷积神经网络为代表的纵向发展,即层数增多的纵向迭代,典型应用是CV计算机视觉;二是以RNN循环神经网络为代表的横向发展,即神经元之间的横向迭代,典型应用是以NLP自然语言理解为代表的序列处理。神经网络技术同时呈现两种发展形态,并在多个领域有广泛应用,指亩就说明这个技术已经进入成熟期了。下一步往哪个方向发展?很有可能是:将纵向发展和横向发展进行结合,渗透到更多的应用领域。这看似顺水推舟的事情。事实证明,这个判断是正确的,图神经网络就是二者的结合。-神经网络为什么可以拟合任何函数

        纵观技术圈的发展历史,可以总结出这样的事实:一个理论技术能否在更多的领域推广,关键取决于它能否真实地刻画现实世界的实体特征和关系。如果它刻画得越真实,那么它的应用场景就越多。比如马尔科夫链这个理论,就真实地刻画了现实世界中的时序对象的特征和依赖关系,因此它广泛应用在语音理解、机器翻译、国民经济、事件预测等领域;再如概率图理论,用图来表示事件概率的依存关系,也是真实刻画了现实世界中的实体关系,因此它也广泛应用在反欺诈、图像理解、事件预测等领域。从方法论看,要刻画现实世界的实体,就必须在模型中置入代表这个实体的节点,并且设计出实体之间的依赖关系转化。但无论是马尔科夫链还是概率图等方法,都弱化了嵌入表示,从而丢失了一些隐语义信息,是有缺憾的。-神经网络为什么可以拟合任何函数

图神经网络(GraphNeural Networks,GNN)的问世,使事情出现了转机。在唯裤森图神经网络中,存在两种网络。一种是拓扑结构网络,通常描述众多实体及其关系;另一种纯余是特征变换神经网络,通常用于节点、边、图或子图的特征转化。前者完成信息横向传播,实现图信号的拓扑关系传递,理论依据是图论;后者完成信息纵向传播,实现原始特征向嵌入表示的转化,理论依据是深度学习。图神经网络是图论与深度学习的完美结合,它既考虑了实体关系,又考虑了实体特征。与传统图方法和传统深度学习相比,图神经网络具有明显的优势:建模来源数据更充分,更能反映现实世界中实体之间的真实关系,它既能从图结构代表的非欧式空间数据中学习到语义表示,又能让学习到的语义表示最大限度地符合图结构的实体关系。-神经网络为什么可以拟合任何函数

        现实世界中80%以上的数据更适合用图结构来刻画,比如交通数据、社交数据、分子结构数据、行业经济数据等。图神经网络能适应这样的数据,在分布式学习架构下,图神经网络能处理的数据规模非常庞大,非常适合处理数亿节点的产业数据。因此图神经网络的应用场景更为广泛。近三年来,各种国际顶会关于图神经网络的论文频频发布,众多互联网科技公司(如阿里、百度、字节跳动)花重金在这一领域布局,并取得重大进展,广泛应用于关联搜索、实时推荐、风险防控、异常检测、行为预测、模式识别等。这些现象无疑说明了图神经网络是未来技术发展的重要领域方向。-神经网络为什么可以拟合任何函数

        综上所述,在行业数据、算法理论、算力支持、市场需求、资本涌入等背景下,图神经网络的迅速崛起是大数据时代发展的必然。

bp神经网络如何实现拟合功能?

首先要知道你建立的这个模型的内部逻辑关系。。

1,确定隐层数,画出闷喊冲简要模型图。

2,确定采用什么样的神经网络来建立模型

3.通过测试数据来训练模型。。

4.根据测试训练得到的数据和实际蚂歼数据进行比对,或者算出误差。从而修改隐层中的权值和阀值。

反复重复3-4.。最后得到一个渗巧最优的模型。

大致是这样。。。楼主说的太概略。。。无法回答清楚请抱歉

为什么神经网络能以任意精度拟合任意复杂度的函数?

在开始之前,我们先来看一下维基百科给出的 万能近似定理(Universal approximation theorem) 描述:

Universal approximation theorem (Hornik et al., 1989;Cybenko, 1989) 定理表明:前馈神经网络,只需具备单层隐含层和有限个神经单元,就能以任意精度拟合任意复杂度的函数。这是个已经被证明的定理。下面我们用一种轻松的方式解释,为什么神经网络(理论上)可以拟合任何函数?-神经网络为什么可以拟合任何函数

看过《神偷奶爸》这部电影的同学都知道,小黄人( Minions )非常册茄喜欢吃香蕉。不过,现在它只有12个苹果,但它对苹果不感兴趣,想着如果谁能用香蕉换它的苹果就好了。不经意间,它发现了一个神奇的小屋。-神经网络为什么可以拟合任何函数

小黄人向神奇小屋的窗户里放进一个苹果,神奇小屋什么也不会给它。小黄人又尝试向小屋的窗户里放进5个苹果,神奇小屋突然吐出16个香蕉!这下小黄人可高兴坏了。然后,小黄人又尝试扔给神奇小屋6个苹果,神奇小屋又吐出来20个香蕉。-神经网络为什么可以拟合任何函数

现在,小黄人的12个苹果用完了,它抱着换来的香蕉想:如果我给它3个苹果,小屋会吐出来多少香蕉呢?

这是一道小学题(找规律),如何解答?

你可能脱口而出,8个香蕉!!OK,好吧,说明你的智商可以学习AI这么高深的学科了~

如何使用机器学习的步骤解答这道小学生做的题目呢(你可能觉得这是杀鸡用了宰牛刀)。

我们使用 变量 x  表示扔给神奇小屋的苹果数量( 输入input ),使用 变量 ŷ  表示神奇小屋吐出来的香蕉数量( 输出Output ),那么我们就得到了一个 数据集(Data set) :

我们的目标是,构建一个数学 模型(Model) ,使得该模型满足数据集的隐含规律。即,向模型输入  x  的值,模型会输出对应的  ŷ  值。

小学生应该学过一元函数(y = wx + b)。既然是小学题目,那么使用比较简单的函数应该就能模拟数据集的规律。所以我们定义了一个一元皮虚一次函数模型:

那么问题来了,我们怎样才能确定函数的两个 参数w,b ?

聪明的你可能又会脱口而出,是y = 4x + (-4) !!OK,你再次证明了你的智商已经超过小学生或者初中生。

但是小黄人没有你那么聪明,它只能猜。如果w=1, b=0,结果会是怎样?

很明显,模型的 输出(预测)值 y  与实际数据集中的 真实值 ŷ  相差很大。小黄人不满意,又随机猜了一次。w=2,b=2,结果又是怎样呢?

嗯,这次模型的输出值 y 与数据集中的真实值 ŷ 相差似乎不那么大了。小黄人就想,这两个候选模型,哪一个更好呢(更能模拟数据集中的规律)?如何将”更好“量化?

于是,我们引出 损失函数(lost function) 的概念。

将预测值 y 与真实值 ŷ 之间的差值平方和,作为“更好”的一种量化。损失函数越小, 即,预测值与真实值之间的差值越小,说明参数w,b越能模拟数据集中的规律。

有了损失函数,我们来看一看,上面两个候选模型的损失函数值各是多少。

模型 y = 2x + 2 的损失函数值L(2,2) = 68,小于L(1,0) = 318,所以候选模型y = 2x + 2胜出。

小黄人是一个追求极州握察致的人。损失函数值68虽然小于318,但是它还是很大呀,有没有其他参数w,b使得损失函数L(w,b)的值比68还小。

所以,我们又引出了 优化器(Optimizer) 的概念。

想办法找出使得损失函数值L(w,b)最小的参数w,b。由于小黄人没有学过梯度下降法(一种凸函数优化算法,不懂也没关系,现在用不到),所以它只能使用....”随机尝试法“。

小黄人从参数w=2,b=2,开始,以步长为1进行随机尝试。即,在“加一减一”的范围内,尝试坐标点(2,2)周围的四个点 : (3,2)、(2,3)、(1,2)、(1,1)。结果发现,在点(3,2)处,损失函数值小于其他三个点和原先点处的损失值。-神经网络为什么可以拟合任何函数

所以,小黄人发现了一个更好的候选模型 y = 3x + 2,其损失函数值为26,比68小的多。小黄人,很兴奋,用同样的方式又开始了尝试。以此类推,它接着发现了L(3,1) =17、L(3,0) =14 两个坐标点。然而,在点(3,0)周围的尝试,都没有发现比14更小的损失函数值。-神经网络为什么可以拟合任何函数

这样就结束了吗?

高智商的你,一定能想到,在点(4,-4)处,损失函数值最小:L(4,-4) =0。但是,用上述尝试方法并不能找到坐标点(4, -4)。

问题出在了哪儿?是初始点选择的问题。

小黄人发现,如果从坐标点(-2,-4)开始上述方式的尝试,最终会找到使得损失函数最小的(4,-4)点。如果深入研究,将涉及到最优搜索问题,超出本片文章的范围。

我们当前只需知道,能够通过最优方法(如,最小二乘法),找到使得损失函数最小的模型参数w,b。

上面这个故事就是线性回归??

我们需要给出一个稍微严谨点的定义,来说明什么是线性回归。下面是《机器学习》(周志华著)中给出的一句话:

将这句话对应到我们的模型中。模型函数 y = 4x - 4 就是句中学得的“线性模型”。然后,在我们的故事中,不是尽可能准确地预测真实值输出标记,而是百分百预测了真实值输出标记....损失函数值能够达到最小0。-神经网络为什么可以拟合任何函数

其实,没那么简单......我们稍微扩展一下。

有一天,小黄人发现,如果给神奇小屋1个苹果、2个香蕉、3个梨,神奇小屋就会吐给它一只猫咪~ 喵喵喵~。真的太神奇了。。。。

这时,模型函数不再是简单的一元函数,而是三元函数,有三个输入变量 (x1, x2, x3),和4个参数 (w1, w2, w3, b) 需要优化。我们将这种情况称之为“ 多元线性回归(multivariate linear regression) ”。其实这是图像识别的原型模型,我们不再深入探讨。-神经网络为什么可以拟合任何函数

当小黄人发现了神奇小屋交换香蕉的规律后,非常非常高兴。它又找来了好多苹果,准备和神奇小屋交换香蕉。可是....生活就是这样。在你最得意的时候,往往会给你浇一盆凉水。

(注,这里将之前的数据集调整了一下,由x=1,5,6改为x=1,2,3。方便画图啦)

小黄人又尝试给神奇小屋4个和5个苹果,结果分别得到9个和10个香蕉。似乎哪里有点不对??!如果按照之前发现的规律,应该分别得到12和20个香蕉呀。小黄人,百思不得其解。

这时,神奇小屋吐出来一张纸条,上面写着:如果你扔进来的苹果太多,我给你的香蕉将会减少。小黄人,有点郁闷。

如果按照之前一元函数的方式建模,将会得到如下函数模型。

你可能比小黄人聪明多了,一眼就看出来上面的模型函数好像不太合适。损失函数永远取不到最小值0。

如果模型函数是这样就好了,那么对应的损失函数值将会取到最小值0。可是,这好像是两个模型函数。一山不容二虎,能不能将这两个函数合成一个函数。

这时,你又脱口而出,分段函数!!事实证明,你的智商已经达到高中生水平。

当 x 3 时,s1 等于1,s2 等于0,函数 y = 4x - 4;

当 x = 3 时,s1 等于0,s2 等于1,函数 y=1x + 5;

这才是完美的组合函数。

那么,问题又来了。s1和s2是什么?怎么确定?

如果把s2看成函数,那么理想情况下,应该是这样的阶跃函数。

然而阶跃函数具有不连续、不光滑等不太好的性质。

这时,小黄人悠悠地说,我好像见过一个跟这个函数有点像的连续函数,叫Sigmoid函数。

看到这个Sigmoid函数后,你很生气。对着小黄人说:人笨就少说话,这个函数和阶跃函数,哪里相像了,差的也太远吧!!怎么看怎么不像。

小黄人:你给变量t一个参数不就行了,改成σ(1000t)。(抠鼻)

如果不仔细看,几乎看不出在纵轴0到1之间,有个非常陡峭的曲线。你顿时无语,对小黄人刮目相看。

        当 x = 0.1 时,s = σ(100) ≈ 1;

        当 x = - 0.1 时,s = σ(100) ≈ 0;

稍微对这个Sigmoid函数做些调整,就能得到我们需要的各种阶跃函数。

这样的话,我们就得到了新的模型函数,y = (4x - 4)σ(-1000x + 3000)+ (1x + 5)σ(1000x - 3000);

如,当 x = 4 时, y = (12) σ(-1000) + (9)σ(1000) = 12*0 + 9*1 = 9,与数据集相符。

在这个过程中,小黄人还是有功劳的,提出了激活函数的概念。

下面我们看一下稍微严谨点的逻辑回归定义。

这一句话就够了。在第一节中我们已经学习线性回归模型 y = wx + b。观察图,能够发现,逻辑回归其实就是在线性回归的结果上在再使用一次激活函数 y = σ(wx + b)。线性回归模型 (y = wx + b) 的预测值y可以是一个任意实数{-∞, ∞},而逻辑回归模型 (y = σ(wx + b)) 的预测值y只能是{0, 1}之间的实数。如果能够搞明白线性回归与逻辑回归的联系,说明你已经掌握两者的本质含义。-神经网络为什么可以拟合任何函数

小黄人想,虽然给的香蕉数量少了些,最起码小屋吐出来的香蕉比扔进去的苹果多嘛。于是,小黄人又尝试向神奇小屋里扔进去了7个和9个苹果。

结果,神奇小屋两次都只返还出来10个香蕉。这下小黄人傻眼了。

虽然小黄人在其他事情上比较笨,但是只要与香蕉相关,它可精明的多。刚刚5个苹果就能换10个香蕉,现在9个苹果才能换10个香蕉!!明显自己吃亏了。但是,它又非常不喜欢吃苹果,只能强忍怨气,攒着一股劲,一定要把里面的规律找出来。-神经网络为什么可以拟合任何函数

经过之前的套路,机智的你,一定能想到解决办法。

对,就是这样。将数据集分成三块,分别构建线性模型函数,然后利用激活函数,组合起来。

问题再次出现。

当 x 3 时,s1 = σ(-1000x + 3000) = 1,其他情况为0;

当 x = 5 时,s3 = σ(1000x - 5000) = 1,其他情况为0;

当 3 = x 5 时,s2 = ??

不知道聪明的你有没有注意到,函数 s1 和 s3 都是以 x 作为未知变量。如果我们转换一下思路,将 s2 看成是 s1 和 s3的二元函数。即,s2是否等于1或0,由 s1 和 s2 的值决定。

s2 = σ(-1000s1 - 1000s2 + 500)

虽然得到的香蕉数目不再增加,但是这么复杂的问题都能解决掉(使用线性回归和逻辑回归相结合,对数据集建模),小黄人还是有点小高兴。反正它手里还有些苹果,于是它又尝试向神奇小屋里丢进去了10、11、12个苹果。结果...小黄人崩溃了!!-神经网络为什么可以拟合任何函数

神奇小屋传出来纸条说:做人不能贪得无厌,要见好就收,知足常乐。小黄人崩溃了。现在只留下一个未被解决的难题----怎么对数据集进行建模。

即使你很聪明,似乎也只能解决其中的两步。

    取 s1 = σ(-1000x + 3000),即,当 x 3 时,s1 = 0;

    取 s4 = σ(1000x - 9000),即,当 x = 9 时,s4 = 0;

那么 s1 和 s2 该如何确定?

根据之前的经验,你大致可以确定s1和s2应该由s1和s4的值确定。

后续......

假设现在我们有许多数据集,

梳理一下流程

重点来了

免喷声明:本文借鉴(chao xi) 牛津大学xDeepMind 自然语言处理 公开课

BP神经网络可以用于拟合函数吗

可以。

既然是函数拟合,那么事先就已经有函数表达式了。拟合的只是函数表达式中未知的参数。用神经网络对函数进行拟合,输出的就是未知参数的高精近似值。

人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。-神经网络为什么可以拟合任何函数

扩展资料:

如果待定函数是线性,就叫线性拟合或者线性回归(主要在统蠢庆计中),否则叫作非线性拟合或者非线性回归。表达式也可以是分段函数,这种情况下叫作样条拟合。

一组观测结果的数字统计与相应数值组的吻合。形象的说,拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。因为这条曲线有无数种可能,从而有各种拟合方法。拟合的曲线一般可以用函数表示,根据这个函数的不圆旅同有不同的拟合名字。-神经网络为什么可以拟合任何函数

在MATLAB中可以用polyfit 来拟合多项式。

拟合以及插值还有逼近是数值分析的三大基础工具,通俗意义上它们的区别在于:拟合是已知点列,从整体上靠近它们;插值是已知点列并且完全经过点列;逼近是带腔握已知曲线,或者点列,通过逼近使得构造的函数无限靠近它们。-神经网络为什么可以拟合任何函数

参考资料来源:百度百科-拟合