第十一章 人工神经网络建模(Artificial Neuron Nets) 一、引例 1981年生物学家格若根(W. Grogan)和维什(W.Wirth)发现了两类蚊子(或飞蠓midges).他们测量了这两类蚊子每个个体的翼长和触角长,数据如下: 翼长 触角长 类别 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 翼长 触角长 类别 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
问:如果抓到三只新的蚊子,它们的触角长和翼长分别为(l. 24,1. 80); (l. 28,1. 84);(1. 40,2 解法一: 把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 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.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类 哪一分类直线才是正确的呢? 因此如何来确定这个判别直线是一个值得研究的问题.一般地讲,应该充分利用已知的数据信息来确定判别直线.
再如,如下的情形已经不能用分类直线的办法: 新思路:将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。
二、神经元与神经网络 大脑可视作为1000多亿神经元组成的神经网络 神经元的解剖图 图3 神经元的解剖图
神经元的信息传递和处理是一种电化学活动.树突由于电化学作用接受外界的刺激;通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元.从控制论的观点来看;这一过程可以看作一个多输入单输出非线性系统的动态过程 神经网络研究的两个方面 从生理上、解剖学上进行研究 从工程技术上、算法上进行研究
三、人工神经网络(Artificial Neuron Nets, 简称ANN) 神经元的数学模型 图4神经元的数学模型
其中x=(x1,…xm)T 输入向量,y为输出,wi是权系数;输入与输出具有如下关系: θ为阈值,f(X)是激发函数;它可以是线性函数,也可以是非线性函数.
例如,若记 取激发函数为符号函数
则 S型激发函数:
或 注:若将阈值看作是一个权系数,-1是一个固定的输入,另有m-1个正常的输入,则(1)式也可表示为: (1)‘ (1)‘ 参数识别:假设函数形式已知,则可以从已有的输入输出数据确定出权系数及阈值。
2、神经网络的数学模型 众多神经元之间组合形成神经网络,例如下图的含有中间层(隐层)的B-P网络 图5 带中间层的B-P网络
3、量变引起质变------神经网络的作用 (1)蚂蚁群 一个蚂蚁有50个神经元,单独的一个蚂蚁不能做太多的事;甚至于不能很好活下去.但是一窝蚂蚁;设有 10万个体,那么这个群体相当于500万个神经元(当然不是简单相加,这里只为说明方便而言);那么它们可以觅食、搬家、围攻敌人等等.
(2)网络说话 人们把一本教科书用网络把它读出来(当然需要通过光电,电声的信号转换);开始网络说的话像婴儿学语那样发出“巴、巴、巴”的声响;但经过B-P算法长时间的训练竟能正确读出英语课本中 90%的词汇. 从此用神经网络来识别语言和图象形成一个新的热潮.
4、人工神经网络的基本特点 (1)可处理非线性 (2)并行结构.对神经网络中的每一个神经元来说;其运算都是同样的.这样的结构最便于计算机并行处理. (3)具有学习和记忆能力.一个神经网络可以通过训练学习判别事物;学习某一种规律或规则.神经网络可以用于联想记忆.
(4)对数据的可容性大.在神经网络中可以同时使用量化数据和质量数据(如好、中、差、及格、不及格等). (5)神经网络可以用大规模集成电路来实现.如美国用 256个神经元组成的神经网络组成硬件用于识别手写体的邮政编码.
四、反向传播算法(B-P算法) Back propagation algorithm 算法的目的:根据实际的输入与输出数据,计算模型的参数(权系数) 1.简单网络的B-P算法
图6 简单网络
假设有P个训练样本,即有P个输入输出对 (Ip, Tp),p=1,…,P, 其中输入向量为 , 目标输出向量为(实际上的)
网络输出向量为 (理论上的) 记wij为从输入向量的第j (j=1,…,m) 个分量到输出向量的第i (i=1,…,n)个分量的权重。通常理论值与实际值有一误差,网络学习则是指不断地把与比较,并根据极小原则修改参数wij,使误差平方和达最小: (p=1,…,P) (2)
Delta学习规则: 记 表示递推一次的修改量,则有 (3) (4) 称为学习的速率
注:由(1)‘ 式,第i个神经元的输出可表示为 ipm= -1 , wim= (第i个神经元的阈值) (5) 特别当f是线性函数时 (6)
2.多层前馈网络 图7 多层前馈网络
假设: (l)输入层不计在层数之内,它有N0个神经元.设网络共有L层;输出层为第L层;第 k层有Nk个神经元. (2) 设 表示第k层第i神经元所接收的信息 wk(i,j) 表示从第k-1层第j个元到第k层第i个元的权重, 表第k层第i个元的输出
(3)设层与层间的神经元都有信息交换(否则,可设它们之间的权重为零);但同一层的神经元之间无信息传输. (4) 设信息传输的方向是从输入层到输出层方向;因此称为前向网络.没有反向传播信息. (5) 表示输入的第j个分量.
在上述假定下网络的输入输出关系可以表示为: (7) 其中表示第k层第i个元的阈值.
定理2 对于具有多个隐层的前馈神经网络;设激发函数为S函数;且指标函数取 (8) (9)
则每个训练循环中按梯度下降时;其权重迭代公式为 (10) 表示第-1层第个元对第层第个元输入的第次迭代时的权重
其中 (11) (12)
BP算法 Step1 Step2 Step3 选定学习的数据,p=1,…,P, 随机确定初始权矩阵W(0) 用学习数据计算网络输出 用(10)式反向修正,直到用完所有学习数据.
五.应用之例:蚊子的分类 已知的两类蚊子的数据如表1:
翼长 触角长 类别 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 目标值 0.9 0.1
翼长 触角长 类别 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 目标t 0.1
输入数据有15个,即 , p=1,…,15; j=1, 2; 对应15个输出。 建模:(输入层,中间层,输出层,每层的元素应取多少个?) 建立神经网络
规定目标为: 当t(1)=0.9 时表示属于Apf类,t(2)=0.1表示属于Af类。 设两个权重系数矩阵为:
其中 为阈值 (分析如下: 为第一层的输出,同时作为第二层的输入。
其中, 为阈值, 为激励函数 若令 (作为一固定输入) (阈值作为固定输入神经元相应的权系数) 则有:
取激励函数为
则 = 同样,取 则
具体算法如下: 令p=0 =rand(2,3); =rand(1,3); (2) 根据输入数据利用公式算出网络的输出 (1)随机给出两个权矩阵的初值;例如用MATLAB软件时可以用以下语句: =rand(2,3); =rand(1,3); (2) 根据输入数据利用公式算出网络的输出
= 取
(3)计算 因为 所以 (4)取 (或其他正数,可调整大小) 计算 j=1,2,3
j=1,2,3 和 (5) 计算 j=1,2,3, i=1,2,3,
(6) p=p+1,转(2) 注:仅计算一圈(p=1,2,…,15)是不够的,直到当各权重变化很小时停止,本例中,共计算了147圈,迭代了2205次。 最后结果是:
即网络模型的解为: =