神经网络五个基本的学习算法.docx
- 文档编号:11194522
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:18
- 大小:55.59KB
神经网络五个基本的学习算法.docx
《神经网络五个基本的学习算法.docx》由会员分享,可在线阅读,更多相关《神经网络五个基本的学习算法.docx(18页珍藏版)》请在冰豆网上搜索。
神经网络五个基本的学习算法
五个基本的学习算法:
误差—修正学习;基于记忆的学习;Hebb学习;竞争学习和Boltzmann学习。
误差修正学习植根于最优滤波。
基于记忆的学习通过明确的记住训练数据来进行。
Hebb学习和竞争学习都是受了神经生物学上的考虑的启发。
Boltzmann学习是建立在统计学力学借来的思想基础上。
1.误差修正学习
神经元k的输出信号
表示,
表示的是期望响应或目标
输出比较。
由此产生
表示的误差信号,有
这一目标通过最小化代价函数或性能指标
来实现。
定义如下
也就是说
是误差能量的瞬时值。
这种对神经元k的突触权值步步逼近的调节将持续下去,直到系统达到稳定状态。
这时,学习过程停止。
根据增量规则,在第n时间步作用于突触权值的调节量
定义如下:
2.基于记忆的学习
在一个简单而有效的称作最近邻规则的基于记忆的学习类型中,
局部邻域被定义为测试向量
的直接邻域的训练实例,特别,向量
被称作
的最邻近,如果
这里,
是向量
和
的欧几里德距离。
与最短距离相关的类别,也就是向量
被划分的类别。
3.Hebb学习
我们定义Hebb突触为这样一个突触,它使用一个依赖时间的、
高度局部的和强烈交互的机制来提高突触效率为前突触和后突触活动间的相互关系的一个函数。
可以得出Hebb突触特征的4个重要机制:
时间依赖机制;局部机制;交互机制;关联或相关机制。
4.竞争学习
获胜神经元k的输出信号
被置为1;竞争失败的所有神经元
输出信号被置为0。
这样,我们有
其中,诱导局部域
表示结合所有达到神经元k的前向和反馈输入的动作。
令
表示连接输入节点j到神经元k的突触权值。
假定每个神经元被分配固定量的突触权值,权值分布在它的节点之中;也就是
然后神经元通过将突触权值从它的不活跃输入移向活跃输入来进行学习。
如果神经元对一个特定输入模式不响应,那么没有学习发生在那个神经元上。
如果一个特定神经元赢得了竞争,这个神经元的每个输入节点经一定的比例释放它的突触权值,释放的权值然后平均分布到活跃输入节点上。
作用于突触权值
的改变量
定义为
5.Boltzmann学习
令
表示网络在钳制条件下神经元j和k的状态间的相关量。
令
表示网络在其自由运作条件下神经元j和k的状态间的相关量。
作用于神经元j到神经元k的突触权值的改变量由
,
定义,其中
是学习率参数。
五种学习算法的区别:
误差-修正学习和Boltzmann学习是有监督学习;而Hebb学习和竞争学习是无监督学习。
在误差-修正学习中,作用于神经元突触权值的调节量正比于本次学习中误差信号的突触的输入的乘积,它实际上带有局部性质,这仅仅是说由增量规则计算的突触调节局部于神经元k周围。
同时,对
的选择对学习过程的准确及其它方面也有深刻的影响。
基于记忆的学习中的最邻近规则,基于两个假设;分类实例(
)按照实例(
)的联合概率分布是独立同分布的;样本大小N是无限大的,它的分类错误率同贝叶斯误差概率的关系为
其中
为贝叶斯误差概率,C是分类的类别数目。
Hebb学习中如果在突触(连接)每一边的两个神经元同时(即同步)激活,那么那个突触的强度被选择性增强;如果在突触每一边的两个神经元被异步激活,那么那个突触被选择性地减弱或消除。
竞争学习中突触权值的改变取决于前突触
和当前的突触权值,与后突触权值
无关。
神经网络可以通过竞争学习来进行聚类。
然而,开始时输入模式必须落入充分分离的分组中。
否则,网络可能不稳定,因为它将不再以同样的输出神经元响应给定的输入模式。
Boltzmann学习中突触权值的改变实质上取决于前突触
和后突触
之间的相关量。
并同时考虑在钳制条件和自由运行条件下的相关量,且
的值数都在-1和+1范围内。
对此题分别采用MLP网络拟合,RBF网络拟合。
1.MLP网络拟合
%Example4_17BP
%用于曲线拟合的BP网络
clearall;
%n为隐藏的神经元个数
n=input('请输入隐藏的神经元个数n=';
t=[15151518282937374450506061646565727575828591919798125142142147147150159165183192195218218219224225227232232237246258276285300301305312317338347354357375394513535554591648660705723756768860];
y0=[21.6622.7522.331.2544.7940.5550.2546.8852.0363.4761.138173.0979.0979.5165.3171.986.194.692.5105101.7102.9110104.3134.9130.68140.58155.3152.2144.5142.15139.81153.22145.72161.1174.18173.03173.54178.86177.68173.73159.98161.29187.07176.13183.4186.26189.66186.09186.7186.8195.1216.41203.23188.38189.7195.31202.63224.82203.3209.7233.9234.7244.3231242.4230.77242.57232.12246.7];
net=newff(minmax(t,[n,1],{'tansig''purelin'},'trainlm';
%未经训练的模拟输出y1
y1=sim(net,t;
net.trainParam.epochs=250;
net.trainParam.goal=9.0;
net=train(net,t,y0;
%训练后的模拟输出y2
y2=sim(net,t;
y3=233.84*(1-exp(-0.006042*t;
figure;
plot(t,y0,'-',t,y1,'--',t,y2,'--',t,y3,':
';
title('训练后的网络仿真结果';
xlabel('时间/天数';
ylabel('晶状体重量/克';
legend('原始数据','初始化值','训练后曲线','模型曲线';
1.在MLP网络拟合中,进行了三次试验,隐藏神经元的个数分别是8,12,15,结果显示在隐藏神经元的个数大的时候有更好的拟合能力,尤其在数据间变化快(上下波动大)的时候可以很好的拟合,比原来的最小平方模型更好。
2.在RBF网络拟合中,拟合结果显示,在数据变化快(上下波动大)的时候能完全拟合,但是在数据变化慢(上下波动小)的时候的拟合结果相当差,证明它的网络推广能力不强。
3.当MLP网络和RBF网络比较时,它们的误差曲线分别如图3,图5可以看出他们的误差之间相差不大,但是RBF网络的迭代步数明显要少于MLP网络。
虽然MLP网络不能很好的对数据变化快的点进行拟合,但从整体数据看它的适应能力好。
RBF网络在数据变化慢的点的拟合效果明显比MLP网络差。
functionC=make_data_4_8(
%产生用于BP,RBF,SVM试验数据
pats=input('产生数据的个数pats=';
iffloor(pats/2*2~=pats,
disp('Numberofpatternsshouldbeequal-tryagain!
';
return
end
f=pats/2;
%生成第一类数据
C1=randn(f,2;
C1(:
3=ones(f,1*.95;
C1(:
4=ones(f,1*.05;
C1(:
5=zeros(f,1;
fori=1:
f
RC1(i,i=(1/2*pi*exp((-1/2*pi*(norm(C1(i,1:
2-zeros(1,2^2;
end
%第一类数据的概率密度函数
mesh(C1(:
1,C1(:
2,RC1(:
:
;
% 生成第二类数据
C2=randn(f,2;
C2=C2*2;
C2(:
1=C2(:
1+2;
C2(:
3=ones(f,1*.05;
C2(:
4=ones(f,1*.95;
C2(:
5=ones(f,1*1;
fori=1:
f
RC2(i,i=(1/2*pi*4*exp((-1/2*pi*(norm(C2(i,1:
2-[20]^2;
end
figure
% 第二类数据的概率密度函数
mesh(C2(:
1,C2(:
2,RC2(:
:
;
figure
plot(C1(:
1,C2(:
2,'*';
axis([-410-5.55.5]
figure
plot(C2(:
1,C2(:
2,'o';
axis([-410-5.55.5]
figure
plot(C1(:
1,C2(:
2,'*';
axis([-410-5.55.5]
holdon
plot(C2(:
1,C2(:
2,'o';
axis([-410-5.55.5]
%shufflethemup
H=[C1'C2']';
[yi]=sort(rand(f*2,1;
C=H(i,:
;
用上面的程序画出两类数据的Guass分布三维图
P=mk_data(500;%产生数据用来训练神经网络,两类高斯分布的训练数据分别为250
hN=2;oN=2;lr=0.1;mom=0;epochs=320;
[w1,b1,w2,b2,ep_err,a]=bpm_train(P,hN,oN,2,lr,mom,epochs,0,0,0,0,0;%训练神经网络,hN是隐藏神经元个数,oN是输出层神经元个数,lr是学习率,mom动量参数,epochs是训练回合数目。
w1,b1分别是返回训练所得的权值的偏移量。
bpm_dec_bnds(w1,b1,w2,b2,0.1;%产生分类边界
%测试
T=mk_data(10000;%产生10000个测试数据
[cor,uncor]=bpm_test(w1,b1,w2,b2,T;
c=pl_circ([-2/30],2.34,0.01,1;%确定Bayes分界面
%hN=2;lr=0.1;mom=0;epochs=320;oN=2
1.在神经元数目,学习率参数
,动量常数
,都不变,试验时只改变训练集数目和回合数的时候,从表1,表2分别可以看出均方误差和正确分类概率没有必然的联系,均方误差和正确分类概率不会随着训练集数目和回合数的增加而增加,也不会随着训练集数目和回合数的减少而减少。
2.在学习率参数
=0.1,动量常数
=0的时候,比较神经元个数对试验结果的影响,从表1,表2及图12,图13可以看出当隐藏神经元个数是4的时候比隐藏神经元个数是2的时候,试验结果中:
均方误差小,正确分类概率大。
说明含有4个隐藏神经元的网络得出的结果优于2个隐藏神经元的网络。
3.学习率参数
和动量常数
的选择。
从表3,表4,表5,表6及图14,图15,图16,图17可以看出:
当隐藏神经元的个数固定(在试验中为2,学习率参数
分别为0.01,0.1,0.5,0.9时,改变动量常数
,均方误差和正确分类概率同动量常数
没有一个线性关系,这就要求我们选择一个最佳的组合。
从试验结果看,当学习率参数
为0.01,动量常数
为0.1时,正确分类概率最高为80.46%。
4.从16中组合中挑出最优的学习曲线(图18,试验结果(表7,明显看出学习率参数
=0.01,动量常数
=0.1时,它的学习曲线衰减很快,证明它有较小的均方误差。
5.均方误差与分类概率没有必然联系,一个BP算法的均方收敛的误差非常小,同时也可能牺牲了它的泛化能力,在实验中我们可以发现:
分类概率好的结果其均方误差并非最小的。
%Example_5_14利用SVM工具。
对n个点进行训练。
clearall;
n=input('请输入测试的次数n=';
lr=input('请输入正则化参数lr=';
cs=input('请输入隐藏层中心大小cs='
fori=1:
n
P=mk_data(200;
w=rbf(P(1:
100,1:
2,P(:
1:
2,P(1:
100,3:
4,cs,lr;
T=mk_data(500;
rbfout=rbf_test(w,T(:
1:
2,P(:
1:
2,cs;
rbfcor(i,:
=rbf_correct(rbfout,T(:
5;
figure(i;
rbf_db(w,P(:
1:
2,cs,0.2;
end
avecorrect=mean(rbfcor
mincorrect=min(rbfcor
maxcorrect=max(rbfcor
stdcorrect=std(rbfcor
P=mk_data(500;
cw=4;lr=0.01;c=0.1
[pesos,vect,b]=svm_rbf(P,cw,1000,lr,c;%cw是宽度,lr是学习率参数,c是正则化常数
T=mk_data(32000;
[cu]=svm_test(T,pesos,vect,b,cw;
svm_dec_bnd(pesos,vect,b,cw
对于每次试验用500个点进行训练,并用32000个数据点进行测试。
五次试验宽度cw为4,正则化常数c都为0.1,并固定学习率参数lr为0.01。
两维分布驱动的一维网格:
hN=200;
p=rand(1000,2;%输入数据分布
plot(p(:
1,p(:
2;%画出数据的分布图
[w1sP1]=som_1d(p,hN,10,[0.118];%hN是隐藏神经元个数
[w2sP2]=som_1d(p,hN,50,[P1(10.001P1(20],w1s;
当隐藏神经元个数越大,对原始离散数据的逼近更好,在排序阶段和收敛阶段都比隐藏神经元为100的要好。
但是,我们对离散数据进行逼近时,不能把隐藏神经元个数选取的太大,如果选取的过大的话,网络会出现过拟合现象,这样以来它的网络推广性就会下降;同时,隐藏神经元个数越大,运行的时间也会相应的增加。
所以适当的选取隐藏神经元个数越大是很重要的。
function[NN_w1NN_wNN_w1_1NN_w_1]=Som_912(
clf
%--设置符号代码的值
a=0.2;
%--训练数据集
P=[a000000000000000,
0a00000000000000,
00a0000000000000,
000a000000000000,
0000a00000000000,
00000a0000000000,
000000a000000000,
0000000a00000000,
00000000a0000000,
000000000a000000,
0000000000a00000,
00000000000a0000,
000000000000a000,
0000000000000a00,
00000000000000a0,
000000000000000a,
1111110000100000,
0000000111100000,
0000000000011111,
1111111000000000,
0000000111111111,
0000000111111111,
0000000000000111,
0000000001001110,
1111111000000000,
0000111101111000,
0000000011011110,
1001111000000000,
0011000000000000]';
%--排序阶段权值
[W1p1]=som_2d(P,10,10,2000,[.01,8];
figure(1;
subplot(2,1,1;
som_pl_map(W1,1,2
title('Orderingweights'
%--收敛阶段权值
W=som_2d(P,10,10,5000,[p1(10.001p1(20],W1;
subplot(2,1,2;
som_pl_map(W,1,2
title('Convergenceweights'
%--测试数据集
T=[a000000000000000,
0a00000000000000,
00a0000000000000,
000a000000000000,
0000a00000000000,
00000a0000000000,
000000a000000000,
0000000a00000000,
00000000a0000000,
000000000a000000,
0000000000a00000,
00000000000a0000,
000000000000a000,
0000000000000a00,
00000000000000a0,
000000000000000a,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000,
0000000000000000]';
%==============包含具有最强响应的标定神经元的特征映射=============
NN_w1=zeros(10,10;
NN_w=zeros(10,10;
%---计算
forh=1:
16
M_w1=0;
M_w=0;
fori=1:
10
forj=1:
10
M1=0;
M2=0;
fork=1:
29
M1=M1+W(i,j,k*T(h,k;
M2=M2+W1(i,j,k*T(h,k;
end;
ifM_w
POS_wi=i;
POS_wj=j;
M_w=M1;
end;
ifM_w1
POS_w1i=i;
POS_w1j=j;
M_w1=M2;
end;
end;
end;
NN_w1(POS_w1i,POS_w1j=h;
NN_w(POS_wi,POS_wj=h;
end;
NN_w1
NN_w
%--文字显示
figure(2;
text_plot(NN_w1;
title('orderingphase';
figure(3;
text_plot(NN_w;
title('Convergencephase'
%=======利用“模拟电极渗透映射”的语义映射===========
NN_w1_1=zeros(10,10;
NN_w_1=zeros(10,10;
%----计算
fori=1:
10
forj=1:
10
M_w1=0;
M_w=0;
forh=1:
16
M1=0;
M2=0;
fork=1:
29
M1=M1+W(i,j,k*T(h,k;
M2=M2+W1(i,j,k*T(h,k;
end;
ifM_w
NN_w_1(i,j=h;
M_w=M1;
end;
ifM_w1
NN_w1_1(i,j=h;
M_w1=M2;
end;
end;
end;
end;
NN_w1_1
NN_w_1
%---文字显示
figure(4;
text_plot(NN_w1_1;
title('orderingphase';
figure(5;
text_plot(NN_w_1;
title('Convergencephase';
functiontext_plot(z;
[czrz]=size(z;
s=cell(cz,rz;
fori=1:
cz
forj=1:
rz
switchz(i,j
case0
s(i,j={''};
case1
s(i,j={'dove'};
case2
s(i,j={'hen'};
case3
s(i,j={'duck'};
case4
s(i,j={'goose'};
case5
s(i,j={'owl'};
case6
s(i,j={'hawk'};
case7
s(i,j={'eagle'};
case8
s(i,j={'fox'};
ca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 神经网络 五个 基本 学习 算法
![提示](https://static.bdocx.com/images/bang_tan.gif)