机器学习(西瓜书)第5章神经网络知识详解

引入

神经网络(neural networks)是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统所作出的交互反应。我们在机器学习中谈论神经网络时指的是“神经网络学习”,或者说,是机器学习与神经网络这两个学科领域的交叉部分。

目录

 5.1 神经元模型

 5.2  激活函数

 5.3  感知机与多层网络

5.3.1  感知机(线性可分)

5.3.2 多层网络

 5.4 误差逆传播算法

5.4.1  梯度下降法

5.4.2  误差逆传播的参数更新过程

第一步:更新隐层到输出层的权值​

第二步:更新输入层到隐层的权值以减小误差

 5.5 全局最小与局部最小(待更)

 5.6其他常见神经网络(待更)可先参考神经网络基础


5.1 神经元模型

1. 神经网络中最基本的成分是神经元(neuron)模型。

2. 生物神经网络:每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”(threshold),那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。

3. M-P神经元模型

        在这个模型中,神经元接收到来自 n 个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”(activation function)处理以产生神经元的输出。

 5.2  激活函数

 理想中的激活函数是图5.2(a)所示的阶跃函数,它将输入值映射为输出值“0”或“1”。“1”对应于神经元兴奋,“0”对应于神经元抑制。

然而,阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数。

典型的Sigmoid函数如图5.2(b)所示,它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因此有时也称为“挤压函数”。

这里的阶跃函数是单位阶跃函数的变体;对数几率函数则是Sigmoid的典型代表。

 把许多个这样的神经元按一定的层次结构连接起来,就得到了神经网络。从计算机科学的角度看,我们可以将一个神经网络视为包含了许多参数的数学模型——这个模型是若干个函数,相互嵌套代入而得。例如   y_{i}=f(\sum _{i}\omega _{i}x_{i}-\theta_{j} )

5.3  感知机与多层网络

5.3.1  感知机(线性可分)

1. 感知机(Perceptron)由两层神经元组成。(PS感知机没有隐层,只有输入层和输出层。)

如图5.3所示,输入层接受外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(threshold logic unit)。

 2. 感知机能容易地实现逻辑与、或、非运算。

假定y_{i}=f(\sum _{i}\omega _{i}x_{i}-\theta_{j} )中的激活函数为图5.2中的阶跃函数。

 3. 需注意的是,感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元(functional neuron),其学习能力非常有限。

事实上,上述与、或、非问题都是线性可分(linearly separable)的问题。

可以证明,若两类模式是线性可分的,即存在一个线性超平面能将它们分开,如下图中(a)(b)(c),则感知机的学习过程一定会收敛而求得适当的权向量w=(w1;w2;…;wn+1);否则感知机学习过程将会发生振荡,w难以稳定下来,不能求得合适的解,例如感知机不能解决下图中(d)所示的异或这样简单的非线性可分问题。

更一般地,给定训练数据集,权重wi(i=1,2,…,n)以及阈值\theta可以通过学习得到。阈值\theta可以看作一个固定输入为-1.0的“哑结点”所对应的连接权重wn+1,这样,权重和阈值的学习就可统一为权重的学习。

几乎所有的机器学习算法最后都归结为求一个目标函数的极值,即最优化问题,例如对于有监督学习,我们要找到一个最佳的映射函数f(x),使得对训练样本的损失函数最小化(最小化经验风险或结构风险)。感知机也是如此,其具体算法可参照此篇博客机器学习——感知机

5.3.2 多层网络

要解决非线性可分问题,需考虑使用多层功能神经元。例如下图5.5中这个简单的两层感知机就能解决异或问题。

 在图5.5(a)中,输出层与输入层之间的一层神经元,被称为隐层或隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元。

更一般的,常见的神经网络是形如图5.6所示的层级结构每层神经元与下一层神经元全都互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为“多层前馈神经网络”(multi-layer feedforword neural networks).

其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出。换言之,输入层神经元只是接受输入,并不进行函数处理,隐层与输出层包含功能神经元。

为避免歧义,我们将5.5(a)称为单隐层网络。只需包含隐层,即可称之为多层网络。

神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”(connect weight)以及每个功能神经元的阈值。

5.4 误差逆传播算法

多层网络的学习能力比单层感知机强很多,欲训练多层网络需要更强大的学习算法。误差逆传播(error BackPropagation,简称BP)算法是其中最杰出的代表。

现实任务中使用神经网络时,大多是在使用BP算法进行训练。

BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络(如训练递归神经网络),不过一般说“BP网络”时,一般是指用BP算法训练的多层前馈神经网络。

BP是一个迭代学习算法,在迭代的每一轮中采用广义的感知机学习规则对参数进行更新估计。

它的学习规则是使用最速下降法(梯度下降法),通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。

5.4.1  梯度下降法

函数在某一点的梯度是,在该方向单位步长上升最快的向量。梯度下降法是利用待优化变量,沿着负梯度方向不断迭代寻找最优值。

直观理解:

 梯度下降法算法流程(具体证明过程见最优化方法书上)

5.4.2  误差逆传播的参数更新过程

 BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。所谓逆向传播其实是链式求导。假设隐层和输出层神经元都使用Sigmoid函数。

第一步:更新隐层到输出层的权值

 

 综上

第二步:更新输入层到隐层的权值以减小误差

同理可得 

 

误差逆传播算法如下:

 如果类似地推导出基于累积误差最小化的更新规则,就得到了累积误差逆传播(accumulated error backpropagation)算法。

累计BP算法和标准BP算法对比
1.累积BP算法
(1)优点
    累积BP算法直接针对累积误差最小化,它在读取整个训练集D一遍后才对参数进行更新, 其参数更新的频率低得多。
(2)缺点
    但在很多任务中,累积误差下降到一定程度之后,进一步下降会非常缓慢。
2.标准BP算法
(1)优点
    一般来说,标准B P 算法每次更新只针对单个样例,参数更新得非常频 繁,而且对不同样例进行更新的效果可能出现“抵消”现象.因此,为了达到同 样的累积误差极小点,标准B P 算法往往需进行更多次数的迭代.
(2)缺点
    但在很多任务中,累积误差下降到一定程度之后,进一步下降会非常缓慢,这时标准BP往往会更快获得较好的解,尤其是在训练集D非常大时更明显.
其他
1.读取训练集一遍称为进行了 “一轮" (one round, 亦称one epoch)学习.
2.标准BP算法和累积BP算法的区别类似于随机梯 度下降(stochastic gradient descent,简称SGD)与标准梯度下降之间的区别.
[Hornik et al., 1989] 证明,只需一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数。
然而,如何设置隐层神经元的个数仍是个未决问题,实际应用中通常靠“试错法”(trial-by-error)调整。

5.5 全局最小与局部最小(待更)

5.6其他常见神经网络(待更)可先参考神经网络基础

5.6.1 RBF网络

5.6.2ART网络

5.6.3SOM网络

5.6.4级联相关网络

5.6.5Elman网络

5.6.6Boltzmann机

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值