关于K-SVD算法中逐列更新的目标函数的理解,再看不懂就打死我吧
K-svd采用逐列更新的方法更新字典,就是当更新第k列原子的时候,其它的原子固定不变。假设我们当前要更新第k个原子αk,令编码矩阵X对应的第k行为xk,则目标函数为:
一直没看明白这个表达式,刚才通过matlab验证,终于弄懂了。目标函数描述的是使通过字典D和X描述出的与原始信号矩阵Y的残差。DX相乘没问题,那DX与是怎么等价呢?这里的xj是行向量,是系数矩阵的第j行;aj是列向量,是字典矩阵的第j列,那么一个行向量乘以一个列向量,乘出来一个子矩阵,这个矩阵和Y的行、列数是相同的,穷尽K次,得到K个子矩阵,这K个子矩阵相加,就是 。这里的是Y的估计,并不一定等于Y。
下面的matlab代码是该计算的验证,Y是原始矩阵,Y1是K个子矩阵加起来的和,这里两者是相等的,因为Y就是通过D*X计算出来的。
clc;clear all; close all;
D=[1 2 3 4 5; 8 9 3 2 5; 2 3 1 5 2]
X=[2 1; 5 6; 0 1; 4 2; 9 0]
Y=D*X
Y1=zeros(size(Y));
cols=size(D,2);
for i=1:cols
Y1=Y1+D(:,i)*X(i,:);
end
Y1
运行结果如下:
D =
1 2 3 4 5
8 9 3 2 5
2 3 1 5 2
X =
2 1
5 6
0 1
4 2
9 0
Y =
73 24
114 69
57 31
Y1 =
73 24
114 69
57 31
>>
关于SVD分解再补充一些个人理解:
SVD分解后的U、S、V矩阵,S是奇异值对角阵,奇异值从大到小排列,意味着U(:,i)和V(:,i)的重要性随着i的增加而减小。前面我们知道,,也就是,U的每个列向量和V对应列向量的转置相乘,乘出来r个与A同型的子矩阵,然后每个子矩阵乘以对应的奇异值S(i,i),最后将i个结果加起来,得到A。如果最后一个奇异值或最后几个的值很小,则省掉之后,可以得到A的估计值,这样就可以减小存储空间,或者可以实现降维。
关于K-SVD算法中逐列更新的目标函数的理解,再看不懂就打死我吧相关推荐
- matlab如何进行批量计算,什么是matlab中逐列相关的快速计算方法
手动计算可以获得x100的速度提升. An=bsxfun(@minus,A,mean(A,1)); %%% zero-mean Bn=bsxfun(@minus,B,mean(B,1)); %%% z ...
- k近邻算法中k值得选择
k值得选择会对k近邻的结果产生重大的影响 如果选择较小的K值,就相当于用较小的邻域中的训练实例进行预测,"学习"的近似误差会减小,只有输入实例较近的训练实例才会对预测结果起作用. ...
- 对代换置换网络算法中Nr和Nr+1轮的理解
为什么第Nr轮只做代换不做置换,而第Nr+1轮代换和置换都不做呢? 我的理解是:代换和置换的作用是给下一轮增加安全性,第Nr+1轮当然都没有必要做,而第Nr轮由于下一轮不做代换和置换,本轮再做置换对安 ...
- 中登公司统计数据好像有问题,看不懂。
中国证券登记结算有限责任公司 在网上公布每周统计数据 http://www.chinaclear.cn/zdjs/xmzkb/center_mzkb.shtml 俺一直跟踪中登公司发布的新开户数据,比 ...
- K近邻算法讲解与python实现(附源码demo下载链接)
k近邻算法概述 对应demo源码及数据:传送门 K近邻(k-Nearest Neighbor,简称kNN)算法,是一种应用很广泛的监督学习算法.它非常有效且易于掌握,其工作机制也很简单:给定测试样本, ...
- 从零开始用Python实现k近邻算法(附代码、数据集)
作者:Tavish Srivastava 翻译:王雨桐 校对:丁楠雅 本文约2000字,建议阅读8分钟. 本文将带领读者理解KNN算法在分类问题中的使用,并结合案例运用Python进行实战操作. 注意 ...
- python机器学习案例系列教程——K最近邻算法(KNN)、kd树
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 K最近邻简介 K最近邻属于一种估值或分类算法,他的解释很容易. 我们假设一个人的优秀成为设定为1.2.3.4.5.6.7.8.9.10 ...
- 机器学习算法系列之K近邻算法
本系列机器学习的文章打算从机器学习算法的一些理论知识.python实现该算法和调一些该算法的相应包来实现. 目录 K近邻算法 一.K近邻算法原理 k近邻算法 通俗解释 近邻距离的度量 k值的选择 KN ...
- 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结
文章目录 一.总结K均值算法步骤 二.如何合理选择K值? 三.K均值算法的优缺点是什么? 四.如何对K均值算法进行调优? 五.EM算法解决什么问题? 六.EM算法流程是什么? 六.EM算法能保证收敛嘛 ...
最新文章
- 客户端产生CLOSE WAIT状态的解决方案
- ​【Python入门】Python数学math模块55个函数详解
- 干!一张图整理了 Python 所有内置异常
- 基于OMAPL138的字符驱动_GPIO驱动AD9833(三)之中断申请IRQ
- java怎么设置背景_如何在Java中设置背景图片?
- java 字符串的编码与C#的区别
- php下拉框选中效果,jquery模拟select下拉框效果
- 索爱S60 java,谈谈索爱S60 触屏强机U5i的功能怎么样
- 游戏王血计算机,【统计】历代主角控血一览
- ElasticSearch讲解
- 在Wireshark的tcptrace图中看清TCP拥塞控制算法的细节(CUBIC/BBR算法为例)
- java中hashmap按键排序_HashMap按键值排序方法
- ssr的pac中加入学校图书馆数据库访问pac
- 论坛介绍 | COSCon'22 大数据(D)
- poco http使用
- 计算机组成原理 模拟机,面向计算机组成原理数学的MML模拟器
- 简单的base64加密解密
- 在动画中添加音乐和声音
- 2022-2028全球与中国嵌入式计算机市场现状及未来发展趋势
- 2022百度之星程序设计大赛 - 复赛 1001 子序列
热门文章
- docker中容器与宿主机之间的网络关系
- (三)图像的放大和缩小
- 【小白冲冲冲!!!】37. ORBSLAM初始化时为什么要同时初始化H矩阵和F矩阵?
- python调试方法logging_python中logging使用方法
- windos 服务怎么写_我的产品或服务怎么写?
- linux qemu原理,最全的剖析QEMU原理的文章3
- 2021年淮南高考成绩查询,2021年淮南高考最高分多少分,历年淮南高考状元
- desktop docker 无法卸载_docker 安装教程和常见问题
- 多媒体实时交互系统主要由系统服务器,多媒体设备和多媒体交互系统专利_专利申请于2017-03-08_专利查询 - 天眼查...
- uni-app android白屏,uniapp页面跳转出现白屏怎么办