高级人工智能之特征表示和压缩

本章主要讲解了矢量量化(Vector Quantization)这种信号压缩方法,并介绍了如何通过K-Means这种聚类算法构建矢量的码书(code-book vectors)。

矢量量化Vector Quantization

线性矢量量化

如下图所示,沿着输入仿真信号analog voltage的值域[0-1]进行线性划分,我们可以对每段划分进行区分标记,这里选择了一个8bit的值进行标记。最终通过这个序号,我们就能得到对应的voltage大小段。
请添加图片描述

多维矢量量化

对于前面有两个未知数的线性预测表示法LPC2,如果我们有多种声音sound segments需要区分,对其进行矢量表示,相当于就是在一个二维空间里进行了二维划分,如下图所示。对三种声音e、i、u对应的LPC2进行划分,构建了一个码表(code table),通过码表中的code,我们就能得到对应声音的LPC coefficients,也就能重建其音帧的声波图。
请添加图片描述
更进一步地,在一个LPC8的例子中,如下,有256种声音,一种声音sound采样了512个样本点,这512个采样点构成一个段segement,一个段可以用8个数字的coefficients进行重建,因此可以将8个coefficients当作一种声音的一段音帧。我们事先构建码表,并在开始前由传送方transmitter向接收方receiver传送一次,以后每次transmitter只需要传送1 byte的code,接收方就能够找到对应的LPC系数。
请添加图片描述
上面这个例子的矢量量化极大地压缩了传输数据,假设原来用8 bits描述每个采样点,原来传输512个样本需要512bytes数据量;如果变为传输LPC8系数,需要8个float,需要32bytes的数据量;进一步压缩,如果在之前传好code-book的前提下,每次只需要传送1byte的code,receiver就能找到对应的声音特征。

K-Means

在对状态空间进行矢量量化的时候,K-Means是一种很好的聚类方法,能将状态空间划分成相对独立的区域。

传统K-Means

其基本步骤为:1.随取选取样本中心初始化簇,2. 将所有样本划分到对应的簇上,3.更新所有簇的新样本中心,4.重复以上过程直至中心变化小于某个阈值
请添加图片描述

二分Binary split K-Means

二分K-Means算法步骤为:1.先找到一个中心点,这个点的坐标是所有点的平均值;2. 然后从这个点开始split划分出两个点,作为新簇的中心点,以这两个点为中心在进行一次K-means聚类分组,找到了2个新的中心点。3. 重复以上过程直到满足分簇数量。
请添加图片描述
请添加图片描述
请添加图片描述
在这里插入图片描述

习题1:
请添加图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网民工蒋大钊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值