5-3 Learning Vector Quantization (���������������������

[chinese][english]
Learning vector quantization (LVQ) combines the concepts of vector quantization and nearest-neighbor classification to update the cluster centers for better recognition rates. More specifically, LVQ updates the cluster centers in an incremental manner, such that the updated centers can lead to a better accuracy of recognition, as follows:
  1. Set repesentative centers for each class. Suppose that we have 3 clusters for a 4-class problem, then the number of centers are 12 in total. These cluster centers can be obtained by k-means clustering over each individual class. (In practice, the number of clusters for each class can be set to be proportional to the size of the class.)
  2. For each data point x, find the nearest centers yk. Based on the class labels of x and yk, update centers as follows:
    • If the class labels are the same, then move yk toward x:
      yk = yk + £\ [x - yk]
    • If the class labels are different, then move yi away from x:
      yk = yk - £\ [x - yk]
  3. Update the learning rate £\.
  4. Back to step 2 until all the centers converge.
Note that the learning rate £\ is decreased with each iteration, with 0<£\<1.

¾Ç²ß¦¡¦V¶q¶q¤Æ¡]learning vector quantization¡^²ºÙ LVQ¡A¦¹¤èªk¬O³z¹L¦Û°Ê¾Ç²ßªººt¶i¹Lµ{¡A¶i¦æ§Y®Éªº·L½Õ¡A¨Ï¦U­ÓÃþ§Oªº¥NªíÂIÁͪñ³Ì¨Î­È¡A¥i»¡©ú¦p¤U¡G

  1. ³]©w¨C¤@­ÓÃþ§Oªº¥NªíÂI¡C°²³]¦@¦³¥|­ÓÃþ§O¡A¨C¤@­ÓÃþ§O¦³¤T­Ó¥NªíÂI¡A¨º´N¦@¦³ 12 ­Ó¥NªíÂI¡C¨C­ÓÃþ§Oªº¥NªíÂI¡A¥i¥Ñ¦¹Ãþ§Oªº¸ê®Æ¨Ó¶i¦æ k-means ¤À¸sªk¦Ó±o¨ì¡A³o¤è­±¬O©M VQ §¹¥þ¬Û¦P¡C¡]¦pªG¨C­ÓÃþ§O¸ê®Æ­Ó¼Æ®t¶Z«Ü¤j¡A¤]¥i¥HÅý¨ã¦³¤j¶q¸ê®ÆªºÃþ§O¦³¸û¦hªº¥NªíÂI¡C¡^
  2. ¹ï¨C¤@­Ó¸ê®ÆÂI x¡A´M§ä³Ì±µªñªº¥NªíÂI¡A°²³]¬O yk
  3. ¤ñ¸û x ©M yk ªºÃþ§O¡A¶i¦æ¤U¦C³B²z¡G
    • ­YÃþ§O¬Û¦P¡A«h±N yk ´Â x ªº¤è¦V©Ôªñ¡G
      yk = yk + £\ [x - yk]
    • ­YÃþ§O¤£¦P¡A«h±N yi ´Â x ªº¤Ï¤è¦V©Ô»·¡G
      yk = yk - £\ [x - yk]
  4. ¦^¨ì¨BÆJ¤G¡A¤ÏÂйï©Ò¦³¸ê®ÆÂI¶i¦æ¹Bºâ¨Ã·L½Õ¥NªíÂI¡Aª½¨ì¥NªíÂI¤£¦AÅܤơC
¨ä¤¤¡A£\ ¬O¤@­ÓÀHÅ|¥N¦¸¼Æ¦Ó»¼´î¨ç¼Æ¡A¦Ó¥B0 < £\ < 1¡C

After the cluster centers converge, we can then use these centers to represent the original class. For any unseen data, we can apply k-nearest-neighbor classification to determine its class.

¤W­zÅ|¥N¤èªk¦¬ÀÄ«á¡A§Ú­Ì§Y¥i¥H¨Ï¥Î¨C­ÓÃþ§Oªº¥NªíÂI¨Ó¥Nªí³o¤@Ãþªº¸ê®Æ¤À§G¡C¹J¨ì¥¼ª¾Ãþ§Oªº·s¸ê®Æ¡A§Ú­Ì¥u»Ý¥H³Ìªñ¾F©~ªk«h¡A§ä¥X³Ìªñªº¥NªíÂI¡A§Y¥i§P©w¸Ó¸ê®ÆªºÃþ§O¡C

Here is a summary of the difference between LVQ and VQ.

LVQ ªº¤èªk©M VQ «Ü±µªñ¡A¦ý¤£¦Pªº¬O¡G

Hint
If you have installed Neural Network Toolbox, you can type "nnd14lv1" or "nnd14lv2" to view interactive demos of LVQ.

Hint
¦pªG§A¦³¦w¸Ë¡uÃþ¯«¸gºô¸ô¤u¨ã½c¡v¡A´N¥i¥H¦b MATLAB ¿é¤J nnd14lv1 ©Î¬O nnd14lv2¡A´N¥i¥H¬Ý¨ì LVQ ªº¤¬°Ê¦¡®i¥Ü¡C

References:

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

Data Clustering and Pattern Recognition (¸ê®Æ¤À¸s»P¼Ë¦¡¿ë»{)