线性判别--感知机算法(perceptron algorithm)

  感知器算法是一种线性判别算法,它适用于二分类模型。在这个模型中,输入向量 x \mathbf{x} x首先使用一个固定的非线性变换得到一个特征向量 ϕ ( x ) \phi(\mathbf{x}) ϕ(x),接着用这个特征向量构造一个线性模型:
(1) y ( x ) = f ( w T ϕ ( x ) ) y(x) = f(w^{T}\phi(x)) \tag{1} y(x)=f(wTϕ(x))(1)其中非线性激活函数 f ( . ) f(.) f(.)是一个阶梯函数,形式为:
(2) f ( a ) = { + 1 , if   a  &gt; 0 − 1 , if   a  &lt; 0 f(a) = \begin{cases} +1, &amp; \text{if \ $a$ &gt; 0} \\ -1, &amp; \text{if \ $a$ &lt; 0} \end{cases} \tag{2} f(a)={+1,1,if  a > 0if  a < 0(2)这里使用 t = + 1 t=+1 t=+1表示第一类 C 1 \mathcal{C}_{1} C1 t = − 1 t=-1 t=1表示第二类 C 2 \mathcal{C}_{2} C2
  训练参数 w w w算法可通过最小化目标函数得到。一种自然的目标函数为错误分类的样本的总数。但是这就是的目标函数变为 w w w的分段常函数,在使用梯度下降算法时,几乎所有地方梯度都是0。
  因此考虑另一个误差函数,即感知器准则(perceptron criterion)。因为我们的目标是得到一个权重 w w w,使得对于类别 C 1 \mathcal{C}_{1} C1中的所有样本 x n x_{n} xn都有 w T ϕ ( x n ) &gt; 0 w^{T}\phi(x_{n}) &gt; 0 wTϕ(xn)>0,对于类别 C 2 \mathcal{C}_{2} C2中的所有样本 x n x_{n} xn都有 w T ϕ ( x n ) &lt; 0 w^{T}\phi(x_{n}) &lt; 0 wTϕ(xn)<0。对于使用 t ∈ + 1 , − 1 t \in{+1, -1} t+1,1这种目标变量的表示方法,即让所有的样本均满足 w T ϕ ( x n ) t n &gt; 0 w^{T}\phi(x_{n})t_{n} &gt; 0 wTϕ(xn)tn>0。对于被正确分类的样本,感知机赋予零误差,对于分类错误的样本 x n x_{n} xn,最小化 − w T ϕ ( x n ) t n -w^{T}\phi(x_{n})t_{n} wTϕ(xn)tn。因此感知机准则为:
(3) E P ( w ) = − ∑ n ∈ M w T ϕ n t n E_{P(w)} = -\sum_{n\in M}w^{T}\phi_{n}t_{n} \tag{3} EP(w)=nMwTϕntn(3)

其中 M M M表示所有错误分类样本的集合。某个特定的错误的分类的样本对误差函数的贡献为样本被错误分类的区域中 w w w的线性函数,正确分类的误差函数为零。因此,总的误差函数是分段线性的。
  现在对误差函数使用随机梯度下降算法。得到权重 w w w的变化为:
w τ + 1 = w τ − η ∇ E P ( w ) = w τ + η ϕ n t n w^{\tau + 1} = w^{\tau} - \eta\nabla E_{P(w)} = w^{\tau} + \eta \phi_{n}t_{n} wτ+1=wτηEP(w)=wτ+ηϕntn

其中 η \eta η为学习率, τ \tau τ是一个整数,表示迭代次数。如果我们将 w w w乘上一个常数,则感知器函数 y ( x , w ) y(x, w) y(x,w)不变,因此我们可以令学习率 η = 1 \eta=1 η=1而不失一般性。
  如果数据是线性可分的,则感知机收敛定理可保证一定会找到一个解,但是可能需要相当长的迭代次数。所以在到达收敛状态前,我们无法判断数据是线性不可分还是收敛缓慢。即使是线性可分,也可能有多个解。最终找到的解依赖于初始化和数据点出现的顺序。
  除了训练的困难外,感知机无法提供概率化的输出,同时也无法直接推广到多类别状态。另外,它是基于固定基函数的线性组合,具有线性模型的局限性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fisher线性判别是一种用于模式分类和特征选择的经典线性判别方法。该方法的基本思想是通过线性投影将样本映射到一维或多维空间中,使得同一类别的样本距离尽可能近,不同类别的样本距离尽可能远。通过计算类内散布矩阵和类间散布矩阵的比值,找到最佳投影方向,实现特征的降维和分类目标的达到。 感知器算法Perceptron Algorithm)是一种二分类线性分类算法。该算法的主要思想是通过迭代的方式调整权重,使得错分类的样本离分类超平面更近,从而最终得到一个可以对样本进行正确分类的超平面。感知器算法适用于线性可分的样本,但对于线性不可分的样本会发散。 k近邻算法(k-Nearest Neighbors, k-NN)是一种基于邻近性的分类算法。该算法的核心思想是根据样本之间的距离进行分类。在训练阶段,将所有样本的特征向量与对应的标签存储起来;在预测阶段,根据样本的特征向量与已知样本的距离,选择与该样本最临近的k个已知样本,统计这k个样本所属类别的频次,最后将频次最高的类别作为预测结果。k的选择会影响分类的准确性和计算复杂度,通常需要通过交叉验证进行确定。 总结起来,Fisher线性判别是一种用于模式分类和特征选择的方法,感知器算法是一种线性分类算法,k近邻算法是一种基于邻近性的分类算法

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值