Presentation is loading. Please wait.

Presentation is loading. Please wait.

神经网络 Statistical Learning 方匡南 厦门大学教授 博士生导师.

Similar presentations


Presentation on theme: "神经网络 Statistical Learning 方匡南 厦门大学教授 博士生导师."— Presentation transcript:

1 神经网络 Statistical Learning 方匡南 厦门大学教授 博士生导师

2 人工神经网络(Artificial neural network),简称神经网络(neural network),是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型,是在现代神经科学研究成果的基础上提出的。它模拟大脑神经网络处理信息的方法,调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。神经网络的发展跌宕起伏,从最初的感知器模型到BP神经网络,再到近年来兴起的深度学习(Deep learning),它一直在曲折中前进。 神经网络起源于20世纪40年代,到今天已有70多年历史了。它的发展历程大致可分为三个阶段:

3 (1)第一阶段。1943年,美国的心理学家McCulloch和数学家Pitts提出了一个非常简单的神经元模型,即M-P模型,开创了神经网络模型的理论研究,标志着神经网络的研究进入了第一阶段。 此后,心理学家Hebb在1949年又提出了著名的Hebb学习规则。1958年, Rosenblatt等人研制出了首个具有学习型神经网络特点的模式识别装置,即代号为Mark I的感知机(Perceptron)。但是1969年Minsky和Papert在其所著的《感知器》一书中指出感知器模型的缺陷,使之后很长一段时间神经网络的研究都处在低迷期。 (2)第二阶段。直到1982年,美国加州理工学院的生物物理学家Hopfield提出Hopfield模型,标志着神经网络的研究进入第二阶段。1983年Sejnowski和Hinton提出了"隐单元"的概念,并且提出了Boltzmann机。1986年Rumelhart和McClelland对多层网络的误差反向传播算法进行了详尽的分析,进一步推动了BP算法的发展。但是,多层神经网络的巨大计算量和优化求解难度使其在实际应用中存在很大的局限性。

4 (3)第三阶段。2006年Hinton等使用逐层训练的方法克服了传统方法在训练深层神经网络时遇到的困难,实现了数据降维并获得了良好的效果。他提出的深度学习概念为神经网络的研究翻开了新的篇章,标志着神经网络的研究进入了第三阶段,即深度学习阶段。现在,深度学习技术在语言识别、图像识别、自然语言处理等领域得到广泛应用。 本章将首先介绍神经网络的基本概念,包括神经网络的基本单位、神经网络的结构、神经网络的学习;接着介绍一些经典的神经网络模型,包括单层感知器,BP神经网络和RPROP神经网络;最后介绍R语言的实现。

5 目录 Contents 一、问题的提出 二、神经网络的基本概念 三、神经网络模型 四、支持向量机

6 1 问题的提出

7 例11.1 为了鉴别真币和假钞,收集真币和假钞的图像,通过工业摄像机等一系列技术将图像资料数字化,利用小波变换(Wavelet Transform)工具从图像中提取特征。数据集来源于UCI数据库的Banknote Authentication Data Set,一共有5个变量,1372个样本。5个变量分别为:方差(variance of Wavelet Transformed image)、偏度(skewness of Wavelet Transformed image)、峰度(curtosis of Wavelet Transformed image)、熵(entropy of image)、类别(class),1表示真币,0表示假钞。除了类别,其余均为连续型变量。部分数据见下表11-1:

8 若这时有一个新的纸币图像数据,如何判断它是真币还是假钞?
表11-1 纸币鉴别数据表 Obs Variance skewness curtosis entropy of image Class 1 3.6216 8.6661 2 4.5459 8.1674 3 3.866 1.9242 若这时有一个新的纸币图像数据,如何判断它是真币还是假钞?

9 1 神经网络的基本概念

10 神经网络的基本单元——神经元 图11-1 生物神经元

11 在大脑中,神经网络由称为神经元的神经细胞组成,神经元的主要结构有细胞体、树突(用来接收信号)和轴突(用来传输信号)。一个神经元的轴突末梢和其他神经元的树突相接触,形成突触。神经元通过轴突和突触把产生的信号送到其他的神经元。信号就从树突上的突触进入本细胞,神经元利用一种未知的方法,把所有从树突突触上进来的信号进行相加,如果全部信号的总和超过某个阀值,就会激发神经元进入兴奋状态,产生神经冲动并传递给其他神经元。如果信号总和没有达到阀值,神经元就不会兴奋。图11-1展示的是一个生物神经元。

12 人工神经元模拟但简化了生物神经元,是神经网络的基本信息处理单位,其基本要素包括突触、求和单元和激活函数(有的时候为了简便起见,把求和单元和激活函数画在同一个节点上),结构见图11-2。
图11-2 神经元结构图

