1、简介
神经网络学习方法对于逼近实数值、离散值或向量值的目标函数提供了一种健壮性很强的方法。在现实中,学习解释复杂的现实世界中的传感器数据,人工神经网络(Artificial Neural Networks,ANN )是最有效的方法。反向学习传播算法已经在很多领域中取得了成功,比如学习识别手写字符、学习识别口语和学习识别人脸。人工神经网络的研究在一定程度上受到生物学的启发,因为生物学的学习系统是由相互连接的神经元组成的异常复杂的网络,人工神经网络大体相似,也是由一系列简单的单元相互密集连接构成的,其中每一个单元有一定数量的实值输入,并产生单一的实数输出,而输入可能来自其他单元的输出,输出也可能称为其他单元的输入。
一般来说,ANN研究领域有两个目标: 1、使用ANN研究和模拟生物学习过程; 2、获得高效的机器学习算法,而不管这种算法是否反映了生物过程。
机器学习中一般是研究第二个目标。
2、神经网络表示
3、神经网络的适用问题
ANN学习适用于这些问题:训练集合为含有噪声的复杂传感器数据,例如来自摄像机和麦克风的数据。也适用于需要较多符号表示的问题,如前一篇文章提到的决策树学习任务。在这种情况下ANN和决策树学习经常产生精度大体相当的结果。反向传播算法是最常用的ANN学习技术,它适合具有以下特征的问题:
- 实例是很多“属性--值”对表示的;
- 目标函数的输出可能是离散值、实数值或者由若干实数属性或离散属性组成的向量;
- 训练数据可能包含错误;
- 可容忍长时间的训练;
- 可能需要快速求出目标函数值;(这一点和前面一点要注意一下,尽管ANN的学习时间相对较长,但是学习好构成网络后,来求后续的实例是非常快速的)
- 人类能否理解学到的目标函数是不重要的。(这一点我认为可能是人类还不知道目标函数大概是什么,或许目标函数)
4、感知器
一种类型的ANN系统是以被称为感知器的单元为基础的,如果感知器以一个实数值向量作为输入,然后计算这些输入的线性组合,然后当结果大于某个阈值的时候,就输出1,否则输出-1,结构如下图所示:学习一个感知器意味着选择权值w_0,w_1,……,w_n的值(注意:图中的下标是从1到n+1),所以感知器要学习的候选假设空间就是所有可能的实数权值向量的集合。
4.1 感知器的表征能力 感知器可以看作是n维实例空间(即点空间)中的超平面决策面。对于超平面的一侧的实例,感知器输出1,对于另一侧的实例输出为-1,如下图:
4.2 感知器训练法则 这里的学习任务是决定一个权向量,可以使感知器对于给定的训练样例输出正确的1或-1。
为了得到可接受的权向量,一种办法是从随机的权值开始,然后反复的应用这个感知器到每个训练样例,只要它将样例错误分类就修改权值,重复这个过程,重复这个过程,直到正确分类,每一步根据感知器训练法则来修改权值,法则如下:
![[Mitchell 机器学习读书笔记]——人工神经网络 [Mitchell 机器学习读书笔记]——人工神经网络](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby8%3D.jpg?w=700&webp=1)
我们假设一下几种情况:
- 训练样本集已经被正确分类,这时,( t - o)是0,这使
为0,权值没有修改;
- 当目标输出是1,但是感知器却输出-1,这个时候就要使感知器输出1,而不是-1了,所以权值修改后的
要增大,如果xi > 0就要增大wi,这时因为(t - o)、x_i、
都>0 ,所以,wi是增大的,同理xi < 0时也会使
增大;
- 当目标输出是-1,但是感知器却输出+1的原理同上一步。
4.3 梯度下降和delta法则 对于线性不可分的样例,另一个训练法则可以克服这个不足,称为delta法则,对于线性不可分的样本,delta法则会收敛到目标概念的最佳近似。
delta法则的关键思想是使用梯度下降来搜索可能的权向量的假设空间。最好把delta法则理解为一个无阈值的感知器,也就是一个线性单元,它输出如下:
为了说明学到的权向量对于样例划分的正确性,我们需要定义一个标准来衡量,这个标准称作训练误差,一般的定义如下:
其中:D为训练样本集合,t_d为d的目标输出,o_d为线性单元对于样例d输出。 所以,对于越靠近目标概念的权向量,t_d 和 o_d 越接近,E(w)也会越小,这样寻找最优权向量可以转化到最小化 E 函数上来,E是一个关于W变量的函数。
E函数的可是化如下,取w_1、w_2,即W是二维向量,
E相对于W的梯度,记作
其中x_id表示训练样例d的一个输入分量x_i。结合以上几个式子,就可以得到梯度下降权值更新法则:
随机梯度下降: 因为上面的更新,需要计算所有实例的和然后更新权值,如果样例很多,计算过程会很慢。所以,一个常见的梯度下降变体(随机梯度下降)被提出了,大体上没有变化,只是根据以下公式来更新权值:
随机梯度下降可被看做为每个单独的训练样例d定义不同的误差函数:
标准的梯度下降和随机的梯度下降的关键区别:
- 标准的梯度下降是在权值更新前对所有的样例汇总误差,而随机梯度下降的权值是通过考查每个训练实例来更新的;
- 标准的梯度下降在每一步需要更多的计算,标准的梯度下降使用真正的梯度,对于每一次权值更新经常使用比随机梯度下降大的步长;
- 如果E有多个局部极小值,随机的梯度下降有可能避免陷入这些局部极小值中。
感知器训练法则经过有限次的迭代,收敛到一个能理想分类训练数据的假设,但条件是样例线性可分。增量法则收敛到最小误差假设,可能需要极长的时间,但无论训练样例是否线性可分都会收敛。
5、多层网络和反向传播算法
实际应用中,基本上都是从多层网络来考虑设计算法。多层网络的每个单元就是类似于前面介绍过的感知器。因为多个线性函数的连接还是线性函数,而我们需要输出是输入的非线性函数,而且输出函数是可微的,一种称为sigma函数可以满足这个条件,这个函数类似于感知器,但它是基于一个平滑的可微阈值函数。下图表示了sigmoid单元:
对于多层网路来说,学习权向量的方法还是试图最小化网络输出值和目标值之间的误差平方,重新定义如下的误差平方和:
在多层网络中,误差曲面可能有多个局部极小值,这意味着梯度下降仅能保证收敛到局部极小值,而未必得到全局最小的误差。但是,在实际中,发现对于很多应用反向传播算法都产生了出色的结果。 包含两层的sigmoid单元的反向传播算法如下:
6、小结
- 人工神经网络学习为学习实数值和向量值函数提供了一种实际的方法,对于连续的和离散的属性都可以使用,并且对训练数据中的噪声有很好的健壮性;
- 反向传播算法考虑的假设空间是固定连接的有权网络所能表示的所有函数的空间;
- 反向传播算法使用梯度下降方法搜索可能假设的空间,迭代减少网络的误差以拟合训练数据。
(本文参考Mitchell的《机器学习》第四章,是为读书笔记)