(《机器学习》完整版系列)第11章 特征选择与稀疏学习——11.5 稀疏表示与字典学习(字典、词频、文档的特征)

当我们把文档当作样本,词汇当作属性,属性的取值为该词汇在文档中占比(个数/总词汇数)——词频统计表
“词典”有对词的“释义”,取该词属于某一类的可能性(隶属度)作为其“释义”——词典矩阵
采用变量交替优化策略求解,用到矩阵的奇异值分解

稀疏表示与字典学习

通常我们用二维表格的形式表示数据集 D D D

  • 每行表示一个样本。
  • 每列代表一个属性(特征)。

当我们把文档当作样本,词汇当作属性,属性的取值为该词汇在文档中占比(个数/总词汇数),则有表11.5。

显然,表11.5 中表体(词汇统计)会出现很多0,因为,在一个文档中出现的词汇在另一个文档中不一定出现,特别是不同类型的文档放在一起更是如此,故该表体是稀疏的。 表11.5 中的表头{词汇1,词汇2,词汇3, ⋯ \cdots ,词汇d}可视“字典”或“词典”。

“词典”有对词的“释义”,取该词属于某一类的可能性(隶属度)作为其“释义”,现在我们将“词典”视为一本“体育词典",在表11.5 中加上“释义”形成表 11.6 。

由表 11.6 可以得到文档的体育性质的评分,如,文档1属于体育类文章的评分为
( 1 , 0.2 , 0.6 , ⋯   , 0.3 ) ( 2 % , 0 , 5 % , ⋯   , 1.6 % ) T (1,0.2,0.6,\cdots ,0.3)(2\%,0,5\%,\cdots ,1.6\%)^\mathrm{T} (1,0.2,0.6,,0.3)(2%,0,5%,,1.6%)T

现在我们在表 11.6 中添加文艺释义、新闻释义,等等,形成一本综合词典,表 11.6 变成了表 11.7 。
在这里插入图片描述

则文档1属于各类的评分为:

体育类得分: ( 1 , 0.2 , 0.6 , ⋯   , 0.3 ) ( 2 % , 0 , 5 % , ⋯   , 1.6 % ) T (1,0.2,0.6,\cdots ,0.3)(2\%,0,5\%,\cdots ,1.6\%)^\mathrm{T} (1,0.2,0.6,,0.3)(2%,0,5%,,1.6%)T

文艺类得分: ( 0 , 0.7 , 0.1 , ⋯   , 1 ) ( 2 % , 0 , 5 % , ⋯   , 1.6 % ) T (0,0.7,0.1,\cdots ,1)(2\%,0,5\%,\cdots ,1.6\%)^\mathrm{T} (0,0.7,0.1,,1)(2%,0,5%,,1.6%)T

⋯ ⋯ \cdots \cdots ⋯⋯

将其用一个式子表示,即为

( 体育类得分 文艺类得分 ⋮ ) = ( 1 0.2 0.6 ⋯ 0.3 0 0.7 0.1 ⋯ 1 ⋮ ⋮ ⋮ ⋮ ⋮ ) ( 2 % 0 , 5 % ⋮ 1.6 % ) \begin{align*} \begin{pmatrix} \text{体育类得分}\\ \text{文艺类得分}\\ \vdots \end{pmatrix} = \begin{pmatrix} 1&0.2&0.6&\cdots &0.3\\ 0&0.7&0.1&\cdots &1\\ \vdots &\vdots&\vdots&\vdots&\vdots \end{pmatrix} \begin{pmatrix} 2\%\\ 0,5\%\\ \vdots \\ 1.6\% \end{pmatrix} \end{align*} 体育类得分文艺类得分 = 100.20.70.60.10.31 2%0,5%1.6%
将上述讨论总结为
x = B α \begin{align} \boldsymbol{x}=\mathbf{B}\boldsymbol{\alpha } \tag{11.15} \end{align} x=Bα(11.15)

若用于多份文档,加个文档编号下标即可。
x i = B α i \begin{align} \boldsymbol{x}_i=\mathbf{B}\boldsymbol{\alpha }_i \tag{11.16} \end{align} xi=Bαi(11.16)
其中, B \mathbf{B} B即为字典矩阵,它有 k k k列代表着有 k k k个词汇( k k k即为词汇量),它有 d d d行,每行是一个主题(如,第一行为体育),即有 d d d个主题,值为各词汇对各主题的隶属度(如,排球对体育主题的隶属度为1), i i i为文档编号, x i \boldsymbol{x}_i xi为列向量,分量对应为属于该行主题的得分(如,第一行为体育), α i \boldsymbol{\alpha}_i αi为列向量,它为文档 i i i中各词汇的频度统计。

