【神经网络和深度学习】笔记 - 第四章 神经网络可以实现任意函数的直观解释【转】...

本文通过直观的方式解释了神经网络如何实现任意函数,特别是单层神经网络。首先介绍了两个前提,即近似计算和连续函数。然后详细讨论了单输入单输出的情况,展示了如何通过调整参数构造阶跃函数。接着,扩展到多输入多输出情况,利用门函数构造塔函数来逼近多变量函数。此外,还探讨了使用sigmoid以外的激活函数和修正阶跃函数以提高近似精度。最后,总结了神经网络的普适性和深度网络的优势。
摘要由CSDN通过智能技术生成

本文转载自:

文章导读:

1. 两个前提

2. 单输入单输出的情况

3. 一般情形:多输入多输出情况 

4. 使用sigmoid以外的神经元

5. 修正阶跃函数

6.总结

神经网络最令人激动的一个性质,就是它可以实现任意功能的函数。而且是即使对于只有一个隐藏层的神经网络,这个结论依然成立。

大部分神经网络的使用者都知道这个性质,但是并不理解为什么神经网络会有这样的性质。而其理论证明对于非数学专业的同学来说并不好理解,所以本章旨在用直观的方式帮助大家理解这个性质。

一. 两个前提

神经网络可以计算任意函数其实是有前提的。

首先要明白的是它并不是可以完全准确的计算原函数的值,但是通过增加隐藏层神经元的值我们可以越来越逼近原函数。就是说对于一个需要实现的函数f(x)f(x),要求实现精度为ϵ>0ϵ>0,也就是需要足够的隐藏层神经元使得神经网络输出g(x)g(x)满足|g(x)f(x)|<ϵ|g(x)−f(x)|<ϵ对所有输入xx。

第二个前提是被模拟的函数是连续函数,不过有的时候对于非连续函数,神经网络得到的连续近似已经足够满足要求了。

二. 单输入单输出的情况

先考虑最基础的单输入单输出的函数情况。为了理解怎么利用神经网络去计算给定函数ff,我们先考虑只有一个隐藏层的情况,其中含有两个神经元。

考虑隐藏层第一个神经元,其输出由σ(wx+b)σ(wx+b)决定。改变其参数ww和bb可以发现如下规律:

  • 改变b不会使函数形状发生改变,只会使其左右偏移。因为f(x)=11+ewx+b+b0=1ew(x+b0w)+bf(x)=11+ewx+b+b0=1ew(x+b0w)+b,b0>0b0>0时即bb增大时,相当于图像向左移动,b0<0b0<0时即bb减小时,相当于图像向右移动。
  • 改变w则会改变函数的形状,因为f(x)=11+e(w+w0)x+b=11+ewxw+w0w+bf(x)=11+e(w+w0)x+b=11+ewxw+w0w+b,相当于在横轴上进行了放缩。当|w||w|(w<0w<0的时候,函数会在x轴上反转,不过不影响我们理解)变的越来越大的时候,函数就会变的越来越陡峭。实际中观察,当w=100w=100左右时,函数的陡峭程度已经接近于阶跃函数了。

 

继续增大ww的值使得其输出更加接近阶跃函数:

当我们对隐藏层的神经元的输出进行加权求和的时候,分析阶跃函数要比分析sigmoid函数容易。我们很容易可以知道两个阶跃函数的和是什么形式,但是对于两个sigmoid函数就没有这么容易得到。所以我们先假设这些神经元输出函数就是阶跃函数,当然这也是一种近似,我们随后再看这和真正的情况相比会有什么影响。

再考虑另外一个问题,我们知道标准的σ(z)σ(z)的中点在z=0z=0处,当它近似为一个阶跃函数的时候,阶跃点在哪呢?容易知道就是在wx+b=0wx+b=0处,即s=bws=−bw。于是对于已经近似被认为是阶跃函数的神经元就可以只用一个参数s=bws=−bw来代替之前的两个参数ww和bb。

接着再来考虑整个神经网络的情况。

右边展示的是加权输出的结果w1a1+w2a2w1a1+w2a2,其中a1a1和a2a2分别是隐藏层两个神经元的输出。不过注意到这里神经网络最终的输出为σ(w1a1+w2a2+b)σ(w1a1+w2a2+b)。

通过调节这些参数可以观察到:

  • 调节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小庄老师

要是觉得不错,就给我点支持吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值