《第5章:神经网络学习.pdf》由会员分享,可在线阅读,更多相关《第5章:神经网络学习.pdf(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章:神经网络学习 机器学习与数据挖掘团队 本章内容本章内容 二、神经网络的发展历史 三、M-P神经元模型 一、神经网络的定义 四、单层感知机 五、多层前馈神经网络 六、深层神经网络 神经网络的命名: 神经网络( Neural Networks ) 人工神经网络( Artificial Neural Networks ) 人工神经系统( Artificial Neural Systems) 神经计算机(Neural Computers) 自适应系统(Adaptive Systems) 自适应网(Adaptive Networks) 联结主义(Connectionisms) 一、神经网络的定义
2、一、神经网络的定义 “神经网络是由具有适应性的简单单元组成的广泛并行互联 的网络, 它的组织能够模拟生物神经系统对真实世界物体所作 出的反应。” Kohonen, 1988 机器学习中的神经网络通常是指“神经网络学习” ,或者 说是机器学习与神经网络两个学科的交叉部分。 既然神经网络的研究是由试图模拟生物神经系统受启发而来 的。因此,有必要先来看看生物神经系统的工作过程: 一、神经网络的定义一、神经网络的定义 生物神经系统:每个神经元通过轴突与其他相邻的神经元 相连,当神经元受到刺激而“兴奋”时,就会向相连的神 经云传递神经脉冲,从而改变这些神经元内的电位;如果 神经元的电位超过一个“阈值”,
3、那么它就会被激活,即 “兴奋”起来,再向其它相连的神经元传递神经脉冲。 一、神经网络的定义一、神经网络的定义 可以说可以说,神经网络的发展是非常曲折的神经网络的发展是非常曲折的,从诞生到从诞生到 现在现在,几经兴衰几经兴衰。大体上大体上,可以将其发展历史分成可以将其发展历史分成 如下五个时期:如下五个时期: 萌芽期萌芽期(人类研究自己智能的开始人类研究自己智能的开始1949) 第一次高潮期第一次高潮期(19501968) 反思期反思期(19691982) 第二次高潮期第二次高潮期(19831990) 再认识与应用期再认识与应用期(1991) 二、神经网络的发展历史二、神经网络的发展历史 萌芽期
4、萌芽期(人类研究自己智能的开始人类研究自己智能的开始1949): 人类对神经网络的研究最早可以追溯到人类研究自 己智能的开始。 1943年,心理学家McCulloch和数学家Pitts建立起 了著名的阈值加权和模型,简称为M-P模型。该成 果发表在数学生物物理学会会刊上。 1949年,心理学家Hebb提出神经元之间的突触联 系是可变的假说Hebb学习规律。Hebb学习规 律被认为是神经网络学习算法的里程碑。 这两个重大的研究成果,构成了神经网络萌芽期的 标志。 二、神经网络的发展历史二、神经网络的发展历史 第一次高潮期第一次高潮期(19501968): 1958年, Rosenblatt提出了
5、单层感知机(Perceptron)模 型及其学习规则。 单层感知机的成功标示着神经网络研究的第一高潮 期的到来。 第一高潮期的成功让人们乐观地认为几乎已经找到 了智能研究的关键。因此,许多部门都开始大规模 地投入此项研究,希望尽快占领神经网络研究的制 高点。 二、神经网络的发展历史二、神经网络的发展历史 反思期(反思期(19691982): 1969年,正当人们兴奋不已的时候,Minsky和 Papert发表了Perceptrons一书, 明确指出:单层 感知机不能解决非线性问题, 多层网络的训练算法 尚无希望。 这一成果的发表标志着人类对神经网络的研究进入 了反思期。很多献身于神经网络研究的
6、科学家的研 究结果很难得到发表,而且是散布在各种杂志之中 ,使得不少有意义的研究成果即使发表了,也很难 被同行看到,著名的BP算法的研究就是一个典型 的例子。 反思期的到来揭示了人类的认识规律:认识-实践 -再认识 。 二、神经网络的发展历史二、神经网络的发展历史 第二次高潮期(第二次高潮期(19831990): 1982年,Hopfield提出了循环网络:引入李雅普诺 夫(Lyapunov)函数作为网络性能判定的能量函数, 建立了神经网络稳定性的判别依据;阐明了神经网 络与动力学的关系;指出用非线性动力学的方法来 研究神经网络的特性、信息是被存放在网络中神经 元的联接权上。 1984年,Ho
7、pfield设计并实现了后来被人们称为 Hopfield网络的电路。较好地解决了著名的TSP问 题,找到了最佳解的近似解,引起了较大的轰动。 Hopfield这两项成果分别于1982和1984年发表在美 国科学院院刊上,标志着神经网络研究第二高潮期 的到来。 二、神经网络的发展历史二、神经网络的发展历史 第二次高潮期(第二次高潮期(19831990): 1985年,Hinton、Sejnowsky、Rumelhart等人所在 的并行分布处理(PDP)小组在Hopfield网络中引入 了随机机制,提出Boltzmann机。 1986年,PDP小组的Rumelhart等研究者重新独立地 提出了多层
8、神经网络的学习算法BP算法,较好 地解决了多层神经网络的学习问题。 1987年,IEEE 在美国加州圣地亚哥召开第一届神 经网络国际会议,宣告了国际神经网络协会正式成 立,掀起了人类向生物学习、研究及应用神经网络 的新热潮。 1990年,国内首届神经网络大会在北京举行。 二、神经网络的发展历史二、神经网络的发展历史 再认识与应用期(再认识与应用期(1991): 90年代初,伴随统计学习理论和SVM的兴起, 神经 网络由于理论不够清楚, 试错性强, 难以训练, 再次 进入低谷。 2006年,Hinton提出了深度信念网络(DBN), 通过“ 预训练+微调”使得深度模型的最优化变得相对容 易。 2
9、012年,Hinton组参加ImageNet竞赛,使用CNN 模型以超过第二名10个百分点的成绩夺得当年竞赛 的冠军。 二、神经网络的发展历史二、神经网络的发展历史 再认识与应用期(再认识与应用期(1991): 2016年3月谷歌人工智能AlphaGo在围棋比赛中4: 1战胜世界围棋冠军李世石;2017年5月,又在浙江 乌镇的围棋峰会上,以3:0完胜我国世界排名第一 棋手柯洁。 2017年1月6日,最强大脑第四季引入“人机大战” 模式,百度研发的人工智能机器人“小度”作为特 别选手参赛,并在比赛中战胜了最强大脑的队长 王峰。 伴随云计算、大数据时代的到来,计算能力的大幅 提升,使得深度学习模型
10、在计算机视觉、自然语言 处理、语音识别等众多领域都取得了较大的成功。 二、神经网络的发展历史二、神经网络的发展历史 最基本的信息处理单元:最基本的信息处理单元:M-P神经元模型神经元模型 输入输入:来自其他个神经云传递过来的输入信号 处理处理:输入信号通过带权重的连接进行传递, 神经 元接受到总输入值将与神经元的阈值进行比较 输出输出:通过激活函数的处理以得到输出 三、三、M M- -P P神经元模型神经元模型 激活函数激活函数 阈值加权和模型阈值加权和模型 激活函数激活函数(Activation Function) :对神经元所获得对神经元所获得 的网络输入的进行变换的网络输入的进行变换,也
11、称为激励函数也称为激励函数、活化活化 函数:函数:o=f(net)。常用的激活函数有:常用的激活函数有: 1、线性函数(、线性函数(Linear Function) f(net)=k*net+c 线性函数只能进行线性变化,不适合用来处理非线性函数只能进行线性变化,不适合用来处理非 线性问题。线性问题。 net o o c 三、三、M M- -P P神经元模型神经元模型 k k 2、非线性斜面函数非线性斜面函数(Ramp Function) if net f(net)=k*netif |net| f(net)= -if net 、均为非负数均为非负数,为阈值为阈值 二值形式:二值形式: 1if
12、net f(net)= 0if net - o net0 三、三、M M- -P P神经元模型神经元模型 4、逻辑斯蒂函数逻辑斯蒂函数(Logistic Function) f(net)=a+b/(1+exp(-d*net) a,b,d为常数为常数。它的饱和值为它的饱和值为a和和a+b。 a=0,b=1,d=1时时,简化为简化为最简单的形式:最简单的形式: f(net)= 1/(1+exp(-net) a+b o (0,c)net a c=a+b/2 三、三、M M- -P P神经元模型神经元模型 4、逻辑斯蒂函数逻辑斯蒂函数(Logistic Function) 逻辑斯蒂函数形如逻辑斯蒂函数
13、形如S S,也叫也叫S S形函数;将较大范围形函数;将较大范围 变化的输入值挤压到变化的输入值挤压到(0 0, ,1 1)的输出值范围内的输出值范围内,因因 此也叫挤压函数;有较好的增益控制能力此也叫挤压函数;有较好的增益控制能力,也叫也叫 增益控制函数增益控制函数。 此时的此时的M M- -P P神经元模型神经元模型 就是一个逻辑斯蒂就是一个逻辑斯蒂 回归模型回归模型。 a+b o (0,c)net a c=a+b/2 三、三、M M- -P P神经元模型神经元模型 四、单层感知机四、单层感知机 单层感知机的定义单层感知机的定义 单层感知机只拥有一层M-P神经元, 即只包含输入 层和输出层,
14、输入层接受外界输入信号后传递给输 出层, 输出层是M-P神经元,进行激活处理。 比如,下图所示的M-P神经元模型,就是一个最简 单的单层感知机,输出层只有一个神经元。 四、单层感知机四、单层感知机 单层感知机的学习规则:单层感知机的学习规则: 给定训练数据集,单层感知机的权重 与阈值 可以很容易通过学习得到。 在单层感知机中,神经元的阈值可看作一个固定 输入为-1的“哑结点”所对应的连接权重,这 样,权重和阈值的学习就统一为权值的学习了。 对训练样例, 若当前感知机的输出为, 则感知 机权重调整规则为: 其中为学习率。 若感知机对训练样例预测正确,则感知机不发 生变化;否则根据错误程度进行权重
15、的调整。 四、单层感知机四、单层感知机 单层感知机的学习能力:单层感知机的学习能力: 尽管单层感知机能够非常容易地实现逻辑与、或、 非运算,但其学习能力还是非常有限。 事实上,逻辑与、或、非运算问题都是线性可分的 问题。可以证明Minsky and Papert, 1969,若二分 类问题是线性可分的,即存在一个线性超平面能将 它们分开,则感知机的学习过程一定会收敛,否则 感知机的学习过程将会发生振荡,甚至不能解决异 或这样简单的非线性可分问题。 要解决非线性可分问题,就需要使用多层功能神经 元。比如两层感知机,输入层与输出层之间的一层 神经元,被称为隐含层,隐含层和输出层神经元都 是拥有激活
16、函数的功能神经元。 五、多层前馈神经网络五、多层前馈神经网络 多层前馈神经网络的定义:多层前馈神经网络的定义: 多层前馈神经网络又名多层前馈全互连接网。 多层是指:多层是指:除了输入层和输出层以外,还存在一个 或者多个隐含层。 前馈是指:前馈是指:外界信号从输入层,经由隐含层到达输 出层,不存在信号的逆向传播。 全互连接是指:全互连接是指:每层神经元与下层神经元全互连接 ,神经元之间不存在同层连接, 也不存在跨层连 接。 五、多层前馈神经网络五、多层前馈神经网络 多层前馈神经网络的定义:多层前馈神经网络的定义: 多层前馈网的结构图多层前馈网的结构图 五、多层前馈神经网络五、多层前馈神经网络 多
17、层前馈神经网络的定义:多层前馈神经网络的定义: 其中输入层神经元接收外界输入,隐含层与输出层 神经元对信号进行加工,最终结果由输出层神经元 输出。也就是说,输入层神经元只是接受输入,不 进行函数处理,隐含层与输出层才进行函数处理。 神经网络参数学习就是根据训练数据来调整神经元 之间的连接权以及每个功能神经元的阈值。换言之 ,神经网络学到的东西都存放在连接权与阈值中。 五、多层前馈神经网络五、多层前馈神经网络 多层前馈神经网络的学习:多层前馈神经网络的学习: 多层前馈神经网络的表达能力比单层感知机要强得 多。要学习多层前馈神经网络,单层感知机的学习 规则是远远不够的,需要更强大的学习算法。误差
18、逆传播(Error Back Propagation,简称BP)算法就 是其中最杰出的代表,它是迄今最成功的神经网络 学习算法。 现实任务中使用神经网络时,大多是在使用BP算 法进行训练。需要指出的是,BP算法不仅可用于 多层前馈神经网络,还可用于其他类型的神经网络 ,比如递归神经网络。但通常说BP网络的时候一 般是指用BP算法训练的多层前馈神经网络。 五、多层前馈神经网络五、多层前馈神经网络 BP算法:算法: 基于梯度下降法则的基于梯度下降法则的 公式推导可参阅:公式推导可参阅: 周志华周志华, 2016; Mitchell, 2003。 五、多层前馈神经网络五、多层前馈神经网络 BP算法的
19、基本过程:算法的基本过程: BP算法的基本工作过程大致可以分为三个阶段: 1)信号的前向传播阶段:在这个阶段,要求计算 出隐含层和输出层中每一神经元的网络净输入和网 络输出。 2)误差的逆向传播阶段:在这个阶段,要求计算 出输出层和隐含层中每一神经元的误差。 3)权值和阈值的更新阶段:在这个阶段,要求更 新所有连接权的权值和所有M-P神经元的阈值。 五、多层前馈神经网络五、多层前馈神经网络 BP算法可能面临的问题:算法可能面临的问题: 1)结构学习问题: 多层前馈神经网络包括:输入层、输出层、一个或 多个隐含层。输入层神经元的个数由输入的数据维 度(连续属性)和编码方法(离散属性)确定;输 出
20、层神经元的个数由待分类的类别数目和编码方法 确定,比如4类问题的二进制编码需要2个神经元。 Hornik et al. , 1989证明:只需要一个包含足够多 神经元的隐含层,多层前馈神经网络就能以任意精 度逼近任意复杂度的连续函数。 如何确定隐含层神经元的个数仍然是个悬而未决问 题。实际应用中通常是根据经验来确定或者靠“试 错法”来调整。 五、多层前馈神经网络五、多层前馈神经网络 BP算法可能面临的问题:算法可能面临的问题: 2)初始化问题: 在BP算法中,连接权和偏置在网络学习之前,都 需要将其初始化为不同的小随机数。“不同”保证 网络可以学习;“小随机数”可以防止其值过大而 提前进入饱和
21、状态,达到局部极小值。 解决办法:重新初始化。 五、多层前馈神经网络五、多层前馈神经网络 BP算法可能面临的问题:算法可能面临的问题: 3)步长设置问题: BP网络的收敛是基于无穷小的修改量,学习率控 制着算法每一轮迭代中的更新步长。 步长太小,收敛速度就会过慢 步长太大,又可能会导致网络的不稳定、甚至瘫痪 自适应步长,让步长随着网络的训练而不断变化 五、多层前馈神经网络五、多层前馈神经网络 BP算法可能面临的问题:算法可能面临的问题: 4)权值与阈值的更新问题: 基本的BP算法采用的是样例更新,即每处理一个 训练样例就更新一次权值与阈值。样例更新的缺陷 :参数更新频繁, 不同样例可能抵消,
22、需要迭代的次 数较多。另外,训练样例的输入顺序对训练结果有 较大影响,它更“偏爱”较后输入的样例。而给训 练样例安排一个适当的顺序,又是非常困难的。 解决的办法就是采用周期更新,即每处理一遍所有 的训练样例才更新一次权值与阈值。但在很多实际 任务中,周期更新的累计误差下降到一定程度后, 进一步下降会非常缓慢,这时样例更新往往会获得 较好的解,尤其当训练集非常大时效果更明显。 五、多层前馈神经网络五、多层前馈神经网络 BP算法可能面临的问题:算法可能面临的问题: 5)过拟合问题: 神经网络由于强大的表示能力,经常遭遇过拟合。 具体表现为:训练误差持续降低,但测试误差却可 能上升。 缓解过拟合的策
23、略包括早停和正则化。早停就是在 训练过程中, 若训练误差降低, 但验证误差升高, 则 停止训练;正则化就是在误差目标函数中增加一项 描述网络复杂程度的部分,比如连接权值与阈值的 平方和。 六、深层神经网络六、深层神经网络 深层神经网络的定义深层神经网络的定义 随着云计算、大数据时代的到来,计算能力的大幅 提高可缓解训练低效性,训练数据的大幅增加则可 降低过拟合风险,因此,以深度学习(deep learning) 为代表的复杂模型开始受到人们的关注。 典型的深度学习模型就是很深层的神经网络:包含 2个以上隐含层的神经网络。 六、深层神经网络六、深层神经网络 深层神经网络的定义深层神经网络的定义
24、模型复杂度 增加隐含层神经元的数目 (模型宽度) 增加隐含层的数目(模型深度) 从增加模型复杂度的角度来看,增加隐含层的数目 比增加隐含层神经元的数目更有效。这是因为增加 隐含层的数目不仅增加了拥有激活函数的神经元数 目,还增加了激活函数嵌套的层数。 深层模型的难点问题 多隐含层网络难以直接用经典算法(例如标准的 BP算法)进行训练, 因为误差在多隐含层内逆传播 时,往往会发散,而不能收敛到稳定状态。 六、深层神经网络六、深层神经网络 深层神经网络的学习深层神经网络的学习 预训练预训练+微调微调 预训练:无监督逐层训练是多隐含层网络训练的有效训练 手段,每次训练一层隐含层结点,训练时将上一层隐
25、含层 结点的输出作为输入,而本层隐含层结点的输出作为下一 层隐含层结点的输入,这称为“预训练”。 微调:预训练全部完成后,再对整个网络进行微调训练。 微调一般使用BP算法。 例子:深度信念网络(DBN) Hintonet al. , 2006 。 结构:每一层都是一个受限Boltzmann机。 训练:无监督预训练+BP算法微调。 分析:预训练+微调的做法可以视为将大量参数进行分组, 对每组先找到局部看起来比较好的设置,然后再基于这些 局部较优的结果联合起来进行全局寻优。 六、深层神经网络六、深层神经网络 深层神经网络的学习深层神经网络的学习 权共享权共享 一组神经元共享相同的连接权值。 例子:
26、卷积神经网络(CNN) LeCun and Bengio,1995; LeCun et al. , 1998。 结构:CNN复合多个卷积层和采样层对输入信号进行加工 ,然后在连接层实现与输出目标之间的映射。 训练:BP算法。 分析:在训练中,无论是卷积层还是采样层,其每一组神 经元(即图下中的每个平面)都共享相同的连接权,从而 大幅减少了需要训练的参数数目;另外,在CNN中通常将 Sigmoid 激活函数替换为修正的线性函数。 六、深层神经网络六、深层神经网络 深层神经网络的学习深层神经网络的学习 卷积层:卷积层:每个卷积层包含多个特征映射,每个特征映射是 一个由多个神经元构成的“平面”,通过
27、一种卷积滤波器 提取输入的一种特征。 采样层:采样层:也叫“汇合层”,其作用是基于局部相关性原理 进行亚采样,从而在减少数据量的同时保留有用信息。 连接层:连接层:每个神经元被全互连接到上一层每个神经元, 本质 就是传统的神经网络,其目的是通过连接层和输出层的连 接完成识别任务。 卷积神经卷积神经 网络用于网络用于 手写数字手写数字 识别识别 LeCun et al., 1998 六、深层神经网络六、深层神经网络 深度学习的理解深度学习的理解 深度学习通过多层处理,逐渐将初始的低层特征表示转化 为高层特征表示后,用“简单模型”即可完成复杂的分类 学习等任务。由此可将深度学习理解为进行“特征学习” (feature learning) 或“表示学习” (representation learning)。 非深度学习技术用于解决现实任务时,描述样本的特征通 常需由人类专家来手工设计,这称为“特征工程” (feature engineering)。众所周知,特征的好坏对模型的泛化性能有 至关重要的影响,要人类专家手工设计出好特征并非易事 ;而特征学习则通过深度学习技术自动产生好特征,这使 得机器学习向“全自动数据分析”又前进了一步。