量化简介#
假设有 \(x\in [\alpha, \beta]^n \subseteq \mathbb{R}^n\),记量化函数 \(Q: [\alpha, \beta]^n \longmapsto [\alpha_q, \beta_q]^n\),缩放函数(scaling function) \(sc: [\alpha, \beta]^n \to [0, 1]^n\)。量化函数的一般结构如下:
(7)#\[
Q(x) = sc^{-1}(\hat{Q}(sc(x)))
\]
其中 \(sc^{-1}\) 是 \(sc\) 的逆函数,\(\hat{Q}\) 是实际的量化函数(仅接受 \([0, 1]\) 的值)。
对于线性缩放
\[
sc(x) = \cfrac{x-x_{\min}}{x_{\max}-x_{\min}} = \cfrac{x-\alpha}{\beta-\alpha}
\]
有
\[
sc^{-1}(x) = \alpha + (\beta-\alpha)x
\]
进一步得
\[
Q(x) = (\beta - \alpha)\hat{Q}(\cfrac{x-\alpha}{\beta-\alpha}) + \alpha
\]
假定 \(Q(\alpha) = \alpha_q, Q(\beta) = \beta_q\),则有
\[\begin{split}
\begin{cases}
\hat{Q}(1) - \hat{Q}(0) = \cfrac{\beta_q - \alpha_q}{\beta - \alpha} \\
\cfrac{\hat{Q}(1)}{\hat{Q}(0)} = \cfrac{\beta_q - \alpha}{\alpha_q - \alpha}
\end{cases}
\end{split}\]
则有
\[\begin{split}
\begin{cases}
\hat{Q}(0) = \cfrac{\beta_q - \alpha}{\beta - \alpha}\\
\hat{Q}(1) = \cfrac{\alpha_q - \alpha}{\beta - \alpha}
\end{cases}
\end{split}\]
记
\[\begin{split}
\begin{cases}
S = \cfrac {\beta - \alpha}{\beta_q - \alpha_q}\\
Z = -(\cfrac{\alpha}{S} - \alpha_q) = \alpha_q - \cfrac{\alpha}{S}
\end{cases}
\end{split}\]
计算机是以二进制形式计数的,需要将其离散化。考虑无符号数据,以 \(k\) bit 存储数据,则其存储的整数值范围为 \([0, 2^k-1]\),即 \(\beta_q - \alpha_q=2^k - 1\)。
记 \(x\) 的离散化表示为 \(x_q=\cfrac{1}{2^k-1} \sum_{p=0}^{k-1} x_p 2^p\),其中 \(x_p \in \{0, 1\}\)。称 \(x_q\) 的值域 \(L_q = \{0, \cfrac{1}{2^k-1}, \cfrac{2}{2^k-1}, \cdots, 1\}\) 为量化水平集。