最新人工神经网络例题
精品资料
精品资料
1、什么是BP网络的泛化能力?如何保证 BP网络具有较好的泛化能力? ( 5 分) 解:
(1) BP网络训练后将所提取的样本对中的非线性映射关系存储在权值矩阵中, 在其后的工作阶段,当向网络输入训练时未曾见过的非样本数据时, 网络也能完 成由输入空间向输出空间的正确映射。这种能力称为多层感知器的泛化能力,它 是衡量多层感知器性能优劣的一个重要方面。
(2) 网络的性能好坏主要看其是否具有很好的泛化能力,而对泛化能力的测试
不能用训练集的数据进行,要用训练集以外的测试数据来进行检验。在隐节点数 一定的情况下,为获得更好的泛化能力,存在着一个最佳训练次数 to,训练时将
训练与测试交替进行,每训练一次记录一训练均方误差,然后保持网络权值不变, 用测试数据正向运行网络,记录测试均方误差,利用两种误差数据得出两条均方 误差随训练次数变化的曲线,测试、训练数据均方误差曲线如下图1所示。训练 次数to称为最佳训练次数,当超过这个训练次数后,训练误差次数减小而测试误 差则开始上升,在此之前停止训练称为训练不足,在此之后称为训练过度。
图1.测试、训练数据均方误差曲线
2、什么是 LVQ 网络?它与 SOM 网络有什么区别和联系?( 10 分) 解:
( 1)学习向量量化( learning vector quantization ,LVQ )网络是在竞争网络结 构的基础上提出的, LVQ 将竞争学习思想和监督学习算法相结合,减少计算量 和储存量,其特点是网络的输出层采用监督学习算法而隐层采用竞争学习策略, 结构是由输入层、竞争层、输出层组成。
( 2)在 LVQ 网络学习过程中通过教师信号对输入样本的分配类别进行规定, 从 而克服了自组织网络采用无监督学习算法带来的缺乏分类信息的弱点。
自组织映 射可以起到聚类的作用, 但还不能直接分类和识别, 因此这只是自适应解决模式 分类问题中的第一步, 第二步是学习向量量化, 采用有监督方法, 在训练中加入 教师信号作为分类信息对权值进行细调,并对输出神经元预先指定其类别。
3、设计一个神经网络对图一中的三类线性不可分模式进行分类,期望输出向量 分别用(1, -1, -1)T、 (-1, 1, -1) T、 (-1, -1, 1) T 代表三类,输入用样本坐标。要 求:
( 1) 选择合适的隐节点数;
( 2)用 BP 算法训练网络,对图中的 9 个样本进行正确分类。( 15 分)
分析:
对于一个BP神经网络,首先要明确输入,输出, 隐层节点个数。对于
本题,输入是点坐标组成的2*9的矩阵,输入节点个数为2,期望输出向量分别
用(1, -1, -1)T、 (-1,1, -1)T、 (-1, -1, 1)T表示,至于隐层节点的个数并没有确切
的方法,根据经验公式n : ( m为隐层节点数;n为输入层节点数;I 为输出节点数;a为1~10之间的常数),首先确定隐层节点数为 5,逐渐增加 隐层节点数量,然后观察其对训练误差的影响,最终选出最合适的隐层节点数量。
表1. BP神经网络训练、分类结果
隐层节点数
误差精度
训练次数
分类结果正确率
5
0.3
66491
100%
7
0.3
31981
100%
9
0.3
25338
100%
10
0.3
20770
100%
12
0.3
14052
100%
14
0.3
11622
100%
用 matlab 编程,设定训练误差精度为 0.3,学习率 0.2 ,然后进行训练, 记录不同隐层节点数的情况下达到相同的训练精度所需要的训练次数, 当隐层节 点数为 M=5 时,在训练次数为 66491 时,结果达到训练精度; 当隐层节点数 M=7 时,在训练次数到达 31981 时,结果达到训练精度;当隐层节点数 M=9 时 时,在训练次数达到 25338 时,结果达到训练精度;当隐层节点数 M=10 时, 在训练次数达到 20770 时,结果达到训练精度;当隐层节点数 M=12 时,在训 练次数达到 14052 时,结果达到训练精度;当隐层节点数 M=14 时,在训练次 数达到 11622 时,结果达到训练精度,由此可见,在一定范围内,隐层节点数 越多,达到训练精度时所用的训练次数越少, 所用训练时间则越少。
因此选择隐 层节点数为 14 。
学习率 0.3 ,误差精度在 0.1 以下,输出结果和导师信号对比,输出结果都 为正确,正确率达到 100% 。具体程序见附件一或者 BPclassify.m 。
4、试设计一个吸引子为 Xa=(0110) T,Xb=(1001)T 的离散 Hopfield 人工神经 网络。其权值和阈值在 [-1 ,1]区间取值,试求权值和阈值。( 10 分) 解:
吸引子的分布是由网络的权值 (包括阈值) 决定的,设计吸引子的核心就是 如何设计一组合适的权值。
为了使所设计的权值满足要求, 权值矩阵应符合以下 要求:
为保证异步方式工作时网络收敛, W 应为对称阵。
为保证同步方式工作时网络收敛, W 应为非负定对称阵。
保证给定的样本是网络的吸引子,并且要有一定的吸引域 具体设计时,这里采用了联立方程法:
以 4 节点 DHNN 为例,说明权值设计的联立方程法 考虑到 wij = wji ,wii = 0,对稳态 x(t +1) = x(t) 。
对于状态 X a = (1001) T ,各节点净输入应满足:
TOC \o "1-5" \h \z net1=w 12 >0+wi3 >0+w 14X1- T仁w 14- T1>0 (1)
net2=w 12 X+w23 X0+w 24 X1 - T2=w 12+W24- T2<0 (2)
net3=w 13 X1 +w23 X0+w 34 X1 - T3=w 13+w34- T3<0 (3)
net4=w 14 X+W24 X0+w 34X0 ^T4=w14 -T4>0 (4)
对于 X b = (0110)T 状态,各节点净输入应满足:
net1=w12X1+w13X1+w14X0-T1=w12+w13-T1<0 (5)
net2=w 12 X0+w23 X1 +w 24 X0- T2=w 23- T2>0 (6)
net3=w 13 X0+w23 X1 +w 34 X0- T3=w 23- T3>0 (7)
net4=w14X0+w24X1+w34 X1-T4=w24+w34-T4<0 (8)
联立以上 8项不等式,可求出未知量的允许取值范围。
如取 w14 =0.7 ,则由式( 1 )
有-1 <T1<0.7,取 T1= 0.6 ;贝U 由式(4)有-1 <T4<0.7,取 T4= 0.6;取 w12 =0.4 ,
由式(5),有 -1 顶13< 0.2 , 取 w13 = 0.1 ;取 w24 =0.2 由式(2),
有 0.6<T2 <1 , 取 T2 = 0.8 ;由式(6),有 0.8 < W23 W ,取 W23 = 0.9 ;由式
7),
有—1 < T3 < 0.9 , 取 T3 = 0.4 ;由式(3, 8),有-1 < W34 < 0.3 , 取 W34=0.2。
可以验证,利用这组参数构成的DHNN
可以验证,利用这组参数构成的
DHNN 网对于任何初态最终都将演变到两吸引
子 Xa= (1001)T和 Xb=(0110)T
整理权值与阈值为:
-
■0
0.4
0.1
0.7[
-
06〕
0.4
0
0.9
0.2
0.8
W =
0.1
0.9
0
0.3
T =
0.4
■
0.7
0.2
0.3
0 _
1 1
0.6 一
5、下面给出的训练集由玩具兔和玩具熊组成。输入样本向量的第一个分量代表
玩具的重量,第二个分量代表玩具耳朵的长度,教师信号为- 1表示玩具兔,
教师信号为1表示玩具熊
(1)用matlab训练一个感知器,求解此分类问题。(需附上 matlab程序)
(2)用输入样本对所训练的感知器进行验证。(15分)
分析:
对于本题,输入是样本组成的2*8的矩阵,输入节点个数为2,输出由导师
信号可知分为两类。两个输入分量在几何上构成一个二维平面, 输入样本可以用 该平面上的一个点表示,玩具重量和长度在坐标中标出,可以看出明显分布在两 个区域,可以用一条线分开分为两类,在线上方的输出结果应大于 0,在线下方 的输出结果应小于0。
权向量为2*9的矩阵,输入的第一个权向量权值赋予较小的非零随机数, 每 一个新的权向量都由上一个权向量调整,下一次循环第 1个权向量由第9个权 向量来调整。对于这样的样本线性可分,经过几次调整后就稳定到一个权向量,
将样本正确分类的权向量不是唯一的。 具体程序见附件二或者ganzhiqi.m 。输出
分类结果如下图所示
表2.单层感知器训练、分类结果
训练次数
分类结果正确率
4
100%
3
100%
5
100%
图2.感知器在二维平面的分类结果
附件一:
第三题程序
clear all;
%%BP算法初始化
D=[1,-1,-1; i,-i,-i; 1,-1,-1; -1,1,-1; -1,1,-1; -1,1,-1;
0.5,0.125;-1,-1,1; -1,-1,1; -1,-1,1]';
0.5,0.125;
X=[0.75,0.75; 0.75,0.125; 0.25,0.25; 0.25,0.75;
0.75,0.25; 0.25,0.5; 0.5,0.5; 0.75,0.5]'; [N,n]=size(X);
[L,Pd]=size(D);
%M=ceil(sqrt(N*L))+7;ceil 函数为正无穷方向取整 m=14; %隐层节点数
%初始化权矩阵
%输入层到隐层权矩阵
V=rand(N,m);
%隐层到输出层权矩阵
W=rand(m,L);
%开始训练,转移函数选择双极性 Sigmoid 函数
Q=100000;% 训练次数计数器
E=zeros(Q,1);% 误差
Emin=0.3; % 训练要求精度
learnr=0.2; % 学习率
q=1;% 训练次数计数,批训练
%%权值调整
while q<Q
netj=V.'*X;
Y=(1-exp(-netj))./(1+exp(-netj));
netk=W.'*Y;
O=(1-exp(-netk))./(1+exp(-netk));
E(q)=sqrt(sum(sum((D-O)42))/2); % 计算总误差
if E(q)<Emin
break;
end
Delta_o=(D-O).*(1-O.A2)./2;
W=W+learnr*(Delta_o*Y.').'; %隐层和输出层间的权矩阵调整
Delta_y=(W*Delta_o).*(1-Y.A2)./2;
V=V+learnr*(Delta_y*X.').'; %输入层和隐层间的权矩阵调整
q=q+1;
end
% %输出结果
q
O=sign(O) %符号函数取整
A=find(O~=D); %和计算输出和导师信号不同的个数
length(A) %分类结果错误的个数
附件二:
第五题程序
clc;clear % %单层感知器初始化
X=[1,4;1,5;2,4;2,5;3,1;3,2;4,1;4,2];
%输入信号d=[-1;-1;-1;-1;1;1;1;1]; %
%输入信号
w=zeros(2,9);
w(:,1)=rand(2,1); %第一组权值赋予较小的非零随机数 o=zeros(8,1); %输出结果
net=zeros(8,1); % 净输入 net
learnr=0.01; % 学习率为 0.1
n=0; %循环次数
%%调整权值
while n<100 %训练次数最大设为 100 次
for i=1:8
net(i)=X(i,:)*w(:,i); % 计算净输入 net
o(i)=sign(net(i)); %计算输出,转移函数为符号函数
w(:,i+1)=w(:,i)+learnr*(d(i)-o(i))*X(i,:)'; % 调整权值
w(:,1)=w(:,9); %最后一组权值赋值给第一组权 end
n=n+1
if d==o %如果输出等于导师信号,那么训练停止
break
end
end
%%结果输出
x1=[1,1,2,2]; %将两组数据在图中标出 y1=[4,5,4,5];
x2=[3,3,4,4];
y2=[1,2,1,2];
scatter(x1,y1,'r')% 画点
hold on;
scatter(x2,y2,'b')
x=-1:0.01:5;
y=-w(1,1)/w(2,1)*x;% 得到训练过后的权都一样,取出第一组权确定直线,将两 组数据分开
hold on;
plot(x,y)
Welcome To
Download !!!
欢迎您的下载,资料仅供参考!
- 最新人工神经网络例题 相关文章: