MATLAB多层感知器问题 50

书上的例题代码clearall%初始化正向权值W和反向权值VW=rands(18,2)/2+0.5;V=rands(5,18)/2+0.5;%输入向量P和目标向量TP=[... 书上的例题代码
clear all
%初始化正向权值W和反向权值V
W=rands(18,2)/2+0.5;
V=rands(5,18)/2+0.5;
%输入向量P和目标向量T
P=[0 0;
0.5 0.5;
0 0.5;
1 3;
0.5 1;
1 0.5];
T=[1 0 0 0 0;
1 0 0 0 0;
0 1 0 0 0;
0 0 1 0 0;
0 0 0 1 0;
0 0 0 0 1]';
T_out=T;
%设定学习步数为1000次
epoch=1000;
%归一化输入向量P
for i=1:6
if P(i,:)==[0 0]
P(i,:)=P(i,:);
else
P(i,:)=P(i,:)/norm(P(i,:));
end
end
%开始训练
while epoch>0
for j=1:6
%归一化正向权值W
for i=1:18
W(i,:)=W(i,:)/norm(W(i,:));
s(i)=P(j,:)*W(i,:)';
end
end
%求输出最大的神经元,即获胜神经元
temp=max(s);
for i=1:18
if temp==s(i)
count=i;
end
end
%将所有竞争层神经元的输出置为0
for i=1:18
s(i)=0;
end
%选中的神经元输出为1
s(count)=1;
%权值调整
W(count,:)=W(count,:)+0.1*[P(j,:)-W(count,:)];
W(count,:)=W(count,:)/norm(W(count,:));
V(:,count)=V(:,count)+0.1*(T(j,:)'-T_out(j,:)');
%计算网络输出
T_out(j,:)=V(:,count)';
%end
%训练次数递减
epoch=epoch - 1;
end
%训练结束
T_out
%网络回想
%网络的输入模式Pc
Pc=[0.5 1;1 3];
%初始化Pc
for i=1:2
if Pc(i,:)==[0 0]
Pc(i,:)=Pc(i,:);
else
Pc(i,:)=P(i,:)/norm(Pc(i,:));
end
end
%网络输出
Outc=[0 0 0 0 0;
0 0 0 0 0];
for j=1:2
for i=1:18
sc(i)=Pc(j,:)*W(i,:)';
end
tempc=max(sc);
for i=1:18
if tempc==sc(i)
countp=i;
end
sc(i)=0;
end
sc(countp)=1;
Outc(j,:)=V(:,countp)';
end
%回想结束
Outc
Undefined function or variable 'net1'.

Error in li3_13 (line 40)
A1=sim(net1,P1);
展开
 我来答
DoramiHe
2018-05-12 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25337 获赞数:59524
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
clear all
%输入向量,两种蠓虫的特征向量
p=[1.24 1.36 1.38 1.378 1.38 1.40 1.48 1.54 1.56 1.14 1.18 1.20 1.26 1.28 ...
1.30;1.72 1.74 1.64 1.82 1.90 1.70 1.70 1.82 2.08 1.78 1.96 1.86 2.00 2.00 1.96];
%目标向量
t=[1 1 1 1 1 1 1 1 1 0 0 0 0 0 0];
%创建感知器网络
net=newp([0 2.5;0 2.5],1);
figure;
cla;
plotpv(p,t);
plotpc(net.IW{1},net.b{1});
hold on;
%训练该感知器网络
net=init(net);
linehandle=plotpc(net.IW{1},net.b{1});
pause
[net,y,e]=adapt(net,p,t);
linehandle=plotpc(net.IW{1},net.b{1},linehandle);
%检验该感知器网络
p1=[1.24 1.28 1.40;1.80 1.84 2.04];
a=sim(net,p1);
figure;
plotpv(p1,a);
Thepoint=findobj(gca,'type','line');
set(Thepoint,'color','red');
hold on;
plotpv(p,t);
plotpc(net.IW{1},net.b{1});
hold off;
pause
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式