学习矢量量化(Learning Vector Quantization, LVQ)

LVQ是一种用于模式分类的有监督学习算法,通过调整代表点使其更贴近各分类的最佳值。LVQ2通过同时调整两个代表点提高效率。该算法与KNN相似,但在训练过程中可能遇到不收敛的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习矢量量化(Learning Vector Quantization,LVQ),是一种用于模式分类的有监督的学习算法,也是一种结构简单、功能强大的有监督的神经网络分类算法。主要的类型有LVQ1、LVQ2、LVQ3,其中LVQ2的应用最广。

基本思想

它通过在自动学习的过程中进行及时的微调,使得每个类别的代表点贴近与最佳值,基本步骤如下所示:
1. 设定每一个类别的代表点:假设有4个类别,每一个类别包含3个数据点,这样数据集中就有12个代表点,其中每个类别的代表点可通过K-means算法得到
2. 对每一个资料点 x x x,寻找最接近的代表点,记为 y k y_{k} yk
3. 然后比较 x x x y k y_{k} yk的类别,然后根据它们的类别是否相同分别进行处理:
若两个点的类别相同,则将 y k y_{k} yk朝x拉近: y k ′ = y k + α [ x − y k ] y_{k}'=y_{k}+\alpha[x-y_{k}] yk=yk+α[xyk]
若两个点的类别不同,则将 y k y_{k} yk朝x的反方向拉近: y k ′ = y k − α [ x − y k ] y_{k}'=y_{k}-\alpha[x-y_{k}] yk=ykα[xyk]其中 α \alpha α是随迭代次数增加而递减的值,取值范围是 0 < α < 1 0<\alpha<1 0<α<1
4. 返回到第2步,对所有的资料点进行如上的类似操作,微调代表点,知道代表点不再变化为止。

当算法收敛后,就可以使用每个类别的代表点来代表这一类的数据分布。当遇到未知类别的数据点时,我们只需要将其与它的近邻进行比较,找出最相近的类别,那么就将其作为新数据点的类别。这样一看是不是和KNN的算法思想很类似呢?

其中我们看一下为什么在步骤3中使用了 y k ′ = y k + α [ x − y k ] y_{k}'=y_{k}+\alpha[x-y_{k}] yk=yk+α[xyk] y k ′ = y k − α [ x − y k ] y_{k}'=y_{k}-\alpha[x-y_{k}] yk=ykα[xyk]
就可以实现拉远和拉近呢?比如当 x x x y k y_{k} yk的类别相同时,在进行拉近操作更新完 y k y_{k} yk后计算 y k ′ y_{k}' yk x x x之间的距离: ∣ ∣ y k ′ − x ∣ ∣ 2 = ∣ ∣ y k + α ( x − y k ) − x ∣ ∣ 2 = ( 1 − α ) ∣ ∣ ( y k ′ − x ) ∣ ∣ 2 ||y_{k}'-x||_{2}=||y_{k}+\alpha(x-y_{k})-x||_{2}=(1-\alpha)||(y_{k}'-x)||_{2} ykx2=yk+α(xyk)x2=(1α)(ykx)2因为 0 < α < 1 0<\alpha<1 0<α<1,所以 ( 1 − α ) ∣ ∣ ( y k ′ − x ) ∣ ∣ 2 (1-\alpha)||(y_{k}'-x)||_{2} (1α)(ykx)2的值必然是小于 ∣ ∣ ( y k ′ − x ) ∣ ∣ 2 ||(y_{k}'-x)||_{2} (ykx)2的,两点的距离近了;当两个点的类别不同时,同理可证。

LVQ2

上面每次只对一个代表点进行微调,可将其称为LVQ1。为了提高效率,在LVQ2中实现了同时调整两个代表点,一次寻找输入样本 x x x最近邻的两个代表点,若这两个代表点一个与 x x x同类,而另一个与 x x x异类,则同时更新两个代表点: y k ′ = y k + α [ x − y k ] y_{k}'=y_{k}+\alpha[x-y_{k}] yk=yk+α[xyk] y k ′ ′ = y k − α [ x − y k ] y_{k}''=y_{k}-\alpha[x-y_{k}] yk=ykα[xyk]

LVQ算法的不足之处

  • 训练过程可能会不收敛:假设输入的 x x x和两个代表点一个同类别,一个不是同类别,在LVQ2中同时调整两个代表点,使它们之间的边界向最优贝叶斯边界靠拢。但这样做可能会使得与 x x x不同类别的代表点一直远离 x x x,而没有考虑它最终的位置,导致难以收敛
  • 对于数据各个维的属性利用不够:因为在上面的计算距离时使用的是欧式距离,它建立在认为数据各个维的属性同等重要的假设之上。但是在实际的数据集中,不同维的数据是对于最后结果的影响大小是不一样的。

LVQ(Learning Vector Quantization)神经网络概述
[ML]聚类之学习向量量化LVQ
LVQ聚类算法
学习矢量量化-LVQ
5-3 Learning Vector Quantization (學習式向量量化)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值