【问题标题】:What is vector quantization using k-means?什么是使用 k-means 进行矢量量化?
【发布时间】:2013-07-09 01:20:28
【问题描述】:
首先,有人能解释一下向量量化是什么、它的目的以及它的作用吗?其次,对如何使用 k-means 进行此操作的解释也将不胜感激。
为了记录,我不知道这是否会对解释产生影响,但我正在尝试在边界描述符的上下文中了解向量量化。如果我为图像中的特定片段计算了多个边界描述符,并且我想使用 k-means 对它们进行矢量量化,这意味着什么,这会做什么,我为什么要这样做,以及我会怎么做它?
【问题讨论】:
标签:
vector
k-means
descriptor
segment
quantization
【解决方案1】:
向量量化是离散化某个向量空间中的随机变量的过程。结果是将随机变量投影到有限的节点集上。它用于信号传输、正交、方差减少和许多其他应用。
最佳量化包括以最小化平均 L^p 离散化误差的方式选择节点。
K-means 也称为 Lloyd 算法,包括从任意一组节点(或码本)开始,并用 L^p 中值(或简单地用二次量化的平均值)迭代地替换每个节点) 的概率分布,假设它落在该结的 Voronoi 单元中。交互式动画可用here。
Lloyd算法的历史参考如下
Stuart P. Lloyd,PCM 中的最小二乘量化,IEEE Transactions on Information Theory,vol。 28,第 2 期,第 129-137 页,1982 年
K-means 算法总是减少量化误差,但并不总是收敛到全局最优量化器。尽管在一维对数凹分布的情况下,该算法收敛到一个唯一的全局最小值。
optimal quantization web site 包含有关矢量量化和函数量化的大量参考书目。