最优方向法(MOD)
算法描述
求解模型:
\[\min\sum\limits_i\|x_i\|_0 \quad \mathrm{s.t.} \; \|Y-DX\|^2_F \leq \varepsilon\]
或
\[\min\|Y-DX\|^2_F \quad \mathrm{s.t.} \; \sum\limits_i\|x_i\|_0 \leq T_0\]
MOD(Method of Optimal Direction)是早期的基于样本学习的字典学习算法. 设目标函数中\(X\)已知,信号的误差定义如下:
\[\|E\|^2_F = \|Y - DX\|^2_F\]
MOD算法更新字典的策略就是实现表征误差最小化,所以公式两端针对\(D\)求偏导,会推到出\((Y - DX)X^{\mathrm{T}} = 0\),整个字典的更新过程如下:
\[D^{n + 1} = Y (X^n)^{\mathrm{T}} \cdot (X^n(X^n)^{\mathrm{T}})^{-1}\]
一般MOD算法需要几十次迭代即可收敛是一个比较可行的方法。缺点在于运算中需要对矩阵求逆,造成计算量过大.
流程描述
输入:训练样本集\(X = \{x_i\}^N_{i=1}\)
输出:字典\(D \in \mathbb{R}^{n \times m} (m > n)\)
初始化:随机构造一个字典初值\(D^{(0)} \in \mathbb{R}^{n \times m}\),并进行列归一化,迭代次数\(J=1\)
循环直到满足迭代终止条件
- 求解稀疏系数:\(\min\sum\limits_i\|x_i\|_0 \quad \mathrm{s.t.} \; \|Y-DX\|^2_F \leq \varepsilon\)
- 更新字典:\(D^{J+1}=\arg\min \|Y - DX\|^2_F = D^{n + 1} = Y (X^n)^{\mathrm{T}} \cdot (X^n(X^n)^{\mathrm{T}})^{-1}\)
- \(J=J+1\)
迭代结束
最优方向法(MOD)的更多相关文章
- 字典更新与K-SVD
字典更新与K-SVD 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 矩阵的奇异值分解 (Singular Value Decomposition, S ...
- JZOJ 3505. 【NOIP2013模拟11.4A组】积木(brick)
3505. [NOIP2013模拟11.4A组]积木(brick) (File IO): input:brick.in output:brick.out Time Limits: 1000 ms Me ...
- HHKB Programming Contest 2020 D - Squares 题解(思维)
题目链接 题目大意 给你一个边长为n的正方形和边长为a和b的正方形,要求把边长为a和b的正方形放在长度为n的正方形内,且没有覆盖(可以相邻)求有多少种放法(mod 1e9+7) 题目思路 这个思路不是 ...
- 欧几里得算法:从证明等式gcd(m, n) = gcd(n, m mod n)对每一对正整数m, n都成立说开去
写诗或者写程序的时候,我们经常要跟欧几里得算法打交道.然而有没要考虑到为什么欧几里得算法是有效且高效的,一些偏激(好吧,请允许我用这个带有浓重个人情感色彩的词汇)的计算机科学家认为,除非程序的正确性在 ...
- sql调优方法实用性总结(一)
1.选择最有效率的表名顺序(只在基于规则的优化器): Oracle的解析器按照从右向左的顺序处理FROM子句中的表名,FROM子句中写在最后的表将被最先处理(基础表先处理,driving table) ...
- JVM调优方法笔记
1.性能工具介绍 jvisualvm jmap jstat jstack/threaddump jprofiler jmeter 2.性能调优4步骤 重现问题 定位问题 模拟问题 解决问题 http: ...
- CF451E Devu and Flowers (隔板法 容斥原理 Lucas定理 求逆元)
Codeforces Round #258 (Div. 2) Devu and Flowers E. Devu and Flowers time limit per test 4 seconds me ...
- Wrestling Match---hdu5971(2016CCPC大连 染色法判断是否是二分图)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5971 题意:有n个人,编号为1-n, 已知X个人是good,Y个人是bad,m场比赛,每场比赛都有一个 ...
- HDU 4162 Shape Number (最小表示法)
题意:给你一串n个数,求出循环来看一阶差的最小字典序:数字串看成一个顺时针的环,从某一点开始顺时针循环整个环,保证字典序最小就是答案 例如给你 2 1 3 就会得到(1-2+8 注意题意负数需要加8) ...
随机推荐
- 关于elasticsearch 6.x及其插件head安装(单机与集群)5分钟解决
第一步,下载es6 +head wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.zip wg ...
- golang-gorm框架支持mysql json类型
gorm框架目前不支持Json类型的数据结构 http://gorm.book.jasperxu.com/callbacks.html 如在Mysql中定义了如下的表结构 CREATE TABLE ` ...
- 【openjudge】【字符串】P6374文字排版
[描述] 给一段英文短文,单词之间以空格分隔(每个单词包括其前后紧邻的标点符号).请将短文重新排版,要求如下: 每行不超过80个字符:每个单词居于同一行上:在同一行的单词之间以一个空格分隔:行首和行尾 ...
- php基础学习-sdy
1.php语言结构和函数 exit()和die() exit()相当于把下面的代码都注释了 die()终止脚本 两个差不多 函数有很多种 (1)语言结构 (2)自定义函数 (3)内置函数 functi ...
- PAT乙级1016
1016 部分A+B (15 分) 正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA.例如:给定 A=3862767,DA=6,则 ...
- 1549: Navigition Problem (几何计算+模拟 细节较多)
1549: Navigition Problem Submit Page Summary Time Limit: 1 Sec Memory Limit: 256 Mb Su ...
- TarsGo新版本发布,支持protobuf,zipkin和自定义插件
本文作者:陈明杰(sandyskies) Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架,目前支持C++,Java,PHP,Nodejs,Golang语言.该框架为用户提供了涉及 ...
- vue中刷新页面时去闪烁,提升体验方法
首先在最外层div添加v-if="isReloadAlive",并创建变量isReloadAlive = true 随后添加provide()以及reload方法,如下: expo ...
- 在centos6.5下挂载windows共享文件夹
1.在windows下建立文件夹f:\linux,共享给win下用户username,该用户密码为passwd.该windows系统在局域网中IP为192.168.18.203 2.在centos6. ...
- java第一天!
public class Main { public static void main(String[] args)//main主函数 { final double PI=3.14;//定义常量,小数 ...