1、 计算机智能作业二 三专业:探测制导与控制技术 学号: 10151136 姓名: 曾稳情 作业二:采用单一感知器神经元解决一个简单的分类问题:将正方体的八个顶点分为两类对应的输入矢量:0 1 1 0 1 0 1 0;0 1 0 1 1 1 0 0;1 1 0 1 0 0 1 0;希望的输出结果为: 1 0 1 0 1 1 0 1;训练和测试感知机步骤:1. 读入系统的输入和期望输出矢量2. 初始化连接权向量和输出单元的阈值,取(-1,1)之间的随机数3. 对产生的连接权进行修正3.1 计算网络的输出值3.2 计算输出层单元与期望输出之间的误差3.3 根据所得误差来修正输入层和输出层之间的连接权
2、与阈值4. 对输入重复上述的步骤,直到误差值小于预先设定的误差极限实验程序:a=0 1 1 0 1 0 1 0;0 1 0 1 1 1 0 0;1 1 0 1 0 0 1 0; T=1 0 1 0 1 1 0 1; w=rands(1,3); %初始化连接权值theta=rands(1,1); %初始化阈值alpha=1;beta=1; %定义学习率d=ones(1,8); mis=0.1; %定义极限误差D=8;o=1;%loopwhile Dmisfor k=1:8while abs(d(k)misx=w*a(:,k)+theta;y(k)=double(x0);d(k)=T(k)-y(k);deltaw=alpha*a(:,k)*d(k);deltatheta=beta*d(k);w=w+deltaw;theta=theta+deltatheta;end endd=abs(double(w*a+theta0)-T);D=sum(d);endplotpv(a,T);hold on;x=0:0.01:1;y=x;for i=1:1:101for j=1:1:101z(i,j)=-(w(1)*x(i)+w(2)*y(j)+theta)/w(3);endend%figuresurf(x,y,z);hold off;实验结果: