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算法中逐列更新的目标函数的理解,再看不懂就打死我吧相关推荐

  1. matlab如何进行批量计算,什么是matlab中逐列相关的快速计算方法

    手动计算可以获得x100的速度提升. An=bsxfun(@minus,A,mean(A,1)); %%% zero-mean Bn=bsxfun(@minus,B,mean(B,1)); %%% z ...

  2. k近邻算法中k值得选择

    k值得选择会对k近邻的结果产生重大的影响  如果选择较小的K值,就相当于用较小的邻域中的训练实例进行预测,"学习"的近似误差会减小,只有输入实例较近的训练实例才会对预测结果起作用. ...

  3. 对代换置换网络算法中Nr和Nr+1轮的理解

    为什么第Nr轮只做代换不做置换,而第Nr+1轮代换和置换都不做呢? 我的理解是:代换和置换的作用是给下一轮增加安全性,第Nr+1轮当然都没有必要做,而第Nr轮由于下一轮不做代换和置换,本轮再做置换对安 ...

  4. 中登公司统计数据好像有问题,看不懂。

    中国证券登记结算有限责任公司 在网上公布每周统计数据 http://www.chinaclear.cn/zdjs/xmzkb/center_mzkb.shtml 俺一直跟踪中登公司发布的新开户数据,比 ...

  5. K近邻算法讲解与python实现(附源码demo下载链接)

    k近邻算法概述 对应demo源码及数据:传送门 K近邻(k-Nearest Neighbor,简称kNN)算法,是一种应用很广泛的监督学习算法.它非常有效且易于掌握,其工作机制也很简单:给定测试样本, ...

  6. 从零开始用Python实现k近邻算法(附代码、数据集)

    作者:Tavish Srivastava 翻译:王雨桐 校对:丁楠雅 本文约2000字,建议阅读8分钟. 本文将带领读者理解KNN算法在分类问题中的使用,并结合案例运用Python进行实战操作. 注意 ...

  7. python机器学习案例系列教程——K最近邻算法(KNN)、kd树

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 K最近邻简介 K最近邻属于一种估值或分类算法,他的解释很容易. 我们假设一个人的优秀成为设定为1.2.3.4.5.6.7.8.9.10 ...

  8. 机器学习算法系列之K近邻算法

    本系列机器学习的文章打算从机器学习算法的一些理论知识.python实现该算法和调一些该算法的相应包来实现. 目录 K近邻算法 一.K近邻算法原理 k近邻算法 通俗解释 近邻距离的度量 k值的选择 KN ...

  9. 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结

    文章目录 一.总结K均值算法步骤 二.如何合理选择K值? 三.K均值算法的优缺点是什么? 四.如何对K均值算法进行调优? 五.EM算法解决什么问题? 六.EM算法流程是什么? 六.EM算法能保证收敛嘛 ...

最新文章

  1. 客户端产生CLOSE WAIT状态的解决方案
  2. ​【Python入门】Python数学math模块55个函数详解
  3. 干!一张图整理了 Python 所有内置异常
  4. 基于OMAPL138的字符驱动_GPIO驱动AD9833(三)之中断申请IRQ
  5. java怎么设置背景_如何在Java中设置背景图片?
  6. java 字符串的编码与C#的区别
  7. php下拉框选中效果,jquery模拟select下拉框效果
  8. 索爱S60 java,谈谈索爱S60 触屏强机U5i的功能怎么样
  9. 游戏王血计算机,【统计】历代主角控血一览
  10. ElasticSearch讲解
  11. 在Wireshark的tcptrace图中看清TCP拥塞控制算法的细节(CUBIC/BBR算法为例)
  12. java中hashmap按键排序_HashMap按键值排序方法
  13. ssr的pac中加入学校图书馆数据库访问pac
  14. 论坛介绍 | COSCon'22  大数据(D)
  15. poco http使用
  16. 计算机组成原理 模拟机,面向计算机组成原理数学的MML模拟器
  17. 简单的base64加密解密
  18. 在动画中添加音乐和声音
  19. 2022-2028全球与中国嵌入式计算机市场现状及未来发展趋势
  20. 2022百度之星程序设计大赛 - 复赛 1001 子序列

热门文章

  1. docker中容器与宿主机之间的网络关系
  2. (三)图像的放大和缩小
  3. 【小白冲冲冲!!!】37. ORBSLAM初始化时为什么要同时初始化H矩阵和F矩阵?
  4. python调试方法logging_python中logging使用方法
  5. windos 服务怎么写_我的产品或服务怎么写?
  6. linux qemu原理,最全的剖析QEMU原理的文章3
  7. 2021年淮南高考成绩查询,2021年淮南高考最高分多少分,历年淮南高考状元
  8. desktop docker 无法卸载_docker 安装教程和常见问题
  9. 多媒体实时交互系统主要由系统服务器,多媒体设备和多媒体交互系统专利_专利申请于2017-03-08_专利查询 - 天眼查...
  10. uni-app android白屏,uniapp页面跳转出现白屏怎么办