Vector Quantization(VQ)

15
96/09/27 指指指指 : 指指指 指指指 : 指指指

description

Vector Quantization(VQ). 96/09/27 指導教授 : 廖元甫 演講者 : 黃重傑. Outline. Goal Introduction VQ codebook 的產生. Goal. 對一組參數同時做量化,將位元率降低 為了做 MLVQ(EM) 而做的前置作業 ( 分群 ). Scalar & Vector Quantization. 量化對象為 一個實數 所表示的數量,就叫做數 量量化 (Scalar Quantization) 如果我們同時對 一組實數 做量化,將這組實數 - PowerPoint PPT Presentation

Transcript of Vector Quantization(VQ)

Page 1: Vector Quantization(VQ)

96/09/27

指導教授 : 廖元甫 演講者 : 黃重傑

Page 2: Vector Quantization(VQ)

OutlineGoalIntroductionVQ codebook 的產生

Page 3: Vector Quantization(VQ)

Goal對一組參數同時做量化,將位元率降低為了做 MLVQ(EM) 而做的前置作業 ( 分群 )

Page 4: Vector Quantization(VQ)

Scalar & Vector Quantization量化對象為一個實數所表示的數量,就叫做數 量量化 (Scalar Quantization)

如果我們同時對一組實數做量化,將這組實數 看成是一個向量,就叫做向量量化 (Vector

Quantization)

Page 5: Vector Quantization(VQ)

Uniform & non uniform quatization均勻量化 固定量化間距,相對於小訊號 SNR 較小 ,相對於大訊號 SNR 較大

非均勻量化 非固定量化間距,小訊號使用小量化間距,大訊號使用大量化間距

可降低平均量化誤差

Page 6: Vector Quantization(VQ)

Uniform & non uniform quatization

2

2x

d

SNR

Page 7: Vector Quantization(VQ)

VQ as space partition

Codeword

( 中心點 )

Partition

( 群 )

( )i iz cent C

Page 8: Vector Quantization(VQ)

VQ Introduction 一個向量 x 落在 Ci這個區域,我們就用一個代表向量來代表。

Input vector:

mapping vector:

每一個 cell ( region ) Ci 會有一個 codeword zi 。

1 2 3

T

i M iz z z z z 1 2 3

T

Mx x x x x

[ ],i iz Q if C x x

Page 9: Vector Quantization(VQ)

Distortion measure其中量化誤差標示為

Overall average distortion:

1

1

1

,

, |

, |i

M

i i ii

M

i i ii x C

M

ii

D E d

p C E d C

p C d p C d

D

x z

x x z x

x x z x x x

2i i

i=1

( , ) (x -z )d

d x z

( , )kd x z

Page 10: Vector Quantization(VQ)

Two necessary conditions for optimality

1. using a nearest-neighbor selection rule

if and only if

2. each codeword zi is chosen to minimize the

average distortion in cell Ci

arg min ( , )kk

i d x z[ ] iQ x z

arg min ( )i

i i iz

z D z

Page 11: Vector Quantization(VQ)

Codebook 的產生量化器中需有一張對照表,記載每個 codewords 對應的

B 個位元,稱之為碼本 (codebook)

如何用一群資料來得出碼本,以下為常用的三種方法 :K-means algorithmLBG algorithmCentroid splitting algorithm

Page 12: Vector Quantization(VQ)

K-meanA. 初始化 選擇一些適當的方法取得初始的 VQ codebook , k, k = 1, 2, …, K,對

每一群計算其平均值,作為初始的中心點, , k = 1, 2, …, K。B. 遞迴演算 1. 將每一個訓練資料 x ,對所有 K個中心點計算與其之間的距離,讓它歸屬到

距 離最短的中心點去。 2. 所有屬於 資料 x 形成一個群,重新計算其中心點 。 3. 如果新的一組中心點與原來一組中心點一樣,沒有改變,就表示訓練結束。

否則,就以新的一組中心點替代原來的一組中心 點,回到 ( 步驟 1) 繼續遞迴演算。

ky

*kC *

'

ky

Page 13: Vector Quantization(VQ)

LBGA. 初始化選擇一些適當的方法取得初始的 VQ codebook , , k=1,2,….,K ,組成初始碼

本。B. 遞迴演算1. 將每個訓練資料 x ,對 codebook 去做量化,歸屬到相對應的中心點。 , 其中

, 。2. 計算總失真量

如果 D 的值小於預設值,則停止遞迴演算,否則繼續下一步驟。3. 所有屬於 的 x 形成一個群,重新計算中心點 ,組成新的

codebook 。如果遞迴次數未達到預設值,就回到步驟 (1) ,繼續遞迴演算。

[ ]ky Q x * arg min ( , )kk d x y *kx C

( , ( ))D d x Q x

*kC *

'

ky

ky

Page 14: Vector Quantization(VQ)

中心點分裂 A. 初始化 將全部訓練資料一起計算一個中心點,作為最開始的碼字,另外設定兩個指

標值 n = 0, k = 1 。 B. 遞迴演算 1. 在 n 階段,有 2n 個中心點,將中心點分裂為兩個中心點。 為一個小

值,一般取為 0.01 ,因此得出 22n 個中心點。

2. 每一個訓練資料 x 對所有中心點計算距離,找出歸屬的中心點。 3. 每個中心點所屬的訓練資料集合起來,計算新的中心點。 4. 如果 n+1 已經是預訂要達到的遞迴條件,就代表訓練結束,否則以 n+1

替代 n ,回到步驟 (1) ,繼續下一階段的分裂。

)()()( )1(與)1( nk

nk

nk yyy

Page 15: Vector Quantization(VQ)

Demo for VQDemo for VQ