学习矢量量化


学习向量量化(LVQ)与向量量化(VQ)和 Kohonen 自组织映射(KSOM)不同,基本上是一个使用监督学习的竞争网络。我们可以将其定义为对模式进行分类的过程,其中每个输出单元代表一个类。由于它使用监督学习,网络将获得一组具有已知分类的训练模式以及输出类的初始分布。完成训练过程后,LVQ 将对输入向量进行分类,将其分配给与输出单元相同的类。

建筑学

下图展示了LVQ的架构,它与KSOM的架构非常相似。正如我们所看到的,有“n”个输入单元和“m”个输出单元。这些层完全互连,并具有权重。

层数

使用的参数

以下是LVQ训练过程以及流程图中使用的参数

  • x = 训练向量 (x 1 ,...,x i ,...,x n )

  • T = 训练向量x的类别

  • w j =第 j输出单元的权重向量

  • C j = 与第 j输出单元相关的类别

训练算法

步骤 1 - 初始化参考向量,可以按如下方式完成 -

  • 步骤 1(a) - 从给定的训练向量集中,获取前“ m ”(簇数)训练向量并将其用作权重向量。剩余的向量可用于训练。

  • 步骤 1(b) - 随机分配初始权重和分类。

  • 步骤 1(c) - 应用 K 均值聚类方法。

步骤 2 - 初始化参考向量 $\alpha$

步骤 3 - 如果不满足停止该算法的条件,则继续步骤 4-9。

步骤 4 - 对于每个训练输入向量x遵循步骤 5-6 。

步骤 5 - 计算j = 1 到 mi = 1 到 n的欧几里德距离的平方

$$D(j)\:=\:\displaystyle\sum\limits_{i=1}^n\displaystyle\sum\limits_{j=1}^m (x_{i}\:-\:w_{ij })^2$$

步骤 6 - 获得获胜单位J,其中D(j)最小。

步骤 7 - 通过以下关系计算获胜单位的新权重 -

如果T = C j则 $w_{j}(新)\:=\:w_{j}(旧)\:+\:\alpha[x\:-\:w_{j}(旧)]$

如果T ≠ C j则 $w_{j}(新)\:=\:w_{j}(旧)\:-\:\alpha[x\:-\:w_{j}(旧)]$

步骤 8 - 降低学习率 $\alpha$。

步骤 9 - 测试停止条件。可能如下 -

  • 已达到最大纪元数。
  • 学习率降低到可以忽略不计的值。

流程图

流程图

变体

Kohonen 开发了另外三个变体,即 LVQ2、LVQ2.1 和 LVQ3。由于获胜者和亚军单位都将学习的概念,所有这三个变体的复杂性都比 LVQ 更复杂。

左室Q2

正如上面讨论的LVQ其他变体的概念,LVQ2的条件是由窗口形成的。该窗口将基于以下参数 -

  • x − 当前输入向量

  • y c - 最接近x 的参考向量

  • y r − 另一个参考向量,最接近x

  • dc − xy c距离

  • d r − xy r的距离

输入向量x落在窗口内,如果

$$\frac{d_{c}}{d_{r}}\:>\:1\:-\:\theta\:\:和\:\:\frac{d_{r}}{d_{c }}\:>\:1\:+\:\theta$$

这里,$\theta$是训练样本的数量。

可以使用以下公式完成更新 -

$y_{c}(t\:+\:1)\:=\:y_{c}(t)\:+\:\alpha(t)[x(t)\:-\:y_{c} (t)]$ (属于不同类别)

$y_{r}(t\:+\:1)\:=\:y_{r}(t)\:+\:\alpha(t)[x(t)\:-\:y_{r} (t)]$ (属于同一类)

这里$\alpha$是学习率。

LVQ2.1

在 LVQ2.1 中,我们将取两个最接近的向量,即y c1y c2,窗口的条件如下 -

$$Min\begin{bmatrix}\frac{d_{c1}}{d_{c2}},\frac{d_{c2}}{d_{c1}}\end{bmatrix}\:>\:(1\ :-\:\θ)$$

$$Max\begin{bmatrix}\frac{d_{c1}}{d_{c2}},\frac{d_{c2}}{d_{c1}}\end{bmatrix}\:<\:(1\ :+\:\θ)$$

可以使用以下公式完成更新 -

$y_{c1}(t\:+\:1)\:=\:y_{c1}(t)\:+\:\alpha(t)[x(t)\:-\:y_{c1} (t)]$ (属于不同类别)

$y_{c2}(t\:+\:1)\:=\:y_{c2}(t)\:+\:\alpha(t)[x(t)\:-\:y_{c2} (t)]$ (属于同一类)

这里,$\alpha$ 是学习率。

左室Q3

在 LVQ3 中,我们将取两个最接近的向量,即y c1y c2,窗口的条件如下 -

$$Min\begin{bmatrix}\frac{d_{c1}}{d_{c2}},\frac{d_{c2}}{d_{c1}}\end{bmatrix}\:>\:(1\ :-\:\theta)(1\:+\:\theta)$$

这里$\theta\大约0.2$

可以使用以下公式完成更新 -

$y_{c1}(t\:+\:1)\:=\:y_{c1}(t)\:+\:\beta(t)[x(t)\:-\:y_{c1} (t)]$ (属于不同类别)

$y_{c2}(t\:+\:1)\:=\:y_{c2}(t)\:+\:\beta(t)[x(t)\:-\:y_{c2} (t)]$ (属于同一类)

这里 $\beta$ 是学习率 $\alpha$ 和$\beta\:=\:m \alpha(t)$的倍数,对于每个0.1 < m < 0.5