感知器构建

感知器算法:

目的:
对于已知的数据点{x1, x2, …, xN}分为w1,w2两类,寻求该数据点之间的权向量wT

确定方程的一般形式一般形式:d(X) = w1x1+w2x2+…+ wnxn+wn+1 =W0TX+wn+1
其中W0=(w1, w2, …, wn)T称为权向量。
增广形式:d(X) = WTX wTW=(w1, w2, …, wn, wn+1)T ——增广权向量
X=(x1, x2, …, xn, 1)T ——增广模式
算法过程:
1. 给定一个增广的训练模式集合{x1, x2, …, xN},其中每个模式类别已知,分别属于w1类和w2类。
2. (1) 初始化:设置迭代步数k=1,令增量=某个正的常数;分别赋予初始增广权矢量W(1)的各分量较小的任意值。
 (2)输入训练模式xk,计算判别函数值WT(k)xk;
 (3)调整增广权矢量,规则是:
  如果xk∈1和WT(k)<=0,则W(k+1) = W(k) + ρxk.;
  如果xk∈1和WT(k)>=0,则W(k+1) = W(k) -ρxk.;
  若xk∈1和WT(k)xk>0,如果xk∈w2和WT(k)xk<0,则W(k+1) = W(k);
  如果k< N,令k=k+1,返回(2)。如果k=N,则检验判别函数是否能够都正确分类。若是,结束;否则,令k=1,返回(2)。
算法优化
如果训练模式已经符号规范化,即xk2已经乘以1(包括增广分量1)。
则调整权矢量的规则可以统一为
W(k+1)={ w(k)  (wT*xT>0)分类正确
     {w(k)+ρx  (wT*xT<=0)分类错误
  

在用全部模式训练完一轮后,如果仍有模式被错分,则需要进行第二轮、第三轮迭代,直到所有模式都能够正确分类为止;
可以证明:这个算法是收敛的。

代码构建:
https://github.com/233lawliet/Java/tree/master/Perseptron

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值