【感知机】理论简介



2017年10月23日    Author:Guofei

文章归类: old_ann    文章编号: 280

版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2017/10/23/perceptron.html


模型1

假设

  • input space: $\mathscr{X} \subset R^n$
  • output space: \(\mathscr{Y} =\{1,-1 \}\)
  • feature vector: $x\in \mathscr{X}$

模型是$f(x)=sign(wx+b)$
其中,

  • weight vector(weight): $w\in R^n$
  • bias: $b\in R$

策略

经验风险函数为:
$L(w,b)=-\sum\limits_{i \in M} y_i (wx_i+b)$

其中M是误分类点。

算法

感知机用的是 随机梯度下降法(stochastic gradient descent)

$\dfrac{\partial L}{\partial w}=- \sum\limits_{i \in M} y_i x_i$
$\dfrac{\partial L}{\partial b}=- \sum\limits_{i \in M} y_i$

原始算法:
step1:随机生成初始值$w_0,b_0$
step2:选取数据$(x_i,y_i)$
step3:if $y_i(wx_i+b) \leq 0$:$w=w+\eta y_i x_i,b=b+\eta y_i$ step4:转到step2,直到误差足够小,或者达到最大迭代限制。

算法实现

参见另一篇博客:【Matlab】自编代码实现感知机

其它事项

  1. 如果数据是线性可分的,那么感知机算法是收敛的
  2. 如果数据是线性可分的,那么感知机存在无穷多组解

参考资料


您的支持将鼓励我继续创作!