式(11.16)将文档 i i i的词频表达( α i \boldsymbol{\alpha}_i αi)转换成了主题表达( x i \boldsymbol{x}_i xi),转换后,通过比效 x i \boldsymbol{x}_i xi的分量就可以判断该文档是哪一类主题,如,体育和新闻主题得分高,就可知道该文档是一篇体育新闻。

观察式(11.16), x i \boldsymbol{x}_i xi d d d维, α i \boldsymbol{\alpha}_i αi k k k维, d ≪ k d \ll k dk,但 α i \boldsymbol{\alpha}_i αi为稀疏的,因此, α i \boldsymbol{\alpha}_i αi可以视为 x i \boldsymbol{x}_i xi的稀疏表达。 由此,已知 x i \boldsymbol{x}_i xi求其稀疏表达,这时需要字典 B \mathbf{B} B。 当不知道字典时,就需要进行字典学习,这时,可从【西瓜书式(11.15)】出发进行字典学习。

由于【西瓜书式(11.15)】中有两个变量( B \mathbf{B} B α i \boldsymbol{\alpha}_i αi),故采用变量交替优化策略求解。

问题1:固定 B \mathbf{B} B α i   ( i = 1 , 2 , ⋯   , m ) \boldsymbol{\alpha}_i\ (i=1,2,\cdots,m) αi (i=1,2,,m),其优化目标为
min ⁡ α i ∣ ∣ x i − B α i ∣ ∣ 2 2 + λ i ∣ ∣ x i ∣ ∣ 1 \begin{align} \mathop{\min}\limits_{\boldsymbol{\alpha}_i}||\boldsymbol{x}_i-\mathbf{B}\boldsymbol{\alpha }_i ||_2^2+{\lambda}_i|| \boldsymbol{x}_i||_1 \tag{11.17} \end{align} αimin∣∣xiBαi22+λi∣∣xi1(11.17)

问题2:固定 α i   ( i = 1 , 2 , ⋯   , m ) \boldsymbol{\alpha}_i\ (i=1,2,\cdots,m) αi (i=1,2,,m) B \mathbf{B} B,其优化目标为
min ⁡ B ∣ ∣ X − B A ∣ ∣ F 2 \begin{align} \mathop{\min}\limits_{\mathbf{B}}||\mathbf{X}-\mathbf{B}\mathbf{A} ||_F^2 \tag{11.18} \end{align} Bmin∣∣XBAF2(11.18)
其中, X = ( x 1 , x 2 , ⋯   , x m ) , A = ( α 1 , α 2 , ⋯   , α m ) \mathbf{X}=(\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_m),\mathbf{A}=(\boldsymbol{\alpha}_1,\boldsymbol{\alpha}_2,\cdots,\boldsymbol{\alpha}_m) X=(x1,x2,,xm),A=(α1,α2,,αm),且已知 X \mathbf{X} X

变量交替优化策略就是将原问题【西瓜书式(11.15)】的求解转化为交替地求解问题1和问题2,反复迭代直到某结束条件被满足。

问题1的求解可使用PGD【西瓜书式(11.8)】的方式求解,注意:需要求解 m m m次,每次得到一个 α i   ( i = 1 , 2 , ⋯   , m ) \boldsymbol{\alpha}_i\ (i=1,2,\cdots,m) αi (i=1,2,,m)

问题2的求解采用KSVD对其逐列更新,它实际上也是采用变量交替优化策略。 这里重点讲一下该方法。

B = ( b 1 , b 2 , ⋯   , b k ) \begin{align} \mathbf{B}=(\boldsymbol{b}_1,\boldsymbol{b}_2,\cdots,\boldsymbol{b}_k) \tag{11.19} \end{align} B=(b1,b2,,bk)(11.19)
其中, b j \boldsymbol{b}_j bj为列向量。 这样,矩阵 B \mathbf{B} B视为 k k k个未知向量,采用变量交替优化策略:固定 k − 1 k-1 k1个求其中一个向量 b i \boldsymbol{b}_i bi。 从 b 1 \boldsymbol{b}_1 b1 b k \boldsymbol{b}_k bk逐个求一遍算作一轮,可以进行多轮迭代。

下面求 b i \boldsymbol{b}_i bi,将矩阵 A \mathbf{A} A视为行向量组成,即
A = ( α 1 ; α 2 ; ⋯   ; α k ) \begin{align} \mathbf{A}=(\boldsymbol{\alpha}^1;\boldsymbol{\alpha}^2;\cdots;\boldsymbol{\alpha}^k) \tag{11.20} \end{align} A=(α1;α2;;αk)(11.20)
式(11.18)已将矩阵 A \mathbf{A} A视为列向量组成(下标表示),这里又视为行向量组成(上标表示),它们的关系体现在矩阵 A \mathbf{A} A的元素表示为 ( A ) i j = α j i (\mathbf{A})_{ij}={\alpha}^i_j (A)ij=αji

