您的位置:首页 > 其它

字典学习/稀疏表示学习笔记

2016-02-24 16:10 357 查看
首先向大家安利一下南大周志华老师写的《机器学习》这本书,作为一个对此一窍不通的人看了都觉得很有意思,受益匪浅。语言平实却又干货十足,比某些故弄玄虚泛泛而谈的其它国内教材高到不知哪里去了。



最近看的论文涉及到稀疏表示,正好这本书有讲到。这两天看了一下该书关于稀疏表示的部分(第11章),将核心知识点总结归纳一下,以免遗忘。若有错误,望大家赐教。

1.提出问题:什么是稀疏表示

假设我们用一个M*N的矩阵表示数据集X,每一行代表一个样本,每一列代表样本的一个属性,一般而言,该矩阵是稠密的,即大多数元素不为0。

稀疏表示的含义是,寻找一个系数矩阵A(K*N)以及一个字典矩阵B(M*K),使得B*A尽可能的还原X,且A尽可能的稀疏。A便是X的稀疏表示。

书上原文为

“为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表达形式,从而使学习任务得以简化,模型复杂度得以降低,通常称为‘字典学习’(dictionary learning),亦称‘稀疏编码’(sparse coding)”块内容

表达为优化问题的话,字典学习的最简单形式为:



其中xi为第i个样本,B为字典矩阵,aphai为xi的稀疏表示,lambda为大于0参数。

上式中第一个累加项说明了字典学习的第一个目标是字典矩阵与稀疏表示的线性组合尽可能的还原样本;第二个累加项说明了alphai应该尽可能的稀疏。之所以用L1范式是因为L1范式正则化更容易获得稀疏解。具体原因参看该书11.4章或移步机器学习中的范数规则化之(一)L0、L1与L2范数。字典学习便是学习出满足上述最优化问题的字典B以及样本的稀疏表示A(A{alpha1,alpha2,…,alphai})。

2.字典学习求解

求解上述最优化问题的总体策略是,对字典B以及样本稀疏表示alphai交替迭代优化。即先初始化字典B,1.固定字典B对alphai进行优化。2.固定A对字典B进行优化。重复上述两步,求得最终B以及X的稀疏表示A。

其中第一步可采用与LASSO正则化相似的方法(如Proximal Gradient Desent法)进行求解,第二步可采用KSVD方法进行求解。具体步骤参看该书11.5章节内容或search the internet,因为我也不是很懂·····
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: