机器学习 - 投票感知器

一、传统(经典)感知器的缺点

1、缺点

根据上一篇博文,如果训练数据是线性可分的,那么感知器可以找到一个判别函数来分割不同类的数据。如果间隔 𝛾 越大,收敛越快。但是感知器并不能保证找到的判别函数是最优的(比如泛化能力高),这样可能导致过拟合。

2、具体描述

感知器学习到的权重向量和训练样本的顺序相关。

在迭代次序上排在后面的错误样本比前面的错误样本,对最终的权重向量影响更大。

比如有1000 个训练样本,在迭代 100 个样本后,感知器已经学习到一个很好的权重向量。在接下 来的 899 个样本上都预测正确,也没有更新权重向量.但是,在最后第 1 000 个样 本时预测错误,并更新了权重。这次更新可能反而使得权重向量变差。

3、总结

传统感知器的目标是找到一个单一的线性超平面(通过权重 w)来分离数据,但在以下场景中表现受限:

  1. 权重震荡(Oscillation)

    当数据接近线性可分时,感知器可能在多次迭代中反复调整权重,导致分类边界不稳定。

  2. 泛化能力弱

    最终模型仅依赖最后一次迭代的权重,可能忽略训练过程中更优的中间结果。

为了提高感知器的鲁棒性和泛化能力,我们来了解改进的感知器算法。

二、投票感知器

投票感知器(Voted Perceptron)是对经典感知器算法的一种改进,它通过记录在训练过程中出现过的所有权重向量及其"持续时间",并在最终预测时对这些权重向量进行投票,从而提高模型的泛化性能。

投票感知器 是传统感知器算法的改进版本,由Yoav Freund和Robert Schapire于1998年提出。其核心思想是通过集成多个中间分类器的投票结果,提升模型的泛化能力和稳定性。

1、核心思想

  • 记录多个权重向量

    在标准感知器算法中,每当遇到误分类时,模型就更新参数 w 和 b,最后仅使用最终的参数进行预测。而投票感知器在训练过程中会保存每个"阶段"的权重向量,以及该权重向量连续正确分类的次数。

  • 加权投票机制

    对于新样本的预测,投票感知器不会仅依赖最后的权重向量,而是对所有保存下来的权重向量进行投票。每个权重向量的投票权重等于它在训练过程中连续正确分类样本的次数。最终的分类结果由所有权重向量的"加权投票"决定。

2、工作流程

(1)训练阶段

  • 初始化:设置初始权重 w_0 和偏置 b_0,同时初始化计数 c_0=1。
  • 遍历数据 :对每个训练样本 (x,y),计算预测
  • 判断正确性
  • 从分类器角度来说:

(2)预测阶段

为什么使用投票机制

  • 平滑更新:单个权重向量可能受到数据顺序或局部噪声的影响,投票机制可以减少这种偶然性,得到更稳定的决策边界。
  • 综合信息:通过累计整个训练过程中的多个权重向量,投票感知器更充分地利用了训练过程中的信息,往往比最终单一的权重向量有更好的泛化能力。

从引入分类器的角度来讲(与上面的意思是一样的):

三、投票感知器与传统感知器的对比

维度 传统感知器 投票感知器
模型复杂度 单一权重向量 多个权重向量 + 投票权重
泛化能力 可能过拟合或欠拟合 通过集成降低方差,提升稳定性
存储成本 低(仅需存储最终权重) 高(需存储所有中间分类器及权重)
适用场景 数据严格线性可分且分布简单 数据接近线性可分或存在噪声

四、示例

1、一个简单的二分类问题

训练数据集如下(标签取值 ±1):

样本 x y
1 [1,0] +1
2 [0,1] +1
3 [1,1] −1
4 [2,2] −1
  • 训练过程中,假设算法开始时 w_0 = [0,0]、b_0 = 0,计数 c_0 = 1。
  • 当遍历到样本3(真实 y=−1),可能发现当前权重将其错误地分类为正类,于是更新权重。每次更新后,都记录下当前的权重向量及其持续正确分类的次数。
  • 最终假设算法共产生了几个权重向量:
    • w_1, b_1(计数 c_1),
    • w_2, b_2(计数 c_2),
    • ...
  • 预测时,对于一个新样本 x,每个保存下来的权重向量都会给出一个预测(sgn(w_i^T x + b_i)),然后按各自的计数加权投票,最终综合出预测结果。

2、场景:根据花瓣长度和宽度分类鸢尾花(Setosa vs Non-Setosa)

五、投票感知器的优势与局限性

优势

  • 抗噪声能力:通过加权投票减少异常样本的干扰。

  • 理论保障:Freund和Schapire证明其错误率上界优于传统感知器。

  • 灵活扩展:可结合核方法(Kernel Voted Perceptron)处理非线性问题。

局限性

  • 存储开销大:需保存大量中间分类器,不适合超大规模数据。

  • 计算成本高:预测时需遍历所有分类器,实时性受限。

相关推荐
篮l球场1 分钟前
LeetCodehot 力扣热题100
算法·leetcode·职场和发展
deflag8 分钟前
第P10周-Pytorch实现车牌号识别
人工智能·pytorch·yolo
pzx_00113 分钟前
【机器学习】K折交叉验证(K-Fold Cross-Validation)
人工智能·深度学习·算法·机器学习
BanLul14 分钟前
进程与线程 (三)——线程间通信
c语言·开发语言·算法
海域云赵从友25 分钟前
助力DeepSeek私有化部署服务:让企业AI落地更简单、更安全
人工智能·安全
qy发大财35 分钟前
分发糖果(力扣135)
数据结构·算法·leetcode
伊一大数据&人工智能学习日志38 分钟前
自然语言处理NLP 04案例——苏宁易购优质评论与差评分析
人工智能·python·机器学习·自然语言处理·数据挖掘
刀客12343 分钟前
python3+TensorFlow 2.x(六)自编码器
人工智能·python·tensorflow
大模型之路1 小时前
Grok-3:人工智能领域的新突破
人工智能·llm·grok-3
haaaaaaarry1 小时前
【分治法】线性时间选择问题
数据结构·算法