%初始化正向权值w和反向权值v
w=rands(13,3)/2+0.5;
v=rands(1,13)/2+0.5;
%输入向量P和目标向量T
P=importdata('C:\Users\Administrator\Desktop\ln\SelfOrganizationtrain.dat');
T=importdata('C:\Users\Administrator\Desktop\ln\SelfOrganizationtarget.dat');
T_out=T;
%设定学习步数为1000次
epoch=1000;
%归一化输入向量P
for i=1:29
if P(i,:)==[0 0 0]
P(i,:)=P(i,:);
else
P(i,:)=P(i,:)/norm(P(i,:));
end
end
%开始训练
while epoch>0
for j=1:29
%归一化正向权值w
for i=1:13
w(i,:)=w(i,:)/norm(w(i,:));
s(i)=P(j,:)*w(i,:)';
end
%求输出为最大的神经元,即获胜神经元
temp=max(s);
for i=1:13
if temp==s(i)
count=i;
end
end
% 将所有竞争层神经单元的输出置0
for i=1:13
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=importdata('C:\Users\Administrator\Desktop\ln\SelfOrganizationSimulation.dat');
%初始化Pc
for i=1:20
if Pc(i,:)==[0 0 0]
Pc(i,:)=Pc(i,:);
else
Pc(i,:)=Pc(i,:)/norm(Pc(i,:));
end
end
%网络输出
Outc=[0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;];
for j=1:20
for i=1:13
sc(i)=Pc(j,:)*w(i,:)';
end
tempc=max(sc);
for i=1:13
if tempc==sc(i)
countp=i;
end
sc(i)=0;
end
sc(countp)=1;
Outc(j,:)=v(:,countp)';
end
%回想结束
Outc
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1、资源内容:基于Matlab实现神经网络CPN算法(程序+数据).rar 2、适用人群:计算机,电子信息工程、数学等专业的学习者,作为“参考资料”参考学习使用。 3、解压说明:本资源需要电脑端使用WinRAR、7zip等解压工具进行解压,没有解压工具的自行百度下载即可。 4、免责声明:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。由于作者大厂工作较忙,不提供答疑服务,如不存在资源缺失问题概不负责,谢谢理解。
资源推荐
资源详情
资源评论
收起资源包目录
基于Matlab实现神经网络CPN算法(程序+数据).rar (4个子文件)
基于Matlab实现神经网络CPN算法(程序+数据)
CPN.m 2KB
SelfOrganizationtrain.dat 700B
SelfOrganizationSimulation.dat 731B
SelfOrganizationtarget.dat 87B
共 4 条
- 1
资源评论
Matlab仿真实验室
- 粉丝: 2w+
- 资源: 2180
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功