Robust Recovery of Subspace Structures by Low-Rank Representation学习笔记3

三、基础知识:字典学习(K-SVD)

3.1 字典学习的思想

        学习是一种过程,我们在学习知识时,不需要学习所有前辈们学习过的东西,而仅仅需要学习他们总结下的精华,也即字典。这就可以把学习比作一个查字典的过程,而对字典,主要有三个要求:

        ① 字典要全面,包含所有关键的知识点

        ② 字典要精简,保证查字典的时候可以精准查到所需知识点,稳准狠。

        ③ 字典要准确,查到知识点后,能学习到知识点本来的几乎所有信息,可以还原。

3.2 字典学习数学模型

3.2.1 数学描述

        首先对一些概念使用数学符号表示:

        ① “以前的知识”,更专业一点,我们称之为原始样本,用矩阵 Y 表示

        ② “字典”,我们称之为字典矩阵,用 D 表示,“字典”中的词条,我们称之为原子(atom),用列向量 d_{K} 表示

        ③ “查字典的方法”,我们称为稀疏矩阵,用 X 表示

        ④ “查字典的过程”,我们可以用矩阵的乘法来表示,即 DX

        字典学习的主要思想是,利用包含 K 个原子 d_{K} 的字典矩阵 D ∈ R^{m\times K},稀疏线性表示原始样本 Y ∈ R^{m\times K}(其中 m 表示样本数,n 表示样本的属性),即有 Y = DX(这只是我们理想的情况),其中 X ∈ R^{m\times K}为稀疏矩阵,可以将上述问题用数学语言描述为如下优化问题:

\underset{D, X}{min}\left \| Y - DX \right \|_{F}^{2},\, \, \, \, \, s.t.\, \forall i,\, \left \| x_{i} \right \|_{0}\leq T_{0}

         其中,X 为稀疏编码的矩阵,x_{i}(i=1,2,\cdots ,K)为该矩阵的行向量,\left \| x_{i} \right \|_{0} 表示零阶范数,表示向量中不为0的数的个数,此处是为了限制 X 为一个系数矩阵。

3.2.2 求解

        将优化函数的约束条件去掉,采用拉格朗日乘子法转化为无约束优化问题:

\underset{D, X}{min}\left \| Y-DX \right \|_{F}^{2}+\lambda \left \| x_{i} \right \|_{1}

        此处使用 \left \| x_{i} \right \|_{1} 替代 \left \| x_{i} \right \|_{1},方便求解

        双变量优化问题的求解一般是固定一个,优化另一个,如此交替反复进行,稀疏矩阵 X 的优化可以借助 Lasso 、OMP 等,此处重点介绍更新词典 D。

        假设 X 已知,则可以对字典逐列进行更新。以第 k 列为例,记 d_{K} 为字典 D 的第 k 列向量,x_{T}^{k} 为稀疏矩阵 X 的第 k 行向量,那么改写优化函数:

\begin{align*} \left \| Y-DX \right \|_{F}^{2}&=\left \| Y-\sum_{j=1}^{K}d_{j}x_{T}^{k} \right \|_{F}^{2} \\ &=\left \| (Y-\sum_{j\neq k}d_{j}x_{T}^{j})-d_{k}x_{T}^{k} \right \|_{F}^{2} \\ &= \left \| E_{k}-d_{k}x_{T}^{k} \right \|_{F}^{2} \end{align*}

        于是优化问题可描述为:

\underset{d_{k}, x_{T}^{k}}{min}\left \| E_{k}-d_{k}x_{T}^{k} \right \|_{F}^{2}

        因此只需要求出最优的 d_{K} 和 x_{T}^{k} 即可,可用最小二乘法求解或SVD求解,此处用SVD求解。但是不能直接对 E_{k} 求解,这样新得到的 x_{T}^{k} 是不稀疏的(此处存疑),因此求解时需要将 E_{k} 中对应的 x_{T}^{k} 不为0的列拿出来,得到新的 E_{k}^{'} ,提取过程如下:

         假设需要更新第0列原子,需要将 x_{T}^{k} 中为0的位置找出,并将 E_{k} 的对应位置列删除,构成 E_{k}^{'} ,优化问题变为:

\underset{d_{0}, x_{T}^{0}}{min}{\left \| E_{0}^{'} -d_{0}x_{\, T}^{'0}\right \|}_{F}^{2}

        因此需要找出最优的 d_{K} 和 x_{\, T}^{'0}

E_{0}^{'}=U\sum V^{T}

        取左奇异矩阵  U 的第一个列向量 u_{1}=U(\cdot ,1) 作为 d_{K} ,即 d_{0}=u_{1};取右奇异矩阵 U 的第一个行向量与第一个奇异值的乘积作为 x_{\, T}^{'0} ,即 x_{\, T}^{'0}=\sum (1,1)V^{T}(1,\cdot ),计算出 x_{\, T}^{'0} 后,将其还原为 x_{T}^{k}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值