感知器简单分类

考虑一个简单的分类问题:设计一个感知器,将二维的四组输入矢量分成两类matlab2016a实现:输入矢量P=[-0.5 -0.5 0.3 0;-0.5 0.5 -0.5 1]目标矢量T=[1.0 1.0 0 0]

P=[-0.5 -0.5 0.3 0;-0.5 0.5 -0.5 1]
T=[1 1 0 0]
%初始化,确定R S Q
[R,Q]=size(P)
[S,Q]=size(T)
[W]=rands(S,R)
b=rand();
max_epoch=20
B=cat(2,b,b,b,b)
A=hardlim(W*P+B)
%上条命令是,第一次求网络输出,接下来为网络循环训练,修正权值的过程:
%学习
for epoch=1:max_epoch
    if all (A==T)
        epoch=epoch-1
        break
    end
 e=T-A;
 dW=learnp([],P,[],[],[],[],e,[],[],[],[],[]);
 %求权值的修正值,矢量矩阵表示为误差矩阵E乘以输出矩阵的转置,即(t-a)*p
 db=learnp(b,ones(1,S),[],[],[],[],e,[],[],[],[],[]);
 %求偏差的修正值,矢量矩阵表示为误差矩阵E,即(t-a)*1
 W=W+dW;
 B=B+db;
 %修正后的偏差和权值
 A=hardlim(W*P+B);
 %计算权值修正后的网络输出
end
A

解法二:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌风lpc

打赏将使小编打满鸡血

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值