在507干活的第3天(下)

改进神经网络的学习方法这一章终于是看完了。下面进入第四章“神经网络可以计算任意函数的可视化证明”

这章应该只是为了证明普遍性定理——“包含一个隐藏层的神经网络可以被用来按照任意给定的精度来近似任何连续函数。”

所以和前面联系不大。但是这点依然对我很有吸引力(证明起来应该会很舒服)

知识点1:两个预先声明

第一个是:我们得出的结论并不是一个准确的值,而是一个足够精确的近似。

第二个是:我们得出的函数是一个连续函数。(不连续的连梯度都有些地方不存在,但是不可导的也是吧........)

知识点2:在单个输入和单个输出的情况下,进行近似函数

在这个例子里,我们的神经元采用阶跃函数吗,因为这比较好理解。

阶跃函数要求神经网络的权值比较大,所以我们设置一个尽量大的权值w。而阶跃点由公式s = -b/w 算出。我们可以先设置我们需要的阶跃点,然后算出b的取值。通过b的取值来设置我们阶跃点的位置。

阶跃点决定我们的x达到什么程度时,激活输出。

首先来构造一个凸起结构。我们可以看出,当x达到0.40的时候,输出增加了一个加权w1的值。当x到达0.60的时候,输出增加一个加权w2的值。(这里w1和w2互为倒数,是为了凸起后又能回归平坦)。


通过这个凸起的结构,只要我们隐层的神经元够多,能把x的变化范围分得够细,我们就可以轻松地近似大部分单值函数。


知识点3:多维情况

其实本质是一样的,只不过在两个变量的情况下,构造的是峰型结构,然后通过峰型结构的叠加来模拟任何函数。

本质就是不同的两个阶跃点的输出的权值相反,从而达到这两个在这两个阶跃点之间存在一个峰(二维情况就是凸起)

至于多变量的情况下,则是or叠加关系。同时满足m个变量的范围则可以输出一个峰(m为维数)

    

有一些问题,比如如果不调整偏置b的值,会产生一个如下图形式的函数(峰边上有一些高地)。

但是将b设置成        其中m是维数。可以将高地抹去。


知识点4:S型神经元

之前我们用的都是sigmoid函数,这是一个S型函数,其特征已经说过很多次,无须赘述。

下面我么来讨论一下什么样的函数也能作为神经元。

①我们确实需要假定  在  和  时是定义明确的。这两个界限是在我们的阶跃函数上取的两个值。

②我们也需要假定这两个界限彼此不同。如果它们不是这样,就没有阶跃,只是一个简单的平坦图形!

满足这两个条件的话,我们的S型函数就能被作为S型神经元来用于计算。


知识点5:修补阶跃函数

由于我们不能做到完美的阶跃函数,近似的塔型函数必然会出现一个上升的部分。这个部分被称为故障窗口。

故障窗口会导致无法非常精确地近似。所以我们需要一个方法解决故障窗口。

一种方法是①用一个函数拟合目标函数的一半。

②继续用一个函数拟合目标函数的一半,但是这回加一个偏置量,将函数图形偏移一半的宽度。

这样做可以有效解决问题,原因是在一个近似中的故障窗口的点,不会在另一个的故障窗口中。

(然而具体为什么这样我实在没搞懂,图上的问题也很大.......)


知识点6:深度学习

既然单层神经网络就可以完美的拟合任何函数,为什么还要用多层神经网络呢?

这是因为多层神经网络更加符合人的思维,比如判断一只狗,先判断这是一个活的东西,然后判断它是个动物,然后判断它是一条狗,这种用三个层神经元来进行判断的方法更加符合人脑,实验证明也更加有用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值