(《机器学习》完整版系列)第10章 降维与度量学习——10.6 图像压缩(图像坐标x压缩成了坐标z么?错!)

利用主成分分析算法(PCA)可以进行图像压缩(准确的说法应该是“图像数据压缩”)。
x \boldsymbol{x} x降维成 z ^ \hat{\boldsymbol{z}} z^后,通常是基于 z ^ \hat{\boldsymbol{z}} z^继续后续的任务(存储、通信等环节),当然,若想从 z ^ \hat{\boldsymbol{z}} z^绘出图片,则需要恢复 x \boldsymbol{x} x(参见第11章的恢复方法,压缩是有损的),再由 x \boldsymbol{x} x绘出图片,即 x \boldsymbol{x} x z ^ \hat{\boldsymbol{z}} z^表示同一张图片,反过来说:它们是同一张图片的两种数据表示
变换式并不表明:图像坐标点 x \boldsymbol{x} x压缩成了新的图像坐标点 z ^ \hat{\boldsymbol{z}} z^,因为, z ^ \hat{\boldsymbol{z}} z^的维度为 d ′ d' d,并不能依扫描生成图像,许多同学在这里弄错了。

图像压缩

彩色图像可视为多通道,所以仅需考虑单通道,即灰度矩形图片。 设图片像素为 l × s l\times s l×s,将图像进行向量化:定义一种对图片扫描的次序,变一个二维图像为一组一维数据(向量),如,“先横后直”(注:你也可以定义其他扫描方式,如,“先直后横”,“平行于某对角线扫”,“绕中心转圈”,等等方式,总之,规定次序每点取值一次),则得到向量
x = ( x 1 ; x 2 ; ⋯   ; x l ; x l + 1 ; ⋯   ; x l × s ) \begin{align} \boldsymbol{x}=(x^1;x^2;\cdots ;x^l;x^{l+1};\cdots ;x^{l\times s}) \tag{10.62} \end{align} x=(x1;x2;;xl;xl+1;;xl×s)(10.62)
其中, x k x^k xk为图像在第 k k k个扫描点的灰度,向量 x \boldsymbol{x} x的维度为 d = l × s d=l\times s d=l×s
再将向量 x \boldsymbol{x} x中心化,为方便不妨设向量 x \boldsymbol{x} x已中心化,即现在有 ∑ k = 1 d x k = 0 \sum_{k=1}^dx^k=0 k=1dxk=0

考虑某类图像(如,人脸)的样本空间,对其应用主成分分析算法(PCA)。

设有该类图像的一个图片集(作为训练集) { x i } i = 1 m \{\boldsymbol{x}_i\}_{i=1}^m {xi}i=1m,以图片向量为列,形成图片集的矩阵 X \mathbf{X} X,将其协方差按PCA方式进行分解
X X T = W Λ W T = ( W ^ , ∗ ) ( Λ ^ 0 0 ∗ ) ( W ^ , ∗ ) T ≈ ( W ^ , ∗ ) ( Λ ^ 0 0 0 ) ( W ^ T ∗ ) = W ^ Λ ^ W ^ T \begin{align} \mathbf{X}\mathbf{X}^{\mathrm{T}} & =\mathbf{W}\boldsymbol{\Lambda }\mathbf{W}^{\mathrm{T}}\notag \\ & =(\hat{\mathbf{W}},*) \begin{pmatrix} \hat{\boldsymbol{\Lambda }} & 0 \\ 0 & * \end{pmatrix} (\hat{\mathbf{W}},*)^{\mathrm{T}}\notag \\ & \approx (\hat{\mathbf{W}},*) \begin{pmatrix} \hat{\boldsymbol{\Lambda }} & 0 \\ 0 & 0 \end{pmatrix} \begin{pmatrix} \hat{\mathbf{W}}^{\mathrm{T}} \\ * \end{pmatrix}\notag \\ & =\hat{\mathbf{W}}\hat{\boldsymbol{\Lambda }}\hat{\mathbf{W}}^{\mathrm{T}} \tag{10.63} \end{align} XXT=WΛWT=(W^,)(Λ^00)(W^,)T(W^,)(Λ^000)(W^T)=W^Λ^W^T(10.63)
其中, W \mathbf{W} W中的列向量(特征向量)与 Λ \boldsymbol{\Lambda } Λ中的对角线(特征值)已按PCA的要求排序; Λ ^ \hat{\boldsymbol{\Lambda }} Λ^为保留的前 d ′ d' d个最大的特征值形成的 d ′ × d ′ d'\times d' d×d矩阵,“ ∗ * ”为我们不关心的部分。