将式(11.19)、式(11.20)代入式(11.18),有
∣ ∣ X − B A ∣ ∣ F 2 = ∣ ∣ X − ∑ j = 1 k b j α j ∣ ∣ F 2 = ∣ ∣ ( X − ∑ j ≠ i k b j α j ) − b i α i ∣ ∣ F 2 = ∣ ∣ E i − b i α i ∣ ∣ F 2 \begin{align} \big|\big|\mathbf{X}-\mathbf{B}\mathbf{A} \big|\big|_F^2 &=\big|\big|\mathbf{X}-\sum_{j=1}^k\boldsymbol{b}_j\boldsymbol{\alpha}^j\big|\big|_F^2\notag\\ &=\big|\big|(\mathbf{X}-\sum_{j\neq i}^k\boldsymbol{b}_j\boldsymbol{\alpha}^j)-\boldsymbol{b}_i\boldsymbol{\alpha}^i\big|\big|_F^2\notag\\ &=\big|\big|\mathbf{E}_i-\boldsymbol{b}_i\boldsymbol{\alpha}^i\big|\big|_F^2 \tag{11.21} \end{align} XBA F2= Xj=1kbjαj F2= (Xj=ikbjαj)biαi F2= Eibiαi F2(11.21)
其中, E i = X − ∑ j ≠ i k b j α j \mathbf{E}_i=\mathbf{X}-\sum_{j\neq i}^k\boldsymbol{b}_j\boldsymbol{\alpha}^j Ei=Xj=ikbjαj为已知矩阵(由于上述的固定)。

优化目标式(11.18)变为
min ⁡ b i ∣ ∣ E i − b i α i ∣ ∣ F 2 \begin{align} \mathop{\min}\limits_{\boldsymbol{b}_i}\big|\big|\mathbf{E}_i-\boldsymbol{b}_i\boldsymbol{\alpha}^i\big|\big|_F^2 \tag{11.22} \end{align} bimin Eibiαi F2(11.22)
求解式(11.22)归结为对 E i \mathbf{E}_i Ei进行奇异值分解(参见【西瓜书附录式(A.34)】),为保证奇异值分解过程不影响在求解问题1时获得的 A \mathbf{A} A的稀疏性,我们对式(11.22)作特殊处理(“瘦身”)再求解:

(1)由 A \mathbf{A} A的稀疏性知 α i \boldsymbol{\alpha}^i αi中会有许多零元素,将行向量 α i \boldsymbol{\alpha}^i αi的零元素删除,得到 ( α i ) ′ (\boldsymbol{\alpha}^i)' (αi)

(2)矩阵 E i \mathbf{E}_i Ei中保留与 ( α i ) ′ (\boldsymbol{\alpha}^i)' (αi)对应的列。 可这样操作:作二维表,以行向量 α i \boldsymbol{\alpha}^i αi作为表头,以矩阵 E i \mathbf{E}_i Ei作为表体,删除 α i \boldsymbol{\alpha}^i αi零元素所在的列,则表头变为了 ( α i ) ′ (\boldsymbol{\alpha}^i)' (αi)、表体变为了 ( E i ) ′ (\mathbf{E}_i)' (Ei)

(3)优化目标式(11.22)变为
min ⁡ b i ∣ ∣ ( E i ) ′ − b i ( α i ) ′ ∣ ∣ F 2 \begin{align} \mathop{\min}\limits_{\boldsymbol{b}_i}\big|\big|(\mathbf{E}_i)'-\boldsymbol{b}_i(\boldsymbol{\alpha}^i)'\big|\big|_F^2 \tag{11.23} \end{align} bimin (Ei)bi(αi) F2(11.23)

(4)对式(11.23)加上“低秩”要求(需要指定超参数 k k k,缺省为 A \mathbf{A} A的秩),即为【西瓜书附录式(A.34)】,其中, A = ( E i ) ′ , A ~ = b i ( α i ) ′ \mathbf{A}=(\mathbf{E}_i)',\tilde{\mathbf{A}} =\boldsymbol{b}_i(\boldsymbol{\alpha}^i)' A=(Ei),A~=bi(αi)

(5)采用奇异值分解方法得到 A ~ \tilde{\mathbf{A}} A~的最优解为【西瓜书附录式(A.35)】的 A k {\mathbf{A}}_k Ak

(6)从 b i ( α i ) ′ = A k \boldsymbol{b}_i(\boldsymbol{\alpha}^i)'={\mathbf{A}}_k bi(αi)=Ak中求出 b i \boldsymbol{b}_i bi即可。


本文为原创,您可以:

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

上一篇:11.4 嵌入式选择与L1正则化(将特征选择嵌入到优化算法中,以LASSO算法为代表)
下一篇:11.6 压缩感知(RIP算法竟将要解的方程式视为约束条件)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值