1.09k likes | 1.72k Views
第 10 章 神经网络算法 -BP. 1981 年生物学家格若根( W . Grogan )和维什( W . Wirth )发现了两类蚊子 ( 或飞蠓 midges) .他们测量了这两类蚊子每个个体的翼长和触角长,数据如下:. 一、引例. 翼长 触角长 类别 1.78 1.14 Apf 1.96 1.18 Apf 1.86 1.20 Apf 1.72 1.24 Af 2.00 1.26 Apf 2.00 1.28 Apf
E N D
1981年生物学家格若根(W. Grogan)和维什(W.Wirth)发现了两类蚊子(或飞蠓midges).他们测量了这两类蚊子每个个体的翼长和触角长,数据如下: 一、引例 • 翼长 触角长 类别 • 1.78 1.14 Apf • 1.96 1.18 Apf • 1.86 1.20 Apf • 1.72 1.24 Af • 2.00 1.26 Apf • 2.00 1.28 Apf • 1.96 1.30 Apf • 1.74 1.36 Af • 翼长 触角长 类别 • 1.64 1.38 Af • 1.82 1.38 Af • 1.90 1.38 Af • 1.70 1.40 Af • 1.82 1.48 Af • 1.82 1.54 Af • 2.08 1.56 Af
一、引例 1989年美国大学生数学建模问题 • 问:若抓到三只新的蚊子,它们的触角长和翼长分别为(1.24,1.80);(1.28,1.84);(1.40,2.04).问它们应分别属于哪一个种类? • 把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 6个蚊子属于 APf类;用黑点“·”表示;9个蚊子属 Af类;用小圆圈“。”表示. • 得到的结果见图1 • 图1飞蠓的触角长和翼长
一、引例 作一直线将两类飞蠓分开 • 思路: • 例如;取A=(1.44,2.10)和 B=(1.10,1.16),过A B两点作一条直线: • y= 1.47x - 0.017 • 其中x表示触角长;y表示翼长. • 分类规则:设一个蚊子的数据为(x, y) • 如果y≥1.47x - 0.017,则判断蚊子属Apf类; • 如果y<1.47x - 0.017;则判断蚊子属Af类.
一、引例 • 分类结果:(1.24,1.80),(1.28,1.84)属于Af类;(1.40,2.04)属于 Apf类. 图2 分类直线图
一、引例 A=(1.44,2.10) •缺陷:根据什么原则确定分类直线? • 若取A=(1.46,2.10), B=(1.1,1.6)不变,则分类直线变为 y=1.39x+0.071 分类结果变为:(1.24,1.80),(1.40,2.04) 属于Apf类;(1.28,1.84)属于Af类 • 哪一分类直线才是正确的呢?
一、引例 • 再如,如下的情形能不能用分类直线的办法呢? 方法: 马氏距离判别法、Bayes判别法等 • 新思路:将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。
前言 所谓人工神经网络就是基于模仿生物大脑的结构和功能而构成的一种信息处理系统。 粗略地讲,大脑是由大量神经细胞或神经元组成的。每个神经元可看作是一个小的处理单元,这些神经元按某种方式连接起来,形成大脑内部的生理神经元网络。 这种神经元网络中各神经元之间联结的强弱,按外部的激励信号做自适应变化,而每个神经元又随着所接收到的多个接收信号的综合大小而呈现兴奋或抑制状态。
生物神经网 • 基本工作机制: • 一个神经元有两种状态——兴奋和抑制 • 平时处于抑制状态的神经元,当接收到其它神经元经由突触传来的冲击信号时,多个输入在神经元中以代数和的方式叠加。 • 进入突触的信号会被加权,起兴奋作用的信号为正,起抑制作用的信号为负。 • 如果叠加总量超过某个阈值,神经元就会被激发进入兴奋状态,发出输出脉冲,并由轴突的突触传递给其它神经元。
人工神经网络的生物学基础 信息输入 信息传播与处理 信息传播与处理(整合) 信息输出 信息传播与处理结果:兴奋与抑制
神经网络的基本思想 • 人工神经元的基本构成:
人工神经元-信息处理单元 信息输入
人工神经元-信息处理单元 信息传播与处理:加权求和
人工神经元-信息处理单元 信息传播
人工神经元-信息处理单元 信息传播与处理
人工神经元-信息处理单元 信息输出
神经元的传递函数 • f(X)是激发函数;它可以是线性函数,也可以是非线性函数.例如,若取激发函数为符号函数
神经元的传递函数 S型传递函数
x1 oj x2 -1 • 注:一个神经元含有与输入向量维数相同个数的权系数,若将阈值看作是一个权系数,-1是一个固定的输入,另有n-1个正常的输入,则式也可表示为:‘ • 参数识别:假设函数形式已知,则可以从已有的输入输出数据确定出权系数及阈值。
简单原理 人工神经网络是根据人的认识过程而开发出的一种算法。 假如我们现在只有一些输入和相应的输出,而对如何由输入得到输出的机理并不清楚,那么我们可以把输入与输出之间的未知过程看成是一个“网络”,通过不断地给这个网络输入和相应的输出来“训练”这个网络,网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。这样,当训练结束后,我们给定一个输入,网络便会根据自己已调节好的权值计算出一个输出。这就是神经网络的简单原理。
神经网络的作用 • 网络说话 • 人们把一本教科书用网络把它读出来(当然需要通过光电,电声的信号转换);开始网络说的话像婴儿学语那样发出“巴、巴、巴”的声响;但经过B-P算法长时间的训练竟能正确读出英语课本中 90%的词汇. • 从此用神经网络来识别语言和图象形成一个新的热潮。
人工神经网络基本特点 (1)可处理非线性 (2)并行结构.对神经网络中的每一个神经元来说;其运算都是同样的.这样的结构最便于计算机并行处理. (3)具有学习和记忆能力.一个神经网络可以通过训练学习判别事物;学习某一种规律或规则. (4)对数据的可容性大.在神经网络中可以同时使用量化数据和质量数据(如好、中、差、及格、不及格等). (5)神经网络可以用大规模集成电路来实现.如美国用 256个神经元组成的神经网络组成硬件用于识别手写体的邮政编码.
人工神经网络的分类 • 按网络连接的拓扑结构分类: • 层次型结构:将神经元按功能分成若干层,如输入层、中间层(隐层)和输出层,各层顺序相连 单纯型层次型结构
人工神经网络的分类 • 按网络内部的信息流向分类: • 前馈型网络:网络信息处理的方向是从输入层到各隐层再到输出层逐层进行 前馈型网络
神经网络的学习规则 关键在于如何决定每一神经元的权值。 常用的学习规则有以下几种: • Hebb规则 • Delta规则 (最小均方差规则) • 反向传播学习方法 • Kohonen学习规则(用于无指导训练网络 ) • Grosberg学习方法
神经网络常用模型 共70多种,具有代表性的有: (1)感知器(Perceptron) (2)多层前馈(BP)网络 (3)Hopfield网络 (优化) (4)Boltzmann机(在BP中加入噪声) (5)双向联想记忆网络(快速存储) ……
人工神经网络的工作原理 • 人工神经网络的工作原理到底是怎样的,我们可以从一个最简单的网络来剖析,一定程度上打开这个黑匣子。 • 1958年,美国心理学家Frank Rosenblatt提出一种具有单层计算单元的神经网络,称为Perceptron,即感知器。 • 感知器是模拟人的视觉接受环境信息,并由神经冲动进行信息传递的层次型神经网络。 • 单层感知器的结构与功能都非常简单,以至于在解决实际问题时很少采用,但由于它在神经网络研究中具有重要意义,是研究其它网络的基础,常作为学习神经网络的起点。
输出类别指示 输入样本 j=1,2,…,m 人工神经网络的工作原理 • 感知器模型(单层前向神经网络)
人工神经网络的工作原理 • 感知器模型 • 净输入: • 输出为: • Tj为阀值,sgn为符号函数
x1 oj x2 -1 人工神经网络的工作原理(C.) • 感知器模型 • 具体的: • 设输入向量X=(x1 ,x2)T • 输出: • 则由方程w1jx1+w2jx2-Tj=0确定了二维平面上的一条分界线
人工神经网络的工作原理 • 感知器模型 • 具体的: • 则由方程w1jx1+w2jx2-Tj=0确定了二维平面上的一条分界线(Why?) • w1j x1+w2j x2 – Tj = 0 • w1j x1 = Tj - w2j x2 • x1 = (Tj -w2j x2) / w1j = - ( w2j/ w1j ) x2 +Tj / w1j = ax2 +c
人工神经网络的工作原理 • 感知器模型 • 具体的: • 这样的话,我们就可以得到
一、引例 作一直线将两类飞蠓分开 • 思路: • 例如;取A=(1.44,2.10)和 B=(1.10,1.16),过A B两点作一条直线: • y= 1.47x - 0.017 • 其中x表示触角长;y表示翼长. • 分类规则:设一个蚊子的数据为(x, y) • 如果y≥1.47x - 0.017,则判断蚊子属Apf类; • 如果y<1.47x - 0.017;则判断蚊子属Af类.
x1 oj x2 -1 人工神经网络的工作原理 • 感知器模型 • 一个最简单的单计算节点感知器具有分类功能。其分类原理是将分类知识存储于感知器的权向量(包含了阈值)中,由权向量确定的分类判决界面将输入模式分为两类。 单层感知器的局限性是:仅对线性可分问题具有分类能力。
神经网络研究的发展 (1)第一次热潮(40-60年代未) 1943年,美国心理学家W.McCulloch和数学家W.Pitt 在提出了一个简单的神经元模型,即MP模型。1958年,F.Rosenblatt等研制出了感知机(Perceptron)。 (2)低潮(70-80年代初): (3)第二次热潮 1982年,美国物理学家J.J.Hopfield提出Hopfield模型,它是一个互联的非线性动力学网络,他解决问题的方法是一种反复运算的动态过程,这是符号逻辑处理方法所不具备的性质. 1987年首届国际ANN大会在圣地亚哥召开,国际ANN联合会成立,创办了多种ANN国际刊物。
经典的人工神经网络算法 • BP算法 • BP (Error Back Proragation,BP)误差反向传播算法 • 它是有指导训练的前馈多层网络训练算法,是靠调节各层的加权,使网络学会由输入输出对组成的训练组 • 执行优化的方法是梯度下降法 • BP算法是使用非常广泛的一种算法,最常用的转移函数是Sigmoid函数
梯度法 • 考虑无约束问题, 其中函数f(x)一阶连续可导,梯度指对各个自变量的偏导数依次排列所成的向量。 梯度法就是在点x处以f(x)的负梯度方向进行搜索的一种优化方法,其迭代公式, 其中, 是从 出发的搜索方向,取最速下降方向
经典的人工神经网络算法 • BP算法 • BP 网络模型 输出层 隐层 输入层
BP神经网络模型 网络学习的目的是要使网络产生尽可能逼近理想的反应。网络受训练时,不断将网络的输出数据与理想数据相比较,并按学习规格改变权重,直到网络的输出数据对所有训练数据与理想输出数据之差在要求的误差范围之内。 简单网络
经典的人工神经网络算法 • BP算法 • 学习的过程: • 正向传播: • 输入样本---输入层---各隐层---输出层 • 判断是否转入反向传播阶段: • 若输出层的实际输出与期望的输出(教师信号)不符 • 误差反传 • 误差以某种形式在各层表示--修正各层单元的权值 • 网络输出的误差减少到可接受的程度 • 进行到预先设定的学习次数为止
目标输出向量为(理论上的) 网络输出向量为(实际上的) 简单网络的B-P算法 • 假设有P个训练样本,即有P个输入输出对(Ip, Tp),p=1,…,P, 其中输入向量为
(3) (p=1,…,P) (2) (4) • 称为学习的速率一般取值为0.1~0.3 简单网络的B-P算法 通常理论与实际有误差,网络学习则是指不断比较,并根据极小原则修改参数wij,使误差平方和达最小: 记 记wij为从输入向量的第j (j=1,…,m) 个分量到输出向量的第i (i=1,…,n)个分量的权重。 • Delta学习规则: 表示递推一次的修改量,则有
(6) 简单网络的B-P算法 ipm= -1 , wim= (第i个神经元的阈值) (5) 注:由(1) 式,第i个神经元的输出可表示为 特别当f是线性函数时
最小 • 训练用的性能指标为 求E的最小值,只需考虑EP达到最小的递推算法
(2)设 表示第k层第i神经元所接收的信息 表第k层第i个元的输出 假设: 多层前馈网络 有些文献将输入层作为一层 (l)输入层不计在层数之内,它有N0个神经元.设网络共有L层;输出层为第L层;第 k层有Nk个神经元. wk(i,j) 表示从第k-1层第j个元到第k层第i个元的权重,
(5) 表示输入的第j个分量. 假设: (3)设层与层间的神经元都有信息交换(否则,可设它们之间的权重为零);但同一层的神经元之间无信息传输. (4) 设信息传输的方向是从输入层到输出层方向;因此称为前向网络.没有反向传播信息.