字典学习(Dictionary Learning, KSVD)详解

注:字典学习也是一种数据降维的方法,这里我用到SVD的知识,对SVD不太理解的地方,可以看看这篇博客:《SVD(奇异值分解)小结 》

1、字典学习思想

字典学习的思想应该源来实际生活中的字典的概念。字典是前辈们学习总结的精华,当我们需要学习新的知识的时候,不必与先辈们一样去学习先辈们所有学习过的知识,我们可以参考先辈们给我们总结的字典,通过查阅这些字典,我们可以大致学会到这些知识。

为了将上述过程用准确的数学语言描述出来,我们需要将“总结字典”、“查阅字典”做出一个更为准确的描述。就从我们的常识出发:

  1. 我们通常会要求的我们的字典尽可能全面,也就是说总结出的字典不能漏下关键的知识点。
  2. 查字典的时候,我们想要我们查字典的过程尽可能简洁,迅速,准确。即,查字典要快、准、狠。
  3. 查到的结果,要尽可能地还原出原来知识。当然,如果要完全还原出来,那么这个字典和查字典的方法会变得非常复杂,所以我们只需要尽可能地还原出原知识点即可。

注: 以上内容,完全是自己的理解,如有不当之处,欢迎各位拍砖。

下面,我们要讨论的就是如何将上述问题抽象成一个数学问题,并解决这个问题。

2、字典学习数学模型

2.1 数学描述

我们将上面的所提到的关键点用几个数学符号表示一下:

  • “以前的知识”,更专业一点,我们称之为原始样本,用矩阵\(\mathbf{Y}\)表示;
  • “字典”,我们称之为字典矩阵,用\(\mathbf{D}\)表示,“字典”中的词条,我们称之为原子(atom),用列向量\(\mathbf{d}_k\)表示;
  • “查字典的方法”,我们称为稀疏矩阵,用\(\mathbf{X}\)
  • “查字典的过程”,我们可以用矩阵的乘法来表示,即\(\mathbf{DX}\)

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

\[ \min_{\mathbf{D,\ X}}{\

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值