一.前言 稀疏表示是自上世纪90年代开始,从人眼的视觉感受野获得启示,逐渐被人们所研究.现在已经发展为一种重要的信息表示方法.所谓稀疏表示是指,一个信号在过完备字典中,可以由少数个原子线性表达, 其数学模型可以表达如下: 这个数学模型解算是一个NP-hard问题,也就是说只能通过穷举去获得最优解,其时间复杂度很大,几乎无法获得其精确的解算.在这种情况下,我们常用贪婪算法去获得该模型的次最优解.本文介绍一种主流的贪婪算法—— 正交匹配追踪(OMP). 二.OMP算法 贪婪算法的核心是每次从字典的原…
假设给定m个训练样本的训练集,用梯度下降法训练一个神经网络,对于单个训练样本(x,y),定义该样本的损失函数: 那么整个训练集的损失函数定义如下: 第一项是所有样本的方差的均值.第二项是一个归一化项(也叫权重衰减项),该项是为了减少权连接权重的更新速度,防止过拟合. 我们的目标是最小化关于 W 和 b 的函数J(W,b). 为了训练神经网络,把每个参数 和初始化为很小的接近于0的随机值(例如随机值由正态分布Normal(0,ε2)采样得到,把 ε 设为0.01), 然后运用批量梯度下降算法进行优…
原文链接:https://blog.csdn.net/qq_25352981/article/details/46914837#commentsedit 本文目标是通过使用SIFT和RANSAC算法,完成特征点的正确匹配,并求出变换矩阵,通过变换矩阵计算出要识别物体的边界(文章中有部分源码,整个工程我也上传了,请点击这里). SIFT算法是目前公认的效果最好的特征点检测算法,关于该算法的就不多说了,网上的资料有很多,在此提供两个链接,一个是SIFT原文的译文,一个是关于SIFT算法的详细解释:…
官方链接:http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_fast/py_fast.html#fast-algorithm-for-corner-detection 原文链接:http://blog.csdn.net/candycat1992/article/details/22285979 本文做了少量修改,并添加了C++代码,若有疑问或者版权问题,请拜读作者或者通知本人. 目标 理解FAST算法的基本原理 使用Ope…
#include <opencv2/opencv.hpp>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>using namespace std;using namespace cv;const int w = 384;const int h = 288;const int n = 3;void SAD(uchar* Limg,…
MP:matching pursuit匹配追踪 OMP:正交匹配追踪 主要介绍MP与OMP算法的思想与流程,解释为什么需要引入正交? !!今天发现一个重大问题,是在读了博主的正交匹配追踪(OMP)在稀疏分解与压缩感知重构中的异同,http://blog.csdn.net/jbb0523/article/details/45100659之后一脸懵逼,CS中的稀疏表示不就是把信号转换到另一个变换域中吗?怎么跑出来一个稀疏分解里面又有MP和OMP算法!!后来发现原来稀疏分解先于压缩感知提出,信号稀疏表…
正交匹配追踪(OMP)算法的MATLAB函数代码并给出单次测试例程代码 测量数M与重构成功概率关系曲线绘制例程代码 信号稀疏度K与重构成功概率关系曲线绘制例程代码   参考来源:http://blog.csdn.net/jbb0523/article/details/45130793 参考文献:Joel A. Tropp and Anna C. Gilbert. Signal Recovery From Random Measurements Via Orthogonal Matching Pu…
主要内容: OMP的算法流程 OMP的MATLAB实现 一维信号的实验与结果 测量数M与重构成功概率关系的实验与结果 稀疏度K与重构成功概率关系的实验与结果 一.OMP的算法流程 二.OMP的MATLAB实现(CS_OMP.m) function [ theta ] = CS_OMP( y,A,iter ) % CS_OMP % y = Phi * x % x = Psi * theta % y = Phi * Psi * theta % 令 A = Phi*Psi, 则y=A*theta %…
主要内容: 1.MP算法 2.OMP算法 3.OMP算法的matlab实现 4.OMP在压缩感知和人脸识别的应用 一.MP(Matching Pursuits)与OMP(Orthogonal Matching Pursuit)算法 内容:稀疏信号的表示(字典.稀疏系数).MP算法.MP算法的缺点.OMP.OMP的实现 参考文章:http://blog.csdn.net/scucj/article/details/7467955 二.OMP的matlab实现 %A-稀疏系数矩阵%D-字典/测量矩阵…
scikit-learn对于线性回归提供了比较多的类库,这些类库都可以用来做线性回归分析,本文就对这些类库的使用做一个总结,重点讲述这些线性回归算法库的不同和各自的使用场景. 线性回归的目的是要得到输出向量\(\mathbf{Y}\)和输入特征\(\mathbf{X}\)之间的线性关系,求出线性回归系数\(\mathbf\theta\),也就是 \(\mathbf{Y = X\theta}\).其中\(\mathbf{Y}\)的维度为mx1,\(\mathbf{X}\)的维度为mxn,而\(\m…
主要内容: gOMP的算法流程 gOMP的MATLAB实现 一维信号的实验与结果 稀疏度K与重构成功概率关系的实验与结果 一.gOMP的算法流程 广义正交匹配追踪(Generalized OMP, gOMP)算法可以看作为OMP算法的一种推广.OMP每次只选择与残差相关最大的一个,而gOMP则是简单地选择最大的S个.之所以这里表述为"简单地选择"是相比于ROMP之类算法的,不进行任何其它处理,只是选择最大的S个而已. gOMP的算法流程: 二.gOMP的MATLAB实现(CS_gOMP…
关于MP.OMP的相关算法与收敛证明,可以参考:http://www.cnblogs.com/AndyJee/p/5047174.html,这里仅简单陈述算法流程及二者的不同之处. 主要内容: MP的算法流程及其MATLAB实现 OMP的算法流程以及MATLAB实现 MP与OMP的区别 施密特正交化与OMP的关系 一.MP(匹配追踪)的算法流程: 二.MP的MATLAB实现: % MP:匹配追踪算法 % dictionary: 超完备字典 % x: 待表示信号 % M = ; N = ; % P…
K-SVD可以看做K-means的一种泛化形式,K-means算法总每个信号量只能用一个原子来近似表示,而K-SVD中每个信号是用多个原子的线性组合来表示的.    K-SVD算法总体来说可以分成两步,首先给定一个初始字典,对信号进行稀疏表示,得到系数矩阵.第二步根据得到的系数矩阵和观测向量来不断更新字典. 设D∈R n×K,包含了K个信号原子列向量的原型{dj}j=1K,y∈R n的信号可以表示成为这些原子的稀疏线性结合.也就是说y=Dx,其中x∈RK表示信号y的稀疏系数.论文中采用的是2范数…
稀疏表示_百度百科 https://baike.baidu.com/item/%E7%A8%80%E7%96%8F%E8%A1%A8%E7%A4%BA/16530498 信号稀疏表示是过去近20年来信号处理界一个非常引人关注的研究领域,众多研究论文和专题研讨会表明了该领域的蓬勃发展.信号稀疏表示的目的就是在给定的超完备字典中用尽可能少的原子来表示信号,可以获得信号更为简洁的表示方式,从而使我们更容易地获取信号中所蕴含的信息,更方便进一步对信号进行加工处理,如压缩.编码等 [1]  .   中文名…
来自:http://deeplearning.net/software/theano/tutorial/sparse.html sparse 通常来说,稀疏矩阵可以和常规矩阵一样提供相同的功能.两者不同之处在于在内存中存储矩阵和表示矩阵的方式. 在稀疏矩阵中,只有非0元素才会被存储.这种方式带来的优点有:首先,这可以很明显的减少内存的使用'第二:通过使用指定的稀疏算法和这种稀疏存储方法可以减少计算时间.我们通常将常规的存储矩阵叫做密集矩阵(dense matrices). Theano的稀疏包提…
http://blog.csdn.net/wangzhebupt/article/category/1675453 数据挖掘十大经典实用算法及OpenCV算法 http://www.xuebuyuan.com/2178605.html 线性判别分析(Linear Discriminant Analysis, LDA)算法分析 表示看了h 转自  http://blog.csdn.net/warmyellow/article/details/5454943... 2014-08-10 20:06 …
洛谷P3366 最小生成树板子题 这篇博客介绍两个算法:Prim算法和Kruskal算法,两个算法各有优劣 一般来说当图比较稀疏的时候,Kruskal算法比较快 而当图很密集,Prim算法就大显身手了 下面是这两种算法的介绍 Prim算法 百度百科定义:传送门 好吧,其实当我第一眼看到这个东西的时候感觉和Dijkstra好像,但是学了之后发现其实区别还是很明显(并且好记)的 Dijkstra是维护从到源点的最短长度,而Prim则是维护到最小生成树的最短长度(其实就是到最小生成树上所有点的最短长度…
主要内容: 动机 FM算法模型 FM算法VS 其他算法   一.动机 在传统的线性模型如LR中,每个特征都是独立的,如果需要考虑特征与特征直接的交互作用,可能需要人工对特征进行交叉组合:非线性SVM可以对特征进行kernel映射,但是在特征高度稀疏的情况下,并不能很好地进行学习:现在也有很多分解模型Factorization model如矩阵分解MF.SVD++等,这些模型可以学习到特征之间的交互隐藏关系,但基本上每个模型都只适用于特定的输入和场景.为此,在高度稀疏的数据场景下如推荐系统,FM(…
0.论文基本介绍以及相关内容 分析移动用户位置的相似性,提取移动用户的相似路径在出行路径预测.兴趣区域发现.轨迹聚类.个性化路径推荐等领域具有广泛的应用. 重点:利用移动用户定位数据找到合适轨迹的表示方法,如何高效计算移动用户轨迹间的相似性成为热点. 本文---基于改进LCSS的移动用户轨迹相似性查询算法研究: (1)移动用户原始轨迹数据->抽取位置序列->映射为具有时间和地理位置信息的序列. 解决移动用户轨迹数据的稀疏性导致相似度算法效率低下的问题. (2)FP-tree频繁模式树的加权频繁…
原文:NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩.机器学习及最优化算法 导读 AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自动机器学习.机器学习与最优化算法,选取23篇会议上入选的重点论文进行分析解读,与大家分享.Enjoy! NeurIPS (Conference on Neural Information Processing Systems,神经信息处理系统进展大会)与ICML并称为神经计算和机器学习领域两大顶级学…
学习内容: CART树 算法原理 损失函数 分裂结点算法 正则化 对缺失值处理 优缺点 应用场景 sklearn参数 转自:https://zhuanlan.zhihu.com/p/58221959 CART树 算法分类与回归树的英文是Classfication And Regression Tree,缩写为CART.CART算法采用二分递归分割的技术将当前样本集分为两个子样本集,使得生成的每个非叶子节点都有两个分支.非叶子节点的特征取值为True和False,左分支取值为True,右分支取值为…
这是鄙人的第一篇技术博客,作为算法小菜鸟外加轻度写作障碍者,写技术博客也算是对自己的一种挑战和鞭策吧~ 言归正传,什么是dijkstra算法呢? -dijkstra算法是一种解决最短路径问题的简单有效的方法~也算是一种非常naive&effcient的最优化算法吧~ 最短路径问题 如上图,从点A->点F,最短路径为A->C->D->F,Min=3+3+3=9 假设用暴力深度搜索遍历所有路径的话,时间复杂度O将会是指数级的(NP-hard Problem)~ dijkstra…
在opencv3.0中,提供了一个ml.cpp的文件,这里面全是机器学习的算法,共提供了这么几种: 1.正态贝叶斯:normal Bayessian classifier    我已在另外一篇博文中介绍过:在opencv3中实现机器学习之:利用正态贝叶斯分类 2.K最近邻:k nearest neighbors classifier 3.支持向量机:support vectors machine    请参考我的另外一篇博客:在opencv3中实现机器学习之:利用svm(支持向量机)分类 4.决…
 基于Vivado HLS在zedboard中的Sobel滤波算法实现 平台:zedboard  + Webcam 工具:g++4.6  + VIVADO HLS  + XILINX EDK + XILINX SDK 系统:ubuntu12.04 总体设计思路 sobel 算法理论基础       索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值.在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量. 该…
拟采用的方法,CamShift算法,即"Continuously Apative Mean-Shift"算法,是一种运动跟踪算法.它主要通过视频图像中运动物体的颜色信息来达到跟踪的目的.该算法的已经在PC上尝试过,效果良好.目前正在往手机上移植. 这个算法是根据颜色信息来跟踪吗?有待验证 (1)Camshift算法 转自: http://blog.sina.com.cn/s/blog_5d1476580101a57j.html Camshift算法是Continuously Adapt…
http://www.cnblogs.com/mikewolf2002/p/3330390.html OpenCV学习(20) grabcut分割算法 在OpenCV中,实现了grabcut分割算法,该算法可以方便的分割出前景图像,操作简单,而且分割的效果很好.算法的原理参见papaer:“GrabCut” — Interactive Foreground Extraction using Iterated Graph Cuts 比如下面的一副图,我们只要选定一个四边形框,把框中的图像作为gra…
在计算机视觉和机器学习方向有一个特别好用但是比较低调的库,也就是dlib,与opencv相比其包含了很多最新的算法,尤其是深度学习方面的,因此很有必要学习一下.恰好最近换了一台笔记本,内含一块GTX1060的显卡,可以用来更快地跑深度学习算法.以前用公司HP的工作站配置过dlib,GPU是Quadro K420,用dlib自带的人脸识别算法(ResNet)测试过,相比较1060的速度确实要快上很多.dlib.cuda和cudnn的版本经常会更新,每次重新配置环境会遇到一些问题,在这里记下来吧.…
图像识别.人脸识别可行的算法有很多.但是作为学习,如果能理清这个问题研究的历程及其主线,会对你深入理解当前研究最新的发展有很多帮助.本文是自己在学习过程中的笔记,大多内容来自于网络,出处请参考最后的引文部分. Sift算法 Sift算法是David Lowe于1999年提出的局部特征描述子,并于2004年进行了更深入的发展和完善.Sift特征匹配算法可以处理两幅图像之间发生平移.旋转.仿射变换情况下的匹配问题,具有很强的匹配能力.总体来说,Sift算子具有以下特性: Sift特征是图像的局部特征…
所谓图像分割指的是根据灰度.颜色.纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性.我们先对目前主要的图像分割方法做个概述,后面再对个别方法做详细的了解和学习. 一.图像分割算法概述 1.基于阈值的分割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将像素根据比较结果分到合适的类别中.因此,该类方法最为关键的一步就是按照某个准则函数来求解最佳灰度阈值. 2.基于边…
划重点 ================================================= BOF.FV.VLAD等算法都是基于特征描述算子的特征编码算法,关于特征描述算子是以SIFT为基础的一类算法,该类算法能得到图片的一系列局部特征,该类特征对旋转.缩放.亮度变化保持不变性,对视角变化.仿射变换.噪声也保持一定程度的稳定性,但是该类特征产生的特征矩阵一般都较为庞大,因此需要利用特征编码算法对其进行编码,以便后续构建索引,实现图像检索.   BOF.FV.VLAD都需要对SIF…