5-3 Learning Vector Quantization (學習式向量量化)

[english][all]

(請注意:中文版本並未隨英文版本同步更新!)

學習式向量量化(learning vector quantization)簡稱 LVQ,此方法是透過自動學習的演進過程,進行即時的微調,使各個類別的代表點趨近最佳值,可說明如下:

  1. 設定每一個類別的代表點。假設共有四個類別,每一個類別有三個代表點,那就共有 12 個代表點。每個類別的代表點,可由此類別的資料來進行 k-means 分群法而得到,這方面是和 VQ 完全相同。(如果每個類別資料個數差距很大,也可以讓具有大量資料的類別有較多的代表點。)
  2. 對每一個資料點 x,尋找最接近的代表點,假設是 yk
  3. 比較 xyk 的類別,進行下列處理:
    • 若類別相同,則將 ykx 的方向拉近:
      yk = yk + α [x - yk]
    • 若類別不同,則將 yix 的反方向拉遠:
      yk = yk - α [x - yk]
  4. 回到步驟二,反覆對所有資料點進行運算並微調代表點,直到代表點不再變化。
其中,α 是一個隨疊代次數而遞減函數,而且0 < α < 1。

上述疊代方法收斂後,我們即可以使用每個類別的代表點來代表這一類的資料分佈。遇到未知類別的新資料,我們只需以最近鄰居法則,找出最近的代表點,即可判定該資料的類別。

LVQ 的方法和 VQ 很接近,但不同的是:

Hint
如果你有安裝「類神經網路工具箱」,就可以在 MATLAB 輸入 nnd14lv1 或是 nnd14lv2,就可以看到 LVQ 的互動式展示。

References:

  1. T. Kohonen, "Improved Versions of Learning Vector Quantization", International Joint Conference on Neural Networks (IJCNN), 1990.

Data Clustering and Pattern Recognition (資料分群與樣式辨認)