ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

稀疏表示分类

2021-11-25 16:00:07  阅读:172  来源: 互联网

标签:表示 ... 分类 bold boldsymbol 稀疏 样本 alpha


稀疏表示分类

1. 机器学习中稀疏表示与字典学习1

字典学习也叫稀疏编码,但这两个称谓有稍稍的区别,“字典学习”侧重于描述学得字典的过层,而“稀疏编码”侧重于表述将原样本进行稀疏表达的过程。两者通常是在一个最优化求解过程中完成的,所以这两者不做进一步区分,笼统地认为是一个东西。

给定一个数据集   { x 1 , x 2 , . . . , x m } \ \{\boldsymbol{x_1,x_2,...,x_m}\}  {x1​,x2​,...,xm​},对此数据集进行字典学习的最简单形式为:
KaTeX parse error: Undefined control sequence: \norm at position 40: …}\sum_{i=1}^{m}\̲n̲o̲r̲m̲{\boldsymbol{x_…
其中   B ∈ R d × k \ B\in \bold{R}^{d\times k}  B∈Rd×k为字典矩阵,d表示样本特征维数,k表示此字典的词汇量,通常由用户指定。   α i ∈ R k \ \alpha_i \in \bold{R}^k  αi​∈Rk则是原始样本   x i \ \boldsymbol{x}_i  xi​的稀疏表示。

可以注意到上式前一项是2范数的平方,目的是希望能很好的重构   x i \ \boldsymbol{x}_i  xi​,这在高光谱残差中是2范数;后一项是   α i \ \alpha_i  αi​的1范数,目的是希望它尽量稀疏,这在高光谱最优化求解过程中是0范数。所以两者是有一定的区别的,但本质目的是一样的。

在《机器学习》这本书中,描述的求解上述最优化问题的方法是迭代求解。

第一步,固定   B \ \bold{B}  B,上面的问题转化为求解   α i \ \bold{\alpha_i}  αi​,具体解法可以参照LASSO:
KaTeX parse error: Undefined control sequence: \norm at position 24: …bold{\alpha}_i}\̲n̲o̲r̲m̲{\boldsymbol{x}…
第二步,此时我们可以根据得到的   α i \ \bold{\alpha}_i  αi​来更新字典   B \ \bold{B}  B,最优化问题变成:
KaTeX parse error: Undefined control sequence: \norm at position 15: \min_\bold{B}\̲n̲o̲r̲m̲{\bold{X-BA}}_F…
显然,上式   X = ( x 1 , x 2 , . . . , x m ) ∈ R d × m \ \bold{X}=(\boldsymbol{x_1,x_2,...,x_m})\in\bold{R}^{d\times m}  X=(x1​,x2​,...,xm​)∈Rd×m,   A = ( α 1 , α 2 , . . . , α m ) ∈ R k × m \ \bold{A}=(\boldsymbol{\alpha_1,\alpha_2,...,\alpha_m})\in\bold{R}^{k\times m}  A=(α1​,α2​,...,αm​)∈Rk×m,KaTeX parse error: Undefined control sequence: \norm at position 3: \ \̲n̲o̲r̲m̲{·}_F表示矩阵的Frobenius范数,对于这个式子的常用解法为基于逐列更新策略的KSVD算法

2. 稀疏表示分类2

假定共有n个训练样本,总共c类,并且对于第k类都有充足的训练样本,   A k = [ x k , 1 , x k , 2 , . . . , x k , n k ] ∈ R m × n k \ A_k=[x_{k,1},x_{k,2},...,x_{k,n_k}]\in\bold{R}^{m\times n_k}  Ak​=[xk,1​,xk,2​,...,xk,nk​​]∈Rm×nk​,其中   m \ m  m样本的特征维数,   n k \ n_k  nk​表示第k类中的训练样本数目。那么对于来自于第k类的任意测试样本   y ∈ R m \ y\in\bold{R}^m  y∈Rm,它都可以用第k类训练样本的线性组合近似表达:
y = α k , 1 x k , 1 + α k , 2 x k , 2 + . . . + α k , n k x k , n k \boldsymbol{y}=\alpha_{k,1}x_{k,1}+\alpha_{k,2}x_{k,2}+...+\alpha_{k,n_k}x_{k,n_k} y=αk,1​xk,1​+αk,2​xk,2​+...+αk,nk​​xk,nk​​
但因为   y \ \boldsymbol{y}  y的标签在一开始是不知道的,所以我们只好将其写作所有类别样本的线性组合。
y = A α \boldsymbol{y}=\boldsymbol{A\alpha} y=Aα
其中   A = [ A 1 , A 2 , . . . , A c ] = [ x 1 , 1 , x 1 , 2 , . . . , x c , n c ] ∈ R m × n \ \boldsymbol{A}=\boldsymbol{[A_1,A_2,...,A_c]}=[x_{1,1},x_{1,2},...,x_{c,n_c}]\in\bold{R}^{m\times n}  A=[A1​,A2​,...,Ac​]=[x1,1​,x1,2​,...,xc,nc​​]∈Rm×n为所有类别全部样本的矩阵,按照类别有序放好的,   α \ \bold{\alpha}  α为覆盖全样本的系数向量。

理想情况下 y \boldsymbol{y} y是应该仅由某一特定类别的系数   α k \ \bold{\alpha}_k  αk​所确定,所以在这里   α = [ 0 , . . . , 0 , α k , 1 , α k , 2 , . . . , α k , n k , 0 , . . . , 0 ] T ∈ R n \ \bold{\alpha}=[0,...,0,\alpha_{k,1},\alpha_{k,2},...,\alpha_{k,n_k},0,...,0]^T\in\bold{R}^n  α=[0,...,0,αk,1​,αk,2​,...,αk,nk​​,0,...,0]T∈Rn在c足够大的情况下,应当为一稀疏向量。

如果   m < n \ m \lt n  m<n,即特征维度小于样本数目时,上式是欠定的3,因此问题转为受约束条件的最优化问题:
KaTeX parse error: Undefined control sequence: \norm at position 55: …limits_{\alpha}\̲n̲o̲r̲m̲{\alpha}_0\\ s.…
求解此最优化问题是一个NP-hard问题,也就是无法找到最稀疏的解,但可以转为贪心算法求局部最优解,或者将0范数转为1范数,进而最问题变为求解凸松弛优化。又由于观测值是不精确的,所以约束条件不应该是严格等,所以改写如下:
KaTeX parse error: Undefined control sequence: \norm at position 55: …limits_{\alpha}\̲n̲o̲r̲m̲{\alpha}_1\\ s.…
当我们经过一系列算法后得到了   α ^ \ \hat{\bold{\alpha}}  α^,请注意它是一个近似解!接下来我们需要使用它来进行重构测试样本。我们前面说到,全样本   A \ \boldsymbol{A}  A是根据类别有序放好的,那么   α ^ \ \hat{\bold{\alpha}}  α^中每个类别所对应的   α ^ k \ \hat{\bold{\alpha}}^k  α^k的长度和位置都是确定的。

所以在类别划分时,我们可以定义一个残差来计算重构效果,重构效果好的那一类就是所求类别。
KaTeX parse error: Undefined control sequence: \norm at position 28: …boldsymbol{y})=\̲n̲o̲r̲m̲{\boldsymbol{y-…

3. SRC在高光谱中的应用4

3.1. 高光谱稀疏模型

假设   x \ \boldsymbol{x}  x是一个具有   B \ B  B维特征的样本,所有训练样本中有   K \ K  K个类别,在第   K \ K  K个类别中样本数目为   N K \ N_K  NK​,第   k \ k  k类样本用向量集表示如下:
  { a j k } j = 1 , . . . , N k \ \{ \boldsymbol{a}_j^k\}_{j=1,...,N_k}  {ajk​}j=1,...,Nk​​
若   x \ \boldsymbol{x}  x是属于第   k \ k  k个类别,它的特征可以近似地处于一个低维的子空间中,这个子空间是由相同类的所有训练样本所定义的。并且此样本可以用训练样本的线性组合来近似表示如下:
x ≈ α 1 k a 1 k + α 2 k a 2 k + ⋯ + α N k k a N k k = [ a 1 k a 2 k … a N k k ] ⏟ A k [ α 1 α 2 … α N k ] T ⏟ = A k α k \begin{aligned} \boldsymbol{x}&\approx\alpha_1^k\boldsymbol{a}_1^k+\alpha_2^k\boldsymbol{a}_2^k+\dots+\alpha_{N_k}^k\boldsymbol{a}_{N_k}^k\\ &=\underbrace{[\boldsymbol{a}_1^k\quad\boldsymbol{a}_2^k\quad\dots\quad\boldsymbol{a}_{N_k}^k]}_{\boldsymbol{A}^k}\underbrace{[\alpha_1\quad\alpha_2\quad\dots\quad\alpha_{N_k}]^T}\\ &=\boldsymbol{A}^k\boldsymbol{\alpha}^k \end{aligned} x​≈α1k​a1k​+α2k​a2k​+⋯+αNk​k​aNk​k​=Ak [a1k​a2k​…aNk​k​]​​ [α1​α2​…αNk​​]T​=Akαk​
其中   A k \ \boldsymbol{A}^k  Ak为   B × N k \ B\times N_k  B×Nk​的字典矩阵,即每个类别的训练样本会有一个字典,列数表示第k类的训练样本数。   α k \ \boldsymbol{\alpha}^k  αk为一未知   N k \ N_k  Nk​维矢量,其中的每一项表示在   A k \ \boldsymbol{A}^k  Ak中对应原子的丰度。在此模型中,   α \ \boldsymbol{\alpha}  α已证明是一个稀疏矢量。

当输入一个测试样本时,它应该是处于所有   K \ K  K类联合的子空间中的。因此对于一个测试样本   x \ \boldsymbol{x}  x,它可以表示为所有字典和所有训练样本的一个线性组合。
x = A 1 α 1 + A 2 α 2 + ⋯ + A K α K = A 1 … A K ⏟ A [ α 1 … α K ] ⏟ α = A α \begin{aligned} \boldsymbol{x}&=\boldsymbol{A}^1\boldsymbol{\alpha}^1+\boldsymbol{A}^2\boldsymbol{\alpha}^2+\dots+\boldsymbol{A}^K\boldsymbol{\alpha}^K\\ &=\underbrace{\boldsymbol{A}^1\quad\dots\quad\boldsymbol{A}^K}_{\boldsymbol{A}}\underbrace{\begin{bmatrix}\boldsymbol{\alpha^1}\\\dots\\\boldsymbol{\alpha^K}\end{bmatrix}}_\boldsymbol{\alpha}=\boldsymbol{A\alpha} \end{aligned} x​=A1α1+A2α2+⋯+AKαK=A A1…AK​​α ⎣⎡​α1…αK​⎦⎤​​​=Aα​
其中   A \ \boldsymbol{A}  A为   B × N \ B\times N  B×N矩阵,由所有类别训练样本组成。   α \ \boldsymbol{\alpha}  α是一个   N \ N  N维的稀疏向量,由原先每个类别的稀疏向量组成。需注意,在理想情况下,若测试样本   x \ \boldsymbol{x}  x属于第   k \ k  k类,那么除此类以外的其他所有类的稀疏向量   α j = 0 , j ≠ k \ \boldsymbol{\alpha}^j=0,j\neq k  αj=0,j​=k。

3.2. 高光谱重建及分类

在这里,我们需要注意的是,上述稀疏模型中已知的部分是   A \ \boldsymbol{A}  A,未知的部分是稀疏向量   α \ \boldsymbol{\alpha}  α。因此当在考虑一个未知类别测试样本   x \ \boldsymbol{x}  x输入时,我们首先应是想办法求稀疏向量   α ^ \ \hat{\boldsymbol{\alpha}}  α^,求解此向量的方法是解下面的最优化问题:
KaTeX parse error: Undefined control sequence: \norm at position 36: …lpha}}=\arg\min\̲n̲o̲r̲m̲{\alpha}_0\\ s.…
0范数定义为在稀疏向量中的非0项的个数。此NP-hard的最优化问题可以用贪心算法等进行求解。

当求解到了   α ^ \ \hat{\boldsymbol{\alpha}}  α^后,   x \ \boldsymbol{x}  x的类别就可以直接确定了。在这之前我们需要回忆起,   α ^ \ \hat{\boldsymbol{\alpha}}  α^其实是由   α ^ k \ \hat{\boldsymbol{\alpha}}_k  α^k​拼接而成的,   α ^ k \ \hat{\boldsymbol{\alpha}}_k  α^k​的长度是与其对应类别的样本数一致的,所以当我们有了   α ^ \ \hat{\boldsymbol{\alpha}}  α^后,其实是可以将其拆解开的。在这里我们定义   x \ \boldsymbol{x}  x与第k类的残差。
KaTeX parse error: Undefined control sequence: \norm at position 22: …boldsymbol{x})=\̲n̲o̲r̲m̲{\boldsymbol{x}…
然后   x \ \boldsymbol{x}  x所对应的类别就是具有最小残差的那个类别:
C l a s s ( x ) = arg ⁡ k = 1 , . . . , K min ⁡ r k ( x ) Class(\boldsymbol{x})=\arg_{k=1,...,K}\min r^k(\boldsymbol{x}) Class(x)=argk=1,...,K​minrk(x)
画一个图可如下表示:

x x x x alpha' alpha1' A1 residual_1 alpha2' A2 residual_2 alpha3' A3 residual_3 alpha4' A4 residual_4

最后取残差最小所对应的类别即为所求。

总结

字典学习也叫稀疏编码,在机器学习中,字典的components词汇量是由用户自己指定的,通过反复迭代更新求解稀疏向量   α i \ \bold{\alpha}_{i}  αi​和字典矩阵   B \ \bold{B}  B。用户可以通过设置词汇量来控制字典规模,从而影响到稀疏程度。

在稀疏表示分类中,字典其实就是按照类别有序排列好的全样本集,在这个方法中,字典矩阵是固定不变的,即不对字典进行更新,仅求解测试样本   y \ \boldsymbol{y}  y的稀疏向量。求解到全样本稀疏向量后,根据每个类训练样本数目,从全样本稀疏向量   α ^ \ \hat{\boldsymbol{\alpha}}  α^中划分出   α ^ k \ \hat{\boldsymbol{\alpha}}_k  α^k​。进而通过重构求残差的方式,找到最小残差对应的类别即为所求。

Note that: KSVD算法是用来求解更新字典矩阵   B \ \bold{B}  B的,因此在SRC中不需要使用到此算法。


  1. 周志华. 《机器学习》 . ↩︎

  2. Yin, Jun, Zhonghua Liu, Zhong Jin和Wankou Yang. 《Kernel Sparse Representation Based Classification》. Neurocomputing 77, 期 1 (2012年2月): 120–28. https://doi.org/10.1016/j.neucom.2011.08.018. ↩︎

  3. 欠定方程组: 方程个数小于未知量个数的方程组。 对于方程组Ra=y,R为n×m矩阵,且n<m。则方程组有无穷多组解,此时称方程组为欠定方程组↩︎

  4. Chen, Yi, Nasser M. Nasrabadi和Trac D. Tran. 《Classification for Hyperspectral Imagery Based on Sparse Representation》. 收入 2010 2nd Workshop on Hyperspectral Image and Signal Processing: Evolution in Remote Sensing, 1–4. Reykjavik, Iceland: IEEE, 2010. https://doi.org/10.1109/WHISPERS.2010.5594882. ↩︎

标签:表示,...,分类,bold,boldsymbol,稀疏,样本,alpha
来源: https://blog.csdn.net/Harry_Jack/article/details/121539641

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有