神经网络及应用实验报告.docx神经网络及应用实验报告
实验二、基于BP网络的多层感知器
—:实验目的:
理解多层感知器的工作原理
通过调节算法参数了解参数的变化对于感知器训练的影响
了解多层感知器局限性
二:实验原理:
的基本思想:信号的正向传播 误差的反向传播
-信号的正向传播:输入样本从输入层传入,经各隐层逐层处理后,传向输出层。 -误差的反向传播:将输入误差以某种形式通过隐层向输入层逐层反传,并将误 差分摊给各层的所有单元,从而获得各层单元的误差信号来作为修正各单元权值 的依据。
基木算法的多层感知器模型:
输出层
隐层
输入层
,=(必・乃••…儿••…儿y
输出层
Ok =/(nett) r = .…・/
fn
neik =工“处兀 k = /
J・0
隐层
Vj =/(netp 7 = .....m
n
net j =工片兀 j = m
i-O
变换函数f(x)为连续、可导的单极性Sigmoid函数
/(a)=—-—
八丿l + e'x
/,(X)= /(A-)[1-/(.V)]
B卩学习算法的推导:
卅网络输出与期望输出不等时,存在输出误差E
将上面的误差定义式展开至隐层,有
£ = |Z[^-Anet^]2
-匕1
进一步展开至输入层,有
1 I I m I * 1^1 m n
E =二工 心-/!工M^/(net.)]=;工泌-/[工叫/工岭兀)]
■ jt=l I j=0 」 -Ar=l I J=0 i=0
调整权值的原则是使误差不断地减小,因此应使权值的调整量与误差的梯度下降 成正比,即
A dE
j = 0,・・・・,〃?: k = 0丄2 •…,/
A dE
11
j = 0・1・2・・・・,〃】: k = •…・/
ne(o, 1)表示比例系数,
在训练屮反应学习速率
BP算法属于5学习规则类,这类算法被称为误差的梯度下降(Gradient Descent)
算法。
V实验步骤〉
,实现解决该问题的单样本训练BP网络,设直一•个停止迭代的谋差Emin和 最大迭代次数。在调试过程屮,通过不断调整隐层节点数,学习率找到收敛速度快 且谋差小的一组参数。产生均匀分布在区间r-4, 4]的测试样本,输入建立的模型得到输 出,与Hermit^项式的期望输出进行比较计算总谋差(运行5次,取平均值),并记录下 每次迭代结束吋的迭代次数。
(要求谋差计算使用RME, )
程序如下:
function dyb %单样本程序
clc;
close all;
clear;
xO二[1:101;-4:0. 08:4];%样本 101 个
x0(l, :)=-1;
x=x0,;
yuzhi=0. 1;%阈值
j二input('请输入隐层节点数j二’);%隐层节点数
n=input(,请输入学习效率n二’);%学习效率 w=rand(l,j);
w=[yuzhi,w]; %输出层阈值
v=rand(2, j);
v(l, :)=yuzhi;%隐层阈值
err=zeros (1, 101);
wucha=0;
zhaosheng=0. 01*randn(l, 101);%噪声
erro=[];
ERRO二[];%i吴差,为画收敛曲线准备
Emin=0. 1;
d二zeros (1, 101);
for m=l:101
d(m) =hermit (x (m, 2));%期望
end;
o二zeros (1, 101);
net j二zeros (1,j);
net二zeros (1,j);
I尸1;
q二 1;
azc=0;
EICS 二0;
for z=l:5
while q<30000
Erme=0;
for p=l:101
y=zeros(l, j);
for i二l:j
(l, i)=x(p, :)*v(:, i);
y (1, i)=l/(l+exp(-netj (1, i)));
end;
y二[T yl;
o(p)=w*y,+zhaosheng(p) 噪声 wucha = d(p)-o(p);
err(1, p)=l/2*wucha 2;
erro=[erro, wcha];
for m=l:j+1
w(l, m)二w(l, m) +n*wucha*y (1, m);
end;
for m=l:j
v(:, m) =v(:, m) +n*wucha*w(1, m)*y (1, m)*(1 -y (1, m)) *x (p,:) end
神经网络及应用实验报告 来自淘豆网m.daumloan.com转载请标明出处.