13 (一)突触 突触实际上就是神经元的输入端。将要研究的这个神经元记做神经元𝑘,模型的输入信号 𝑥 1 , 𝑥 2 , ⋯,𝑥 𝑚 ,既可以是原始的信号源,也可以是其他神经元的输出信号,记为{ 𝑥 𝑚 }序列。每一个输入都有一个权重 ,记为 序列。其中, 𝑤 𝑘𝑗 的第一个下标表示正在研究的神经元,第二个下标表示权重所在的突触输入端,与一般的权重不同,这里的权重可以取正值也可以取负值。连接到神经元k的突触𝑗上的输入信号 𝑥 𝑗 的突触权重为 𝑤 𝑘𝑗 的第一个下标表示正在研究的神经元,第二个下标表示权重所在的突触输入端,与一般的权重不同,这里的权重可以取正值也可以取负值。连接到神经元𝑘的突触j上的输入信号 𝑥 𝑗 的突触权重为 𝑤 𝑘𝑗 。类似于生物神经元的激活阈值(当输入信号超过该阈值时,神经元兴奋),人工神经元模型也包括一个外部偏置,记做 𝑏 𝑘 (即相当于常数项)。 𝑤 𝑘1 , 𝑤 𝑘2 ,⋯, 𝑤 𝑘𝑚 𝑤 𝑘𝑚

14 求和单元用来求各输入信号与相应突触权值的加权和,也就是提取输入信号的线性联系作为特征。令 𝑣 𝑘 为神经元内部的激活水平,那么
(二)求和单元 求和单元用来求各输入信号与相应突触权值的加权和,也就是提取输入信号的线性联系作为特征。令 𝑣 𝑘 为神经元内部的激活水平,那么 可以把偏置 𝑏 𝑘 看作一个新增的突触,即 𝑥 0 =1, 𝑤 𝑘0 = 𝑏 𝑘 ,这样 𝑣 𝑘 可以写成 。若令 , 𝑣 𝑘 = 𝑗=1 𝑚 𝑥 𝑗 𝑤 𝑘𝑗 + 𝑏 𝑘 𝑣 𝑘 = 𝑗=1 𝑚 𝑥 𝑗 𝑤 𝑘𝑗 + 𝑏 𝑘 = 𝑗=0 𝑚 𝑥 𝑗 𝑤 𝑘𝑗 𝑥 𝑘 = 𝑥 0 , 𝑥 1 ,⋯, 𝑥 𝑚 𝑇 𝑤 𝑘 = 𝑤 𝑘0 , 𝑤 𝑘1 ,⋯, 𝑤 𝑘𝑚 𝑇 𝑣 𝑘 = 𝑥 𝑘 𝑇 𝑤 𝑘 图11-3 神经元结构简化模式

15 激活函数一般为非线性形式,是上述提取的特征 𝑣 𝑘 的函数,用来控制模型的输出,记做𝑓 𝑔 ,模型的输出为 激活函数的种类
(三)激活函数 激活函数一般为非线性形式,是上述提取的特征 𝑣 𝑘 的函数,用来控制模型的输出,记做𝑓 𝑔 ,模型的输出为 激活函数的种类 很多,下面介绍几种常见的激活函数。 (1)阶跃函数和符号函数。阶跃函数和符号函数是最简单的激活函数,其输出只有两个状态(0和1或者-1和1),但这种函数的缺点就是不可微。阶跃函数和符号函数的表达式分别为式(11.1)和式(11.2): (11.1) (11.2) 图11-4展示了阶跃函数(左)和符号函数(右)的形状。 𝑦 𝑘 =𝑓( 𝑣 𝑘 )=𝑓( 𝑥 𝑘 𝑇 𝑤 𝑘 )=𝑓 𝑗=1 𝑚 𝑥 𝑗 𝑤 𝑘𝑗 + 𝑏 𝑘 𝑓(𝑥)= 1, 𝑥≥0 0, 𝑥<0 𝑓(𝑥)=𝑠𝑔𝑛(𝑥)= 1, 𝑥≥0 −1, 𝑥<0

16 图11-4 阶跃函数(左)和符号函数(右)