有了 W ^ \hat{\mathbf{W}} W^,对于训练集中的图片或新图片( d d d维向量 x \boldsymbol{x} x)通过变换式(10.64)得到对应的 d ′ d' d维向量 z ^ \hat{\boldsymbol{z}} z^
z ^ = W ^ T x \begin{align} \hat{\boldsymbol{z}}=\hat{\mathbf{W}}^{\mathrm{T}}\boldsymbol{x} \tag{10.64} \end{align} z^=W^Tx(10.64)
以向量 z ^ \hat{\boldsymbol{z}} z^替代向量 x \boldsymbol{x} x,从而实现了降维。

现在,我们集中看一看各矩阵的维: X \mathbf{X} X d × m d\times m d×m W \mathbf{W} W d × d d\times d d×d Λ \boldsymbol{\Lambda} Λ d × d d\times d d×d Λ ^ \hat{\boldsymbol{\Lambda }} Λ^ d ′ × d ′ d'\times d' d×d W ^ \hat{\mathbf{W}} W^ d × d ′ d\times d' d×d x \boldsymbol{x} x d × 1 d\times 1 d×1 z ^ \hat{\boldsymbol{z}} z^ d ′ × 1 d'\times 1 d×1

d = l × s d=l\times s d=l×s,任何 d d d维的向量,依原定义的扫描次序,反过来即可从 d d d维向量获得像素为 l × s l\times s l×s的图像。

综上可知:

(1) W {\mathbf{W}} W的每列(即协方差的特征值)均可以得到一个 l × s l\times s l×s的图像,每个图像视为训练集(原图片集)的某个特征的可视化;当然, W ^ \hat{\mathbf{W}} W^就可得到 d ′ d' d l × s l\times s l×s的图像,即由图片集 X \mathbf{X} X通过PCA可得到其“主特征”图像集 W ^ \hat{\mathbf{W}} W^

(2)式(10.64)并不表明:图像 x \boldsymbol{x} x压缩成了图像 z ^ \hat{\boldsymbol{z}} z^,因为, z ^ \hat{\boldsymbol{z}} z^的维度为 d ′ d' d,并不能依扫描生成图像,许多同学在这里弄错了。

(3)存储 x \boldsymbol{x} x需要长度为 d = l × s d=l\times s d=l×s的数组(通常很大),而存储 z ^ \hat{\boldsymbol{z}} z^仅需要长度为 d ′ d' d的数组,通常 d ′ ≪ d d' \ll d dd,这在存储、通信等环节起到了数据压缩的效果。

(4)通过式(10.64)将 x \boldsymbol{x} x降维成 z ^ \hat{\boldsymbol{z}} z^后,通常是基于 z ^ \hat{\boldsymbol{z}} z^继续后续的任务,当然,若想从 z ^ \hat{\boldsymbol{z}} z^绘出图片,则需要通过式(10.64)恢复 x \boldsymbol{x} x(参见第11章的恢复方法,压缩是有损的),再由 x \boldsymbol{x} x绘出图片,即 x \boldsymbol{x} x z ^ \hat{\boldsymbol{z}} z^表示同一张图片,反过来说:它们是同一张图片的两种数据表示,由图片扫描直接得到 x \boldsymbol{x} x,再由式(10.64)得到其低维表示 z ^ \hat{\boldsymbol{z}} z^

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:10.5 主成分分析的目标求解(“丢掉不重要属性”是错误的)
下一篇:10.7 核化线性降维(线性降维+“核技巧”)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值