原
ML笔记:字典学习3(Dictionary Learning,KSVD)
版权声明:本文为博主原创文章,引用时请附上链接。 https://blog.csdn.net/abc13526222160/article/details/88920507 </div>
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
<div id="content_views" class="markdown_views prism-dracula">
<!-- flowchart 箭头图标 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<p></p><div class="toc"><h3><a name="t0"></a>文章目录</h3><ul><ul><li><a href="#_3" rel="nofollow" target="_self">一、字典学习数学模型</a></li><ul><ul><li><a href="#11_12" rel="nofollow" target="_self">1.1、数学描述</a></li><li><a href="#12_29" rel="nofollow" target="_self">1.2、求解问题</a></li><li><a href="#13_60" rel="nofollow" target="_self">1.3、字典学习算法实现</a></li></ul></ul></ul></ul></div><br>
字典学习也是一种数据降维的方法,这里我用到SVD的知识,对SVD不太理解的地方,可以看看这篇博客: 奇异值分解SVD
一、字典学习数学模型
字典学习的思想应该源来实际生活中的字典的概念。字典是前辈们学习总结的精华,当我们需要学习新的知识的时候,不必与先辈们一样去学习先辈们所有学习过的知识,我们可以参考先辈们给我们总结的字典,通过查阅这些字典,我们可以大致学会到这些知识。
为了将上述过程用准确的数学语言描述出来,我们需要将“总结字典”、“查阅字典”做出一个更为准确的描述。就从我们的常识出发:
- 1.我们通常会要求的我们的字典尽可能全面,也就是说总结出的字典不能漏下关键的知识点。
- 2.查字典的时候,我们想要我们查字典的过程尽可能简洁,迅速,准确。即,查字典要快、准、狠。
- 3.查到的结果,要尽可能地还原出原来知识。当然,如果要完全还原出来,那么这个字典和查字典的方法会变得非常复杂,所以我们只需要尽可能地还原出原知识点即可。
下面,我们要讨论的就是如何将上述问题抽象成一个数学问题,并解决这个问题。
1.1、数学描述
我们将上面的所提到的关键点用几个数学符号表示一下:
- “以前的知识”,更专业一点,我们称之为原始样本,用矩阵
Y
Y
Y
YY \mathbf{Y}
YYYEk=Y−j̸=k∑djxTj(1-5)
此时优化问题可描述为: KaTeX parse error: Expected 'EOF', got '&' at position 9: (1-6)min&̲#x2061;dk, …