17 (2)Sigmoid函数。Sigmoid函数也称S型函数,其值域是0到1的连续区间,具有非线性、单调性和可微性,在线性和非线性之间具有较好的平衡,是构造人工神经网络最常用的激活函数。Sigmoid函数的表达式如下 其中𝛼是倾斜参数,修改𝛼可以改变函数的倾斜程度,在极限的情况下,倾斜参数趋于无穷,Sigmoid函数就变成了简单的符号函数。Sigmoid函数的形状如图11-5所示。 𝑓(𝑥)= 1 1+exp(−𝑎𝑥

18 图11-5 Sigmoid函数

19 另一种常用的函数是双曲正切函数,它是Sigmoid函数的变形,其值域是-1到1的连续区间。表达式为: (11.4)
𝑓(𝑥)=tanh(𝑥)= 2 1+ 𝑒 −2𝑥 −1= 1− 𝑒 −2𝑥 1+ 𝑒 −2𝑥

20 图11-6 双曲正切函数(左)和ReLU函数(右)

21 (3)ReLU激活函数(The Rectified Linear Unit)。近年来,ReLU激活函数越来越受欢迎,它的表达式为:
(11.5) 相比于sigmoid函数和tanh函数,ReLU的优势有两点,一是梯度不饱和。当时 梯度为1,从而在反向传播过程中,减轻了梯度弥散的问题。二是计算速度快。ReLU只需要一个阈值就可以得到激活值,加快了正向传播的计算速度。因此,Relu激活函数可以极大地加快收敛速度。在ReLU的基础上,还有Leaky-ReLU、P-ReLU、R-ReLU等变形和改进。 𝑓(𝑥)=max(0,𝑥 𝑥>0

22 神经网络的结构 神经元按照一定的方式连接成神经网络,不同的连接方式对应着不同的网络结构,相应的网络训练算法也不同。根据网络中是否存在反馈,可将神经网络分为前馈网络和反馈网络。 (一)前馈网络 前馈网络,也称前向网络,是最早提出的人工神经网络,也是最简单的人 工神经网络模型。在前馈网络中,神经元以层的形式组织,可以分为输入层、 隐藏层(可以没有)、输出层。各层神经元从输入层开始,只接收前一层神经 元的输入信号,并输出到下一层,直至输出层,整个网络中无反馈。

23 按照是否含有隐藏层,可以将前馈网络分为单层前馈网络和多层前馈网络。单层前馈网络是最简单的分层网络,如Rosenblatt感知器,源节点构成输入层,直接投射到神经元的输出层上。这里的单层指的是计算节点输出层,源节点的输入层不算在内。多层前馈网络有一个输入层,中间有一个或多个隐含层,相应的计算节点称为隐藏神经元或隐藏单元,还有一个输出层。隐藏是指神经网络的这一部分无论从网络的输入端或者输出端都无法直接观察到。源节点提供输入向量,组成第二层的输入,第二层的输出信号作为第三层的输入,这样一直传递下去,最后的输出层给出相对于源节点的网络输出。图11-7给出一个 的多层前馈神经网络。常见的多层前馈神经网络有BP(Back Propagation)网络、RBF(Radial Basis Function)网络等。

24 图11-7 多层前馈神经网络

25 (二)反馈网络 反馈网络也称递归网络,它与前馈网络的区别在于网络中带有一个或多个反馈回路,也就是至少有一个神经元将自身的输出信号作为输入信号反馈给自身或其他神经元,它是一种反馈动力学系统。在反馈网络中,输入信号决定反馈系统的初始状态,然后经过一系列的反馈计算和状态转移,系统逐渐收敛于平衡状态,这样的平衡状态就是反馈网络的输出。相对于前馈网络,反馈网络具有更好的非线性动态特性,可用来实现联想记忆和优化求解问题,常见的有Hopfield神经网络模型。图11-8给出的是由三个神经元组成的一个反馈网络。

26 图11-8反馈网络

27 神经网络的学习 神经网络的学习方式和学习规则一直是研究的重点,本小节先介绍几种常见的神经网络的学习规则,然后介绍神经网络的学习目的。 (一)学习规则 在介绍学习规则之前,先对批量学习和在线学习这两个概念做简要区别。批量学习(Batch Learning)指的是权值的调整是在训练数据集的N个样本都输入后进行,这构成了训练的一个回合,权值的调整是以回合-回合为基础的。而在线学习(Online Learning)指的是每输入一个样本,调整一次权重,权值的调整是以样例-样例为基础的。二者各有优缺点,本文是基于批量学习进行推导的。 神经网络的学习规则也就是修改权重或调整参数的规则。神经网络的结构不同,相应地学习规则也不同。常用的有𝛿学习规则、最小均方学习规则、Hebb学习规则。

28 设𝑡为神经元迭代过程中的时间步,则第𝑡步的训练数据集为 ,这里 是考虑偏置的m + 1维向量,即 ,权值向量为
(1)𝛿(Delta)学习规则。1986年,认知心理学家McClelland和Rumelhart提出了𝛿学习规则,也称作误差修正规则或连续感知器学习规则。𝛿学习规则的关键思想是利用梯度下降法来找到最佳的权重。 设𝑡为神经元迭代过程中的时间步,则第𝑡步的训练数据集为 ,这里 是考虑偏置的m + 1维向量,即 ,权值向量为 , 𝑑 𝑛 (𝑡)代表期望的输出,𝑓(𝑔)是激活函数, 是网络的实际输,误差函数为 𝐷 𝑡 = 𝐱 𝑛 (𝑡), 𝑑 𝑛 (𝑡 ,1≤𝑛≤𝑁 𝐱 𝑛 (𝑡 𝐱 𝑛 (𝑡)= 1, 𝑥 𝑛1 (𝑡), 𝑥 𝑛2 (𝑡),⋯, 𝑥 𝑛𝑚 (𝑡 𝑇 𝐰 𝑘 (𝑡)= 𝑤 𝑘0 (𝑡), 𝑤 𝑘1 (𝑡), 𝑤 𝑘2 (𝑡),⋯, 𝑤 𝑘𝑚 (𝑡 𝑇 𝑦 𝑛 (𝑡)=𝑓( 𝐰 𝑘 𝑡 𝑇 𝐱 𝑛 (𝑡) 𝐸(𝑡)= 1 2 𝑛=1 𝑁 𝑑 𝑛 (𝑡)− 𝑦 𝑛 (𝑡) 2 = 𝑛=1 𝑁 𝐸 𝑛 𝑡

29 确定了使 最陡峭上升的方向,所以梯度下降法即 ,于是可得到下面的式子:
接下来的问题是调整权重使误差最小,这里采用梯度下降法来对权重进行调整。梯度下降法是从任意一个初始向量开始,以很小的步伐反复修改这个向量,每一步都沿着误差曲线最陡峭的下降方向修改权向量,直到得到全局的最小误差点。由于梯度向量 确定了使 最陡峭上升的方向,所以梯度下降法即 ,于是可得到下面的式子: 𝛿学习规则适用于训练监督学习的神经网络,要求激活函数是可导的,如Sigmoid函数。 𝛻𝐸( 𝐰 𝑘 )= 𝜕𝐸(𝑡 𝜕 𝑤 𝑘0 , 𝜕𝐸(𝑡 𝜕 𝑤 𝑘1 , 𝜕𝐸(𝑡 𝜕 𝑤 𝑘2 ,⋯, 𝜕𝐸(𝑡 𝜕 𝑤 𝑘𝑚 𝐸(𝑡 𝛥 𝐰 𝑘 (𝑡)=−𝜂𝛻𝐸( 𝐰 𝑘 𝛥 𝑤 𝑘𝑖 (𝑡)=−𝜂 𝜕𝐸(𝑡 𝜕 𝑤 𝑘𝑖 =𝜂 𝑛=1 𝑁 𝑑 𝑛 (𝑡)− 𝑦 𝑛 (𝑡) 𝑓 ′ ( 𝐰 𝑘 𝑡 𝑇 𝐱 𝑛 (𝑡)) 𝑥 𝑛𝑖 𝑡 𝑤 𝑘𝑖 (𝑡+1)= 𝑤 𝑘𝑖 (𝑡)+𝛥 𝑤 𝑘𝑖 (𝑡

30 (2)最小均方学习规则(Least Mean Square, LMS)。1962年,美国机电工程师B. Widrow和M
(2)最小均方学习规则(Least Mean Square, LMS)。1962年,美国机电工程师B.Widrow和M.Hoff提出了Widrow-Hoff学习规则,也称为最小均方规则,可以用如下式子表示: 最小均方学习规则与𝛿学习规则很相似,可将最小均方学习规则看作是𝛿学习规则中 的特殊情况。该规则不仅学习速度快而且有较高的精度,权值可任意初始化。另外,它与神经元采用的激活函数无关,因此不要求激活函数可导。 𝛥 𝑤 𝑘𝑖 (𝑡)=−𝜂 𝜕𝐸(𝑡 𝜕 𝑤 𝑘𝑖 =𝜂 𝑛=1 𝑁 𝑑 𝑛 (𝑡)− 𝑦 𝑛 (𝑡) 𝑥 𝑛𝑖 𝑡 𝑤 𝑘𝑖 (𝑡+1)= 𝑤 𝑘𝑖 (𝑡)+𝛥 𝑤 𝑘𝑖 (𝑡 𝑓 ′ ( 𝐰 𝑘 𝑡 𝑇 𝐱 𝑛 (𝑡))=1

31 为第t步的连接权重,则神经元k在第t步的输出信号为 ,对应的Hebb规则为:
(3)Hebb学习规则。Hebb学习规则是一种纯前馈、无监督的规则,由神经心理学家D.O.Hebb提出,它是最早也是最著名的训练算法,至今仍在各种神经网络模型中起着重要作用。Hebb规则假定:若神经元k接收了神经元i的输入信号,当这两个神经元同时处于兴奋状态时,它们之间的连接强度应该增强。这条规则与“条件反射”学说一致,后来得到了神经细胞学说的证实。 设 为神经元k在第t步的输入信号, 为第t步的连接权重,则神经元k在第t步的输出信号为 ,对应的Hebb规则为: 其中,𝜂为学习速率。 Hebb学习规则需预先设置权重饱和值,以防输入和输出正负始终一致时权重无约束增加,此外,要对权重初始化,也就是对 𝑤 𝑘 (0)赋予0附近的小随机数。 𝐱 𝑘 (𝑡)= 𝑥 0 (𝑡), 𝑥 1 (𝑡),⋯, 𝑥 𝑚 (𝑡) 𝑇 𝐰 𝑘 (𝑡)= 𝑤 𝑘0 (𝑡), 𝑤 𝑘1 (𝑡),⋯, 𝑤 𝑘𝑚 (𝑡) 𝑇 𝑦 𝑘 (𝑡)=𝑓( 𝐱 𝑘 𝑡 𝑇 𝐰 𝑘 (𝑡) 𝛥 𝑤 𝑘𝑖 (𝑡)=𝜂 𝑦 𝑘 (𝑡) 𝑥 𝑖 (𝑡)=𝜂𝑓( 𝐱 𝑘 𝑡 𝑇 𝐰 𝑘 (𝑡)) 𝑥 𝑖 (𝑡 𝑤 𝑘𝑖 (𝑡+1)= 𝑤 𝑘𝑖 (𝑡)+𝛥 𝑤 𝑘𝑖 (𝑡

32 神经网络的学习目的就是调整网络的权重,提高或改善网络的性能,而网络的性能指的就是神经网络的泛化能力。
(二)学习目的 神经网络的学习目的就是调整网络的权重,提高或改善网络的性能,而网络的性能指的就是神经网络的泛化能力。 神经网络的泛化能力也被称作推广能力,指的是网络对于一个测试样本,给出正确输出的能力。可以将其理解为测试误差,在实际应用中,相对于训练误差,人们更关心测试误差。由于神经网络的可变参数很多,如果迭代的时间过长,会导致神经网络过拟合,即神经网络会拟合训练集的噪声,导致训练误差较小,测试误差较大,从而使网络的泛化能力较差。避免过拟合的方法有复杂度正则化、停止准则、交叉验证、验证集方法等。其中权值衰减的复杂度正则化就是在误差函数的基础上引入复杂度罚项: ,类似于岭回归,可以将复杂度罚项定义为网络中所有权值向量的平方范数,即 ,其中C指的是网络中权值的下标集,是正则化参数。 𝑅(𝐰)=𝐸(𝐰)+𝜆𝐽(𝐰 𝐽(𝐰)= 𝑖∈𝐶 𝑤 𝑖 2

33 3 神经网络模型

34 神经网络模型很多,典型的模型有感知器、BP神经网络、Hopfied网络、卷积神经网络、递归神经网络等等,这里主要介绍单神经元感知器、单层感知器、BP神经网络和Rprop神经网络。
感知器(Perceptron)是第一个完整的人工神经网络,最早是由美国心理学家Rosenblatt于1958年提出的,是一种典型的前向神经网络,可分为单神经元感知器、单层感知器和多层感知器。通常说的感知器不能解决线性不可分问题是指单神经元感知器和单层感知器,而多层感知器(Multilayer Perceptrons,MLP)可以解决线性不可分问题。由于多层感知器利用反向传播算法(Back-Propagation algorithm)进行训练,所以多层感知器也常常被称作BP网络。

35 11.3.1单神经元感知器 Rosenblatt感知器是典型的单神经元感知器,建立在一个非线性神经元上,与神经元的McCulloch-Pitts(M-P)模型十分相似,是用于线性可分模式(存在一个超平面可以把数据分成两类)的最简单的神经网络模型。由于只有一个神经元,所以只能完成两类的模式分类。 图11-9 单神经元感知器

36 单神经元感知器的训练目标是找到一个 ,使得如果 , (类1),否则 (类2)。利用最小均方误差规则进行训练的过程为:
在神经元模型的基础上,选择符号函数作为激活函数,由于这里只有一个神经元,可以省略下标k。第t步的训练数据集为 , , 权值向量为 𝑑 𝑛 (𝑡)代表期望输出取值为1或-1,输出为 单神经元感知器的训练目标是找到一个 ,使得如果 , (类1),否则 (类2)。利用最小均方误差规则进行训练的过程为: 𝐷 𝑡 = 𝐱 𝑛 (𝑡), 𝑑 𝑛 (𝑡 ,1≤𝑛≤𝑁 𝐱 𝑛 (𝑡)= 1, 𝑥 𝑛1 (𝑡), 𝑥 𝑛2 (𝑡),⋯, 𝑥 𝑛𝑚 (𝑡 𝑇 𝐰(𝑡)= 𝑤 0 (𝑡), 𝑤 1 (𝑡), 𝑤 2 (𝑡),⋯, 𝑤 𝑚 (𝑡 𝑇 𝑦 𝑛 (𝑡)=𝑓( 𝐰 𝑛 𝑇 (𝑡) 𝐱 𝑛 (𝑡))=𝑠𝑔𝑛( 𝐰 𝑛 𝑇 (𝑡) 𝐱 𝑛 (𝑡))= 1, 𝐰 𝑛 𝑇 (𝑡) 𝐱 𝑛 (𝑡)≥0 −1, 𝐰 𝑛 𝑇 (𝑡) 𝐱 𝑛 (𝑡)<0 𝐰 ∗ 𝑑 𝑛 =1 𝐰 ∗ 𝐱≥0 𝐰 ∗ 𝐱<0

37 第二步:输入第t步的训练数据,计算单神经元感知器的输出与期望输出的误差,调整权重:
第一步:初始化网络权重为小的随机数, 。 第二步:输入第t步的训练数据,计算单神经元感知器的输出与期望输出的误差,调整权重: 第三步:重复步骤二,直至训练数据集的误差小于预先设定的阈值或达到最大的迭代次数。 𝑡=0 𝛥 𝑤 𝑖 (𝑡)=𝜂 𝑛=1 𝑁 𝑑 𝑛 (𝑡)− 𝑦 𝑛 (𝑡) 𝑥 𝑛𝑖 t 𝑖=0,1,2,⋯,𝑚 𝑤 𝑖 (𝑡+1)= 𝑤 𝑖 (𝑡)+𝛥 𝑤 𝑖 (𝑡

38 设单层感知器由𝐾个神经元构成,当样本属于第k类时,第k个神经元的输出为1,其余神经元的输出为0,以此进行多分类。
单层感知器 建立在一个神经元上的感知器只能完成两类的模式分类,通过扩展感知器的输出层可以使感知器包括不止一个神经元,相应地可以进行多类别的分类,这就是单层感知器。 设单层感知器由𝐾个神经元构成,当样本属于第k类时,第k个神经元的输出为1,其余神经元的输出为0,以此进行多分类。 图11-10 单层感知器

39 与单神经元感知器相似,设第t步的训练数据集为 ,输入为 则第𝜅个神经元的权值向量为
,输入为 则第𝜅个神经元的权值向量为 ,另外 表示K个神经元的期望输出,𝑓(𝑔)是激活函数, 表示K个神经元的实际输出,其中, ,则利用最小均方误差规则进行训练的过程如下: 第一步:初始化网络权重为小的随机数,𝑡=0 。 第二步:输入第t步的训练数据,计算单层感知器的输出与期望输出的误差,其中,第k个神经元的误差函数为: 接着调整权重: 第三步:重复步骤二,直至训练数据集的误差小于预先设定的阈值或达到最大的迭代次数。 𝐷 𝑡 = 𝐱 𝑛 (𝑡), 𝐝 𝑛 (𝑡 ,1≤𝑛≤𝑁 𝐱 𝑛 (𝑡)= 1, 𝑥 𝑛1 (𝑡), 𝑥 𝑛2 (𝑡),⋯, 𝑥 𝑛𝑚 (𝑡 𝑇 𝐰 𝑘 (𝑡)= 𝑤 𝑘0 (𝑡), 𝑤 𝑘1 (𝑡), 𝑤 𝑘2 (𝑡),⋯, 𝑤 𝑘𝑚 (𝑡 𝑇 𝑘=1,2,⋯,𝐾 𝐝 𝑛 (𝑡)= 𝑑 𝑛1 (𝑡), 𝑑 𝑛1 (𝑡),⋯, 𝑑 𝑛𝐾 (𝑡) 𝑇 𝐲 𝑛 (𝑡)= 𝑦 𝑛1 (𝑡), 𝑦 𝑛1 (𝑡),⋯, 𝑦 𝑛𝐾 (𝑡) 𝑇 𝑦 𝑛𝑘 (𝑡)=𝑓( 𝐰 𝑘 𝑡 𝑇 𝐱 𝑛 (𝑡) 𝑘=1,2,⋯,𝐾 𝐸 𝑘 (𝑡)= 1 2 𝑛=1 𝑁 𝑑 𝑛𝑘 (𝑡)− 𝑦 𝑛𝑘 (𝑡) 2 𝑘=1,2,⋯,𝐾 𝛥 𝑤 𝑘𝑖 (𝑡)=−𝜂 𝜕𝐸(𝑡 𝜕 𝑤 𝑘𝑖 =𝜂 𝑛=1 𝑁 𝑑 𝑛 (𝑡)− 𝑦 𝑛 (𝑡) 𝑥 𝑛𝑖 𝑡 𝑖=0,1,2,⋯,𝑚 𝑤 𝑘𝑖 (𝑡+1)= 𝑤 𝑘𝑖 (𝑡)+𝛥 𝑤 𝑘𝑖 (𝑡 𝑘=1,2,⋯,𝐾

40 感知器收敛定理证明了如果训练数据是线性可分的,那么上述算法在有限步内收敛。对于线性不可分的情况,在训练过程中很有可能出现震荡,无法保证算法收敛。因此通常说感知器不能解决线性不可分问题。
BP神经网络 BP神经网络是1986年由以Rumelhart和McCelland为首的科学小组提出的。它是单层感知器的推广,包括输入层、一个或多个隐藏层、输出层,隐藏层的存在使得BP神经网络可以解决线性不可分问题。BP神经网络通过误差反向传播算法进行训练,它是目前应用最广的神经网络模型。

41 图11-11 BP网络结构图

42 ,是隐藏层的输出。输出层包含K个节点,输出层的输入向量为 表示连接输出层的神经元k与 之间的权重, 表示输出层的激活函数, 图11-12展示
以单隐藏层BP神经网络为例介绍BP算法。单隐藏层BP神经网络包含输入层、一个隐藏层和输出层,设训练数据集为 。输入层有m + 1个神经元节点,输入向量为考虑偏置的m + 1维向量,即 ,其中 。隐藏层包含L个节点, ℎ 𝐿𝑖 表示连接隐藏层的神经元𝑙与 𝑥 𝑛𝑖 之间的权重, , 表示隐藏层神经元的激活函数 ,是隐藏层的输出。输出层包含K个节点,输出层的输入向量为 表示连接输出层的神经元k与 之间的权重, 表示输出层的激活函数, 图11-12展示 了一个单隐藏层BP神经网络的结构。 𝐷= 𝐱 𝑛 , 𝐝 𝑛 ,1≤𝑛≤𝑁 𝐱 𝑛 = 𝑥 𝑛0 , 𝑥 𝑛1 , 𝑥 𝑛2 ,⋯, 𝑥 𝑛𝑚 𝑇 𝑥 𝑛0 =1 𝑛=1,2,⋯,𝑁 𝑧 𝑛𝑙 =𝜑 𝑖=0 𝑚 ℎ 𝑙𝑖 𝑥 𝑛𝑖 𝑖=0,1,2,⋯,𝑚 𝜑(𝑔 𝑙=1,2,⋯,𝐿 𝐳 𝑛 = 1, 𝑧 𝑛1 , 𝑧 𝑛2 ,⋯, 𝑧 𝑛𝐿 𝑇 𝑤 𝑘𝑗 𝑧 𝑛𝑗 𝑗=0,1,2,⋯,𝐿 𝑦 𝑛𝑘 =𝑓 𝑙=0 𝐿 𝑤 𝑘𝑙 𝑧 𝑛𝑙 𝑓(𝑔 𝑘=1,2,⋯,𝐾

43 图11-12 单隐藏层 BP神经网络

44 接着介绍用于训练上述模型的误差反向传播算法,它由输入信号的正向传播和误差信号的反向传播两个过程组成。设第t步的训练数据集为 ,输入为 。
,输入为 。 (1)信号正向传播过程。输入信号首先输入到输入层,然后经过隐藏层,最后到达输出层。分别计算隐藏层和输出层的输入输出信号,设隐藏层神经元的激活函数 𝜑(𝑔),输出层的激活函数𝑓(𝑔),则: 隐藏层的输入向量: 隐藏层神经元𝑙的输入信号: 隐藏层神经元𝑙的输出信号: 输出层的输入向量为: 输出层神经元k的输入信号: 输出层神经元k的输出信号: 𝐷 𝑡 = 𝐱 𝑛 (𝑡), 𝐝 𝑛 (𝑡 ,1≤𝑛≤𝑁 𝐱 𝑛 (𝑡)= 1, 𝑥 𝑛1 (𝑡), 𝑥 𝑛2 (𝑡),⋯, 𝑥 𝑛𝑚 (𝑡 𝑇 𝐱 𝑛 (𝑡)= 1, 𝑥 𝑛1 (𝑡), 𝑥 𝑛2 (𝑡),⋯, 𝑥 𝑛𝑚 (𝑡 𝑇 𝑛=1,2,⋯,𝑁 𝛼 𝑛𝑙 (𝑡)= 𝑖=0 𝑚 ℎ 𝑙𝑖 (𝑡) 𝑥 𝑛𝑖 𝑡 𝑙=1,2,⋯,𝐿 𝑧 𝑛𝑙 (𝑡)=𝜑( 𝛼 𝑛𝑙 (𝑡) 𝑙=1,2,⋯,𝐿 𝐳 𝑛 (𝑡)= 1, 𝑧 𝑛1 (𝑡), 𝑧 𝑛2 (𝑡),⋯, 𝑧 𝑛𝐿 (𝑡 𝑇 𝑛=1,2,⋯,𝑁 𝛽 𝑛𝑘 (𝑡)= 𝑗=0 𝐿 𝑤 𝑘𝑗 (𝑡 𝑧 𝑛𝑗 t 𝑘=1,2,⋯,𝐾 𝑦 𝑛𝑘 (𝑡)=𝑓( 𝛽 𝑛𝑘 (𝑡) 𝑘=1,2,⋯,𝐾

45 (2)误差反向传播过程。从输出层起反向逐层计算每一层的误差,根据梯度下降法更新各层的权重,使网络的实际输出尽可能接近期望输出。
首先令 表示输出层K个神经元的期望输出, 表示输出层K个神经元的实际输出,则对于每个训练样本𝑛,误差为: ,网络对N个训练样本的总体误差为: 。接着我们使用如下的梯度下降法逐层更新权重: 其中𝜂为学习率。 𝐝 𝑛 (𝑡)= 𝑑 𝑛1 (𝑡), 𝑑 𝑛1 (𝑡),⋯, 𝑑 𝑛𝐾 (𝑡) 𝑇 𝐲 𝑛 (𝑡)= 𝑦 𝑛1 (𝑡), 𝑦 𝑛1 (𝑡),⋯, 𝑦 𝑛𝐾 (𝑡) 𝑇 𝐸 𝑛 (𝑡)= 1 2 𝑘=1 𝐾 𝑑 𝑛𝑘 (𝑡)− 𝑦 𝑛𝑘 (𝑡) ) 2 𝑛=1,2,⋯,𝑁 𝛥 𝑤 𝑘𝑗 (𝑡)=−𝜂 𝜕𝐸(𝑡 𝜕 𝑤 𝑘𝑗 (𝑡 𝛥 ℎ 𝑙𝑖 (𝑡)=−𝜂 𝜕𝐸(𝑡 𝜕 ℎ 𝑙𝑖 (𝑡

46 其中 其中 𝛿 𝑛𝑘 (𝑡)= 𝑑 𝑛𝑘 (𝑡)− 𝑦 𝑛𝑘 (𝑡 𝑓 ′ ( 𝛽 𝑛𝑘 (𝑡)

47 综合上面(1)和(2)的讨论,我们可将误差反向传播算法的训练过程总结如下:
第一步:初始化网络权重为小的随机数, 第二步:输入第t步的训练数据: (a)信号的正向传播,逐层计算各神经元的输出; (b)误差反向传播,调整输出层及隐藏层的权重: 第三步:重复步骤二,直至训练数据集的误差小于预先设定的阈值或达到最大的迭代次数。 𝑡=0 𝛥 𝑤 𝑘𝑗 (𝑡)=𝜂 𝑛=1 𝑁 𝛿 𝑛𝑘 (𝑡) 𝑧 𝑛𝑗 (𝑡 𝑤 𝑘𝑗 (𝑡+1)= 𝑤 𝑘𝑗 (𝑡)+𝛥 𝑤 𝑘𝑗 (𝑡 ℎ 𝑙𝑖 (𝑡+1)= ℎ 𝑙𝑖 (𝑡)+𝛥 ℎ 𝑙𝑖 (𝑡

48 需要注意的是,在训练神经网络前,要将数据归一化,以便进行训练和分析。另外,对于BP神经网络,初始权值的设定对于网络训练有较大的影响。如果初始值的设定较大,使得加权后的输入落在激活函数的饱和区,会导致网络的权值调整过程缓慢,因此通常将初始值设定为0附近的小随机数。影响BP学习算法训练效率的另一个关键因素是学习率,学习率太小会导致训练时间过长,学习率太大可能会在误差减小过程中产生振荡,导致学习过程不收敛,因此在BP神经网络的设计中,倾向于选取较小的学习率以保证系统的稳定性,一般在0.01~0.8之间。 BP神经网络的输入层和输出层的节点数可以根据数据集的特性进行设定,但对于隐藏层数和隐藏层节点数的选取一般依赖于经验和背景知识。若隐藏层的节点数过少,网络就不能充分提取数据的非线性特征,这会使网络的误差较大;若隐藏层的节点数过多,不仅会使网络的训练时间过长,还容易出现过拟合现象,即网络的测试误差很大。在设计神经网络时,一般先考虑设置一个隐藏层,当一个隐藏层的节点数很多仍不能改善网络的性能时,可以考虑增加隐藏层,增加隐藏层的个数可以提高网络的非线性映射能力,进一步降低误差,提高训练精度,但加大隐藏层个数必定使训练过程复杂,训练时间延长。

49 Rprop神经网络 BP神经网络存在学习算法收敛速度慢、容易陷入局部极小值等缺陷。针对BP神经网络存在的问题,学者们提出了很多改进方法如:附加动量法、自适应学习速率法、拟牛顿法、共轭梯度法、LM算法等,其中比较经典的是Rprop(Resilient back propagation,弹性反向传播算法)神经网络。 由于误差超曲面非常复杂,很难从全局获得更多的启发式信息,所以可以考虑 对每个权重分别采用不同的自适应学习率,即局部自适应策略。Riedmiller 和 Braun于1993年提出的Rprop算法是在前向神经网络中实现监督学习的局部自适应 方案。 设 𝑤 𝑖𝑗 是联系神经元i和j神经元之间的权重,E是可微的误差函数,上标代表迭 代次数。在Rprop算法中,消除了偏导数的大小对权值改变的影响,权重更新的方 向仅基于偏导数的符号,由专门的弹性更新值或步长(step-size)来确定,每个 权重都有相对应的步长记作 Δ 𝑖𝑗 。典型的Rprop算法包括两个部分。

50 这里 ,通常取 步长是有界的,上下界记作 Δ 𝑚𝑖𝑛 和 Δ 𝑚ax
第一部分:调整step-size: 这里 ,通常取 步长是有界的,上下界记作 Δ 𝑚𝑖𝑛 和 Δ 𝑚ax 0< 𝜂 − <1< 𝜂 + 𝜂 − =0.5 𝜂 + =1.2 第二部分:调整权重。这里有两种方法,Rprop+和Rprop-。 首先介绍Rprop+(Rprop with Weight-Backtracking)方法。

51 (a)如果 ,那么 (b)如果 ,那么 令 (相当于强制设定 )

52 (c)如果 ,那么 权重回溯(Weight-Backtracking)指的是如果前后两次误差函数的梯度符号改变,说明前一次的更新太大,跳过了一个局部极小值点,那么令

53 接着介绍Rprop-(Rprop without Weight-Backtracking)。 (a)如果 那么
权重更新为

54 RPROP方法只是根据梯度的方向来决定权重调整的方向,而不考虑梯度值的大小,因此不会受到由于不可预见的干扰导致的梯度坏值的影响。由于除了梯度的计算以外,权重的计算实际上也只依赖于弹性更新值(Resilient)的计算,而弹性更新值的计算很简单,因此计算量要比很多其他算法小。此外,一般的调整方法由于激活函数的限制,距离输出层越远的权重调整的越慢,学习能力越弱。由于RPROP算法不受梯度值大小的影响,在各层网络都具有相同的学习能力,而不受与输出层距离的影响。

55 谢 谢! Thank You 方匡南 请扫描加微信


Download ppt "神经网络 Statistical Learning 方匡南 厦门大学教授 博士生导师."

Similar presentations


Ads by Google