红米note4x 联发科联发科的,什么时候更新9

我的图书馆
随笔分类 - 机器学习
摘要: 前言: 本次实验是用EM来学习HMM中的参数,并用学好了的HMM对一些kinect数据进行动作分类。实验内容请参考coursera课程:Probabilistic Graphical Models 中的的最后一个assignmnet.实验用的是kinect关节点数据,由于HMM是一个时序模型,且含有隐变量,所以这个实验不是很好做。大家对HMM不熟悉的话可以参考网友的实验:code. kinect人体关节数据中, 每个关节点由3个坐标数据构成,多个关节点数据(实验中为10个)构成一个pose,多个pose构成一个action,每个action所包含的pose个数可能不等。其示意图如下: ...
tornadomeet 阅读(2535) |
摘要: 前言: 本次实验包含了2部分:贝叶斯模型参数的学习以及贝叶斯模型结构的学习,在前面的博文PGM练习七:CRF中参数的学习 中我们已经知道怎样学习马尔科夫模型(CRF)的参数,那个实验采用的是优化方法,而这里贝叶斯模型参数的学习是先假定样本符合某种分布,然后使用统计的方法去学习这些分布的参数,来达到学习模型参数的目的。实验内容请参考coursera课程:Probabilistic Graphical Models中的assignmnet 8,实验code可参考网友的:code 实验中所用到的body pose表现形式如下: 共有10个节点,每个节点由2个坐标变量和1个方向变量构成。...
tornadomeet 阅读(1291) |
摘要: 前言: 本次实验主要任务是学习CRF模型的参数,实验例子和PGM练习3中的一样,用CRF模型来预测多张图片所组成的单词,我们知道在graph model的推理中,使用较多的是factor,而在graph model参数的学习中,则使用较多的是指数线性模型,本实验的CRF使用的是log-linear模型,实验内容请参考coursera课程:Probabilistic Graphical Models中的assignmnet 7. 实验code可参考网友的:code实验对应的模型示意图如下: CRF参数求解过程: 本实验中CRF模型所表示的条件概率计算公式为: 其中的分母为划分函...
tornadomeet 阅读(1920) |
摘要: 前言: 本次实验是将一些简单的决策理论和PGM推理结合,实验内容相对前面的图模型推理要简单些。决策理论采用的是influence diagrams,和常见图模型本质一样,其中的决策节点也可以用CPD来描述,做决策时一般是采用最大期望效用准则(MEU)。实验内容参考参考的内容是coursera课程:Probabilistic Graphical Models中的assignment 5. 实验code可参考网友的:code. 实验中一些函数简单说明: Fnew = VariableElimination(F, Z): 给定factorlist F和需要消除的变量集Z,采用sum-pr...
tornadomeet 阅读(891) |
摘要: 前言: 这次练习完成的是图模型的近似推理,参考的内容是coursera课程:Probabilistic Graphical Models.上次实验PGM练习四:图模型的精确推理 中介绍的是图模型的精确推理,但在大多数graph上,其精确推理是NP-hard的,所以有必要采用计算上可行的近似推理...
tornadomeet 阅读(1292) |
摘要: 前言: 这次实验完成的是图模型的精确推理。exact inference分为2种,求边缘概率和求MAP,分别对应sum-product和max-sum算法。这次实验涉及到的知识点很多,不仅需要熟悉图模型的representation,而且还需明白图模型的inference理论,大家可参考cou...
tornadomeet 阅读(1667) |
摘要: 前言: 接着coursera课程:Probabilistic Graphical Models上的实验3,本次实验是利用马尔科夫网络(CRF模型)来完成单词的OCR识别,每个单词由多个字母组合,每个字母为16×8大小的黑白图片。本次实验简化了很多内容,不需要我们去学这些参数(已提供),不需要掌握推理的方法(也提供了),目的是让大家对CRF模型有个感性认识。马尔科夫网络相比贝叶斯网络的优点就是不用自己去确定那些太明确结构(比如说那些因果关系)。 matlab基础知识: n = norm(X): 计算X的诱导2范数。如果X为向量,则n为它的欧式距离。如果X为矩阵,则n为X的最大特征值。.
tornadomeet 阅读(2034) |
摘要: 前言: 这是coursera课程:Probabilistic Graphical Models 上的第二个实验,主要是用贝叶斯网络对基因遗传问题进行一些计算。具体实验内容可参考实验指导教材:bayes network for genetic inheritance. 大家可以去上面的链接去下载实验材料和stard code,如实验内容有难以理解的地方,欢迎私底下讨论。下面是随便写的一些笔记。 完成该实验需要了解一些遗传方面的简单知识,可参考:Introduction to heredity(基因遗传简单介绍) 关于实验的一些约定和术语: 同位基因(也叫等位基因)中有一个显现基因(d...
tornadomeet 阅读(1520) |
摘要: 前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它。虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好。而本文的主要目的是介绍CNN参数在使用bp算法时该怎么训练,毕竟CNN中有卷积层和下采样层,虽然和M...
tornadomeet 阅读(11587) |
摘要: 深度网络结构是由多个单层网络叠加而成的,而常见的单层网络按照编码解码情况可以分为下面3类:既有encoder部分也有decoder部分:比如常见的RBM系列(由RBM可构成的DBM, DBN等),autoencoder系列(以及由其扩展的sparse autoencoder, denoise a...
tornadomeet 阅读(2944) |
摘要: 前言: 本文主要是bengio的deep learning tutorial教程主页中最后一个sample:rnn-rbm in polyphonic music. 即用RNN-RBM来model复调音乐,训练过程中采用的是midi格式的音频文件,接着用建好的model来产生复调音乐。对音乐建模的难点在与每首乐曲中帧间是高度时间相关的(这样样本的维度会很高),用普通的网络模型是不能搞定的(普通设计网络模型没有考虑时间维度,图模型中的HMM有这方面的能力),这种情况下可以采用RNN来处理,这里的RNN为recurrent neural network中文为循环神经网络,另外还有一种RNN为...
tornadomeet 阅读(5865) |
摘要: Contractive autoencoder是autoencoder的一个变种,其实就是在autoencoder上加入了一个规则项,它简称CAE(对应中文翻译为?)。通常情况下,对权值进行惩罚后的autoencoder数学表达形式为: 这是直接对W的值进行惩罚的,而今天要讲的CAE其数学表达式同样非常简单,如下: 其中的是隐含层输出值关于权重的雅克比矩阵,而 表示的是该雅克比矩阵的F范数的平方,即雅克比矩阵中每个元素求平方 然后求和,更具体的数学表达式为: 关于雅克比矩阵的介绍可参考雅克比矩阵&行列式——单纯的矩阵和算子,关于F范数可参考我前面的博文Sparse ...
tornadomeet 阅读(2630) |
摘要: CNN中卷积完后有个步骤叫pooling, 在ICLR2013上,作者Zeiler提出了另一种pooling手段(最常见的就是mean-pooling和max-pooling),叫stochastic pooling,在他的文章还给出了效果稍差点的probability weighted pooling方法。 stochastic pooling方法非常简单,只需对feature map中的元素按照其概率值大小随机选择,即元素值大的被选中的概率也大。而不像max-pooling那样,永远只取那个最大值元素。 假设feature map中的pooling区域元素值如下: 3*3大小...
tornadomeet 阅读(2556) |
摘要: 和maxout(maxout简单理解)一样,DropConnect也是在ICML2013上发表的,同样也是为了提高Deep Network的泛化能力的,两者都号称是对Dropout(Dropout简单理解)的改进。 我们知道,Dropout是在训练过程中以一定概率1-p将隐含层节点的输出值清0,而用bp更新权值时,不再更新与该节点相连的权值。用公式描述如下: 其中v是n*1维的列向量,W是d*n维的矩阵,m是个d*1的01列向量,a(x)是一个满足a(0)=0的激发函数形式。这里的m和a(Wv)相乘是对应元素的相乘。 而DropConnect的思想也很简单,与Dropout不同的是...
tornadomeet 阅读(2128) |
摘要: maxout出现在ICML2013上,作者Goodfellow将maxout和dropout结合后,号称在MNIST, CIFAR-10, CIFAR-100, SVHN这4个数据上都取得了start-of-art的识别率。 从论文中可以看出,maxout其实一种激发函数形式。通常情况下,如果激发函数采用sigmoid函数的话,在前向传播过程中,隐含层节点的输出表达式为: 其中W一般是2维的,这里表示取出的是第i列,下标i前的省略号表示对应第i列中的所有行。但如果是maxout激发函数,则其隐含层节点的输出表达式为: 这里的W是3维的,尺寸为d*m*k,其中d表示输入层节...
tornadomeet 阅读(3071) |
摘要: 前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展...
tornadomeet 阅读(13716) |
摘要: 没有系统学过数学优化,但是机器学习中又常用到这些工具和技巧,机器学习中最常见的优化当属凸优化了,这些可以参考Ng的教学资料:http://cs229.stanford.edu/section/cs229-cvxopt.pdf,从中我们可以大致了解到一些凸优化的概念,比如凸集,凸函数,凸优化问题,线性规划,二次规划,二次约束二次规划,半正定规划等,从而对凸优化问题有个初步的认识。以下是几个重要相关概念的笔记。 凸集的定义为: 其几何意义表示为:如果集合C中任意2个元素连线上的点也在集合C中,则C为凸集。其示意图如下所示: 常见的凸集有: n维实数空间;一些范数约束形式的集合;...
tornadomeet 阅读(4182) |
摘要: 为了对GMM-HMM在语音识别上的应用有个宏观认识,花了些时间读了下HTK(用htk完成简单的孤立词识别)的部分源码,对该算法总算有了点大概认识,达到了预期我想要的。不得不说,网络上关于语音识别的通俗易懂教程太少,都是各种公式满天飞,很少有说具体细节的,当然了,那需要有实战经验才行。下面总结以下几点,对其有个宏观印象即可(以孤立词识别为例)。 一、每个单词的读音都对应一个HMM模型,大家都知道HMM模型中有个状态集S,那么每个状态用什么来表示呢,数字?向量?矩阵?其实这个状态集中的状态没有具体的数学要求,只是一个名称而已,你可以用’1’, ’2’, ‘3’…表示,也可以用’a’, ‘b’...
tornadomeet 阅读(3819) |
摘要: 最近在看图模型中著名的HMM算法,对应的一些理论公式也能看懂个大概,就是不太明白怎样在一个具体的机器学习问题(比如分类,回归)中使用HMM,特别是一些有关状态变量、观察变量和实际问题中变量的对应关系,因此目前急需一个实际例子来加深对HMM算法的仰慕,大家如有好的例子来具体学HMM算法的话,欢迎分享!众所周知,著名的HMM开源库为Hidden Markov Model Toolkit(以下简称HTK),而HTK在语音识别领域应用很成功,这2天花了些时间学习了HTK的使用,完成的是最简单孤立词的识别,即Yes、No的语音识别,网上这方面的教程纵多,见参考资料部分。 当然了,进行实验的前提是正...
tornadomeet 阅读(2467) |
摘要: 目前,深度网络(Deep Nets)权值训练的主流方法还是梯度下降法(结合BP算法),当然在此之前可以用无监督的方法(比如说RBM,Autoencoder)来预训练参数的权值,而梯度下降法应用在深度网络中的一个缺点是权值的迭代变化值会很小,很容易收敛到的局部最优点;另一个缺点是梯度下降法不能很好的处理有病态的曲率(比如Rosenbrock函数)的误差函数。而本文中所介绍的Hessian Free方法(以下简称HF)可以不用预训练网络的权值,效果也还不错,且其适用范围更广(可以用于RNN等网络的学习),同时克服了上面梯度下降法的那2个缺点。HF的主要思想类似于牛顿迭代法,只是并没有显示的去计..
tornadomeet 阅读(3756) |
摘要: 数学优化方法在机器学习算法中至关重要,本篇博客主要来简单介绍下Conjugate Gradient(共轭梯度法,以下简称CG)算法,内容是参考的文献为:An Introduction to the Conjugate Gradient Method Without the Agonizing Pain,具体细节大家还需仔细阅读那篇文章,这篇博客并不是重现那篇论文的内容,只是简单的梳理下CG算法的流程,以及它的重要思路,方便大家理解CG算法。 首先我们需要解决的问题是:求满足线性方程(1):的解x. 那么有人就这么认为了:这个解x不就是吗?对,这样说也不能算错,但是如果A不可逆那么x这样...
tornadomeet 阅读(3181) |
摘要: 前言: 当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Bengio在08年提出,见其文章Extracting and composing robust features with denoising autoencoders.使用dAE时,可以用被破坏的输入数据重构出原始的数据(指没被破坏的数据),所以它训练出来的特征会更鲁棒。本篇博文主要是根据Benigio的那篇文章简单介绍下dAE,然后通过2个简单的实验来说明实际编程中该怎样应用dAE。这2个...
tornadomeet 阅读(7010) |
摘要: 前言 训练神经网络模型时,如果训练样本较少,为了防止模型过拟合,Dropout可以作为一种trikc供选择。Dropout是hintion最近2年提出的,源于其文章Improving neural networks by preventing co-adaptation of feature detectors.中文大意为:通过阻止特征检测器的共同作用来提高神经网络的性能。本篇博文就是按照这篇论文简单介绍下Dropout的思想,以及从用一个简单的例子来说明该如何使用dropout。 基础知识: Dropout是指在模型训练时随机让网络某些隐含层节点的权重不工作,不工作的那些节点可以暂...
tornadomeet 阅读(7203) |
摘要: 头脑一热,坐几十个小时的硬座北上去天津大学去听了门4天的深度学习课程,课程预先的计划内容见:http://cs./web/courseIntro.html。上课老师为微软研究院的大牛——邓力,群(qq群介绍见:Deep learning高质量交流群)里面有人戏称邓力(拼音简称DL)老师是天生注定能够在DL(Deep learning)领域有所成就的,它的个人主页见:/en-us/people/deng/。这次我花费这么大的力气参加这个课程,是期望能达到3个目的的:一、把DL中一些常见基础算法弄明白,特别是跟能量模..
tornadomeet 阅读(8801) |
摘要: 前言: 高斯过程回归(GPR)和贝叶斯线性回归类似,区别在于高斯过程回归中用核函数代替了贝叶斯线性回归中的基函数(其实也是核函数,线性核)。采用核函数可以定义高斯过程回归是一个比贝叶斯线性回归更通用的模型,应用非常广泛。本文参考的资料为视频/playlist?list=PLD0Z06AA0D2E8ZZBA中相关的部分以及论文Gaussian Processes for Regression A Quick Introduction. 基础知识: 首先来看看Bayesian linear regression(贝叶斯线性回归)模型: 其...
tornadomeet 阅读(6955) |
摘要: 前言: GP(高斯过程)是一种自然界中普遍存在且重要的随机过程,也叫正态随机过程,在ML等领域应用比较广泛。本次实验目的是简单理解下GP,特别是要体验到GP的一个sample不再是一个普通的点,而是一个函数。实验部分完成了常见的GP的一维和二维sample的显示,常见的GP有线性GP,布朗运动...
tornadomeet 阅读(6490) |
摘要: 前言: 这次的内容是Ng关于machine learning关于svm部分的一些笔记。以前也学过一些svm理论,并且用过libsvm,不过这次一听Ng的内容,确实收获不少,隐约可以看到从logistic model到svm model的过程。 基础内容: 使用linear模型进行分类时,可以将参数向量看成一个变量,如果代价函数用MSE表示,则代价函数的图形类似抛物线(以新的变量为自变量);如果代价函数用交叉对数公式表示时,则其代价函数曲线如下: 在Logistic回归中其代价函数可以表示为如下: 其中第一项是训练样本的误差,第二项是权值系数的惩罚项,λ为权值惩罚系数,其中...
tornadomeet 阅读(3065) |
摘要: 前言: 以前在coursera上选过一门PGM的课(概率图模型),今天上去才发现4月份已经开课了,6月份就要结束了,虽然最近没什么时间,挤一点算一点,所以得抓紧时间学下。另外因为报名这些课程的时候,开课老师是不允许将课程资料和code贴在网上的,所以作为学生还是要听从老师的要求,所以这个系列的笔记只是简单的写下,完全留给自己看的,内容估计不会很完整的。 笔记: 模型的表示其来源可以由相应领域的专家给出,也可以直接从数据中学习到。如下所示: 模型的准确性具有不确定性主要是因为:对现实世界的描述不全面;观察到的数据有噪声;模型只是体现大部分的数据,对某些特例不会考虑;模型固有的不确...
tornadomeet 阅读(2156) |
摘要: 前言: 本次主要是练习下ICA模型,关于ICA模型的理论知识可以参考前面的博文:Deep learning:三十三(ICA模型)。本次实验的内容和步骤可以是参考UFLDL上的教程:Exercise:Independent Component Analysis。本次实验完成的内容和前面的很多练习类似,即学习STL-10数据库的ICA特征。当然了,这些数据已经是以patches的形式给出,共2w个patch,8*8大小的。 实验基础: 步骤分为下面几步:设置网络的参数,其中的输入样本的维数为8*8*3=192。对输入的样本集进行白化,比如说ZCA白化,但是一定要将其中的参数eplison...
tornadomeet 阅读(2813) |
摘要: 前言: 本节主要是来简单介绍下stacked CNN(深度卷积网络),起源于本人在构建SAE网络时的一点困惑:见Deep learning:三十六(关于构建深度卷积SAE网络的一点困惑)。因为有时候针对大图片进行recognition时,需要用到无监督学习的方法去pre-training(预训练)stacked CNN的每层网络,然后用BP算法对整个网络进行fine-tuning(微调),并且上一层的输出作为下一层的输入。这几句话说起来很简单,可是真的这么容易吗?对于初学者来说,在实际实现这个流程时并不是那么顺利,因为这其中要涉及到很多细节问题。这里不打算细讲deep statcked网...
tornadomeet 阅读(15139) |
摘要: 最近Deep Learning特别火,但是发现网上很少有专门针对DL讨论的论坛等,所以交流起来特别不方便。独学而无友,则孤陋而寡闻,本人刚开始接触DL,菜鸟一枚,希望和各位志同道合的朋友多多交流,特建立了一个Deep Learning高质量交流qq群,欢迎加入,群号为:(大家加入群时需验证,请用一句话简单说下你对DL的认识,以防乱加,哈哈,谢谢!) 规定(必须执行) 1. 杜绝不文明言论 2. 严禁广告 3. 严禁跑题 引导(参考执行) 1. 群中讨论的内容 为了保证群内交流的质量请大家尽量讨论Deep Learning为主的算法,以及与其相关的ML,DM,...
tornadomeet 阅读(4985) |
摘要: 内容: 本文主要是参考论文:On optimization methods for deep learning,文章内容主要是笔记SGD(随机梯度下降),LBFGS(受限的BFGS),CG(共轭梯度法)三种常见优化算法的在deep learning体系中的性能。下面是一些读完的笔记。 SGD优点:实现简单,当训练样本足够多时优化速度非常快。 SGD缺点:需要人为调整很多参数,比如学习率,收敛准则等。另外,它是序列的方法,不利于GPU并行或分布式处理。 各种deep learning中常见方法(比如说Autoencoder,RBM,DBN,ICA,Sparse coding)的区别是...
tornadomeet 阅读(6593) |
摘要: 前言: 最近一直在思考,如果我使用SCSAE(即stacked convolution sparse autoendoer)算法来训练一个的deep model的话,其网络的第二层开始后续所有网络层的训练数据从哪里来呢?其实如果在这个问题中,当我们的样本大小(指提供的最原始数据,比如大的图片集)和我们所训练第一个网络的输入维度是一样的话,那么第二层网络的输入即第一层网络的输出(后续的网络依次类推),但是这种情况下根本就不会涉及到convolution(一般有convolution的地方也会有pooling),所以不属于我想要讨论的SCSAE框架。后面根据自己对deep learning的...
tornadomeet 阅读(5890) |
摘要: 前言: 本文是针对上篇博文Deep learning:三十四(用NN实现数据的降维)的练习部分,也就是Hition大牛science文章reducing the dimensionality of data with neural networks的code部分,其code下载见:http:/...
tornadomeet 阅读(7164) |
摘要: 数据降维的重要性就不必说了,而用NN(神经网络)来对数据进行大量的降维是从2006开始的,这起源于2006年science上的一篇文章:reducing the dimensionality of data with neural networks,作者就是鼎鼎有名的Hinton,这篇文章也标志着deep learning进入火热的时代。 今天花了点时间读了下这篇文章,下面是一点笔记: 多层感知机其实在上世纪已经被提出来了,但是为什么它没有得到广泛应用呢?其原因在于对多层非线性网络进行权值优化时很难得到全局的参数。因为一般使用数值优化算法(比如BP算法)时需要随机给网络赋一个值,而当这...
tornadomeet 阅读(4654) |
摘要: 基础知识: 在sparse coding(可参考Deep learning:二十六(Sparse coding简单理解),Deep learning:二十九(Sparse coding练习))模型中,学习到的基是超完备集的,也就是说基集中基的个数比数据的维数还要大,那么对一个数据而言,将其分解为基的线性组合时,这些基之间本身就是线性相关的。如果我们想要得到线性无关的基集,那么基集中元素的个数必须小于或等于样本的维数,本节所讲的ICA(Independent Component Analysis,独立成分分析)模型就可以完成这一要求,它学习到的基之间不仅保证线性无关,还保证了相互正交。本节...
tornadomeet 阅读(2849) |
摘要: 前言: 本次主要是重新复习下Sparse autoencoder基础知识,并且加入点自己的理解。关于sparse autoencoder在前面的博文Deep learning:八(Sparse Autoencoder)中已有所介绍。 基础知识: 首先来看看为什么sparse autoencoder能够学习到输入数据的特征呢?当使用autoencoder时,隐含层节点的个数会比输入层小(一般情况下),而autoencoder又要能够重构输入数据,说明隐含层节点压缩了原始数据,既然这个压缩是有效的,则它就代表了输入数据(因为输入数据每个分量值并不是相互独立的)的一部分特征了。如果对隐含节...
tornadomeet 阅读(2130) |
摘要: 前言: 本节主要是来练习下在machine learning(不仅仅是deep learning)设计前的一些数据预处理步骤,关于数据预处理的一些基本要点在前面的博文Deep learning:三十(关于数据预处理的相关技巧)中已有所介绍,无非就是数据的归一化和数据的白化,而数据的归一化又分为尺度归一化,均值方差归一化等。数据的白化常见的也有PCA白化和ZCA白化。 实验基础: 本次实验所用的数据为ASL手势识别的数据,数据可以在网站http://personal.ee.surrey.ac.uk/Personal/N.Pugeault/index.php?section=Finger...
tornadomeet 阅读(3981) |
摘要: 前言: 本文主要是介绍下在一个实际的机器学习系统中,该怎样对数据进行预处理。个人感觉数据预处理部分在整个系统设计中的工作量占了至少1/3。首先数据的采集就非常的费时费力,因为这些数据需要考虑各种因素,然后有时还需对数据进行繁琐的标注。当这些都有了后,就相当于我们有了元素的raw数据,然后就可以进行下面的数据预处理部分了。本文是参考的UFLDL网页教程:Data Preprocessing,在该网页的底部可以找到其对应的中文版。 基础知识: 一般来说,算法的好坏一定程度上和数据是否归一化,是否白化有关。但是在具体问题中,这些数据预处理中的参数其实还是很难准确得到的,当然了,除非你对对应...
tornadomeet 阅读(3874) |
摘要: 前言 本节主要是练习下斯坦福DL网络教程UFLDL关于Sparse coding那一部分,具体的网页教程参考:Exercise:Sparse Coding。该实验的主要内容是从2w个自然图像的patches中分别采用sparse coding和拓扑的sparse coding方法进行学习,并观察学习到的这些图像基图像的特征。训练数据时自然图片IMAGE,在给出的教程网站上有。 实验基础 Sparse coding的主要是思想学习输入数据集”基数据”,一旦获得这些”基数据”,输入数据集中的每个数据都可以用这些”基数据”的线性组合表示,而稀疏性则体现在这些线性组合系数是系数的,即大部分的...
tornadomeet 阅读(7063) |
摘要: 前言: 关于Sparse coding目标函数的优化会涉及到矩阵求数问题,因为里面有好多矩阵范数的导数,加上自己对矩阵运算不熟悉,推导前面博文Deep learning:二十六(Sparse coding简单理解)中关于拓扑(非拓扑的要简单很多)Sparse coding代价函数对特征变量s导数的公式时,在草稿纸上推导了大半天也没有正确结果。该公式表达式为: 后面继续看UFLDL教程,发现这篇文章Deriving gradients using the backpropagation idea中已经给出了我想要的答案,作者是应用BP神经网络中求网络代价函数导数的思想,将上述代价函...
tornadomeet 阅读(3505) |
摘要: 前言: 由于在sparse coding模型中求系统代价函数偏导数时需要用到矩阵的范数求导,这在其它模型中应该也很常见,比如说对一个矩阵内的元素值进行惩罚,使其值不能过大,则可以使用F范数(下面将介绍)约束,查阅了下矩阵范数求导的相关资料,本节就简单介绍下。 首先,网络上有大把的人把2范数和F=2时的范数混为一谈,或者说把矩阵p范数和诱导p范数混淆了(也有可能是因为各个版本书所定义的不同吧)。下面我还是以矩阵中权威教材the matrix cookbook和matlab内嵌函数所用的定义来解释。话说the matrix cookbook是一本非常不错的参考书,查找矩阵相关的公式就像查字...
tornadomeet 阅读(5887) |
摘要: Sparse coding: 本节将简单介绍下sparse coding(稀疏编码),因为sparse coding也是deep learning中一个重要的分支,同样能够提取出数据集很好的特征。本文的内容是参考斯坦福deep learning教程:Sparse Coding,Sparse Coding: Autoencoder Interpretation,对应的中文教程见稀疏编码,稀疏编码自编码表达。 在次之前,我们需要对凸优化有些了解,百度百科解释为:”凸优化“ 是指一种比较特殊的优化,是指目标函数为凸函数且由约束条件得到的定义域为凸集的优化问题,也就是说目标函数和约束条件都是”...
tornadomeet 阅读(12479) |
摘要: 前言: 本文是用kmeans方法来分析单层网络的性能,主要是用在CIFAR-10图像识别数据库上。关于单层网络的性能可以参考前面的博文:Deep learning:二十(无监督特征学习中关于单层网络的分析)。当然了,本文依旧是参考论文An Analysis of Single-Layer Networks in Unsupervised Feature Learning,Adam Coates, Honglak Lee, and Andrew Y. Ng. InAISTATS 14, 2011.只是重点在分析4个算法中的kemans算法(因为作者只提供关于kmeans的demo,呵呵,当...
tornadomeet 阅读(3976) |
摘要: 前言: 本次是练习2个隐含层的网络的训练方法,每个网络层都是用的sparse autoencoder思想,利用两个隐含层的网络来提取出输入数据的特征。本次实验验要完成的任务是对MINST进行手写数字识别,实验内容及步骤参考网页教程Exercise: Implement deep networks for digit classification。当提取出手写数字图片的特征后,就用softmax进行对其进行分类。关于MINST的介绍可以参考网页:MNIST Dataset。本文的理论介绍也可以参考前面的博文:Deep learning:十六(deep networks)。 实验基础: ...
tornadomeet 阅读(7683) |
摘要: 前言: 本次实验是练习convolution和pooling的使用,更深一层的理解怎样对大的图片采用convolution得到每个特征的输出结果,然后采用pooling方法对这些结果进行计算,使之具有平移不变等特性。实验参考的是斯坦福网页教程:Exercise:Convolution and Pooling。也可以参考前面的博客:Deep learning:十七(Linear Decoders,Convolution和Pooling),且本次试验是在前面博文Deep learning:二十二(linear decoder练习)的学习到的特征提取网络上进行的。 实验基础: 首先来看看整...
tornadomeet 阅读(6331) |
摘要: 前言: 本节是练习Linear decoder的应用,关于Linear decoder的相关知识介绍请参考:Deep learning:十七(Linear Decoders,Convolution和Pooling),实验步骤参考Exercise: Implement deep networks for digit classification。本次实验是用linear decoder的sparse autoencoder来训练出stl-10数据库图片的patch特征。并且这次的训练权值是针对rgb图像块的。 基础知识: PCA Whitening是保证数据各维度的方差为1,而ZCA ...
tornadomeet 阅读(4014) |
摘要: 这又是Ng团队的一篇有趣的paper。Ng团队在上篇博客文章Deep learning:二十(无监督特征学习中关于单层网络的分析)中给出的结论是:网络中隐含节点的个数,convolution尺寸和移动步伐等参数比网络的层次比网络参数的学习算法本身还要重要,也就是说即使是使用单层的网络,只要隐含层的节点数够大,convolution尺寸和移动步伐较小,用简单的算法(比如kmeans算法)也可取得不亚于其它复杂的deep learning最优效果算法。而在本文On random weights and unsupervised feature learning中又提出了个新观点:即根本就无需通..
tornadomeet 阅读(2618) |
摘要: 本文是读Ng团队的论文” An Analysis of Single-Layer Networks in Unsupervised Feature Learning”后的分析,主要是针对一个隐含层的网络结构进行分析的,分别对比了4种网络结构,k-means, sparse autoencoder, sparse rbm, gmm。最后作者得出了下面几个结论:1. 网络中隐含层神经元节点的个数,采集的密度(也就是convolution时的移动步伐)和感知区域大小对最终特征提取效果的影响很大,甚至比网络的层次数,deep learning学习算法本身还要重要。2. Whitening在预处理过..
tornadomeet 阅读(4970) |
摘要: 这篇博客主要用来简单介绍下RBM网络,因为deep learning中的一个重要网络结构DBN就可以由RBM网络叠加而成,所以对RBM的理解有利于我们对DBN算法以及deep learning算法的进一步理解。Deep learning是从06年开始火得,得益于大牛Hinton的文章,不过这位大牛的文章比较晦涩难懂,公式太多,对于我这种菜鸟级别来说读懂它的paper压力太大。纵观大部分介绍RBM的paper,都会提到能量函数。因此有必要先了解下能量函数的概念。参考网页http://202.197.191.225:8080/30/text/chapter06/6_2t24.htm关于能量函数..
tornadomeet 阅读(16145) |
摘要: 由于最近在看deep learning中的RBMs网络,而RBMs中本身就有各种公式不好理解,再来几个Gibbs采样,就更令人头疼了。所以还是觉得先看下Gibbs采样的理论知识。经过调查发现Gibbs是随机采样中的一种。所以本节也主要是简单层次的理解下随机采用知识。参考的知识是博客随机模拟的基本思想和常用采样方法(sampling),该博文是网上找到的解释得最通俗的。其实学校各种带数学公式的知识时,最好有学者能用通俗易懂的语言介绍,这对入门学者来说极其重要。当然了,还参考了网页http://www./user/lyqing/StatLearning/StatlLearni..
tornadomeet 阅读(8260) |
摘要: 本文主要是学习下Linear Decoder已经在大图片中经常采用的技术convolution和pooling,分别参考网页http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial中对应的章节部分。 Linear Decoders: 以三层的稀疏编码神经网络而言,在sparse autoencoder中的输出层满足下面的公式: 从公式中可以看出,a3的输出值是f函数的输出,而在普通的sparse autoencoder中f函数一般为sigmoid函数,所以其输出值的范围为(0,1),所以可以知道a3的输出值范围也...
tornadomeet 阅读(7256) |
摘要: 本节参考的是网页http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial中关于Building Deep Networks for Classification一节的介绍。分下面2大部分内容: 1. 从self-taught到deep networks: 从前面的关于self-taught learning介绍(Deep learning:十五(Self-Taught Learning练习))可以看到,该ML方法在特征提取方面是完全用的无监督方法,本次要讲的就是在上面的基础上再用有监督的方法继续对网络的参数进行微调,这...
tornadomeet 阅读(7426) |
摘要: 前言: 本次实验主要是练习soft- taught learning的实现。参考的资料为网页:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Self-Taught_Learning。Soft-taught leaning是用的无监督学习来学习到特征提取的参数,然后用有监督学习来训练分类器。这里分别是用的sparse autoencoder和softmax regression。实验的数据依旧是手写数字数据库MNIST Dataset. 实验基础: 从前面的知识可以知道,sparse autoencoder的输出应该是...
tornadomeet 阅读(5877) |
摘要: 前言: 这篇文章主要是用来练习softmax regression在多分类器中的应用,关于该部分的理论知识已经在前面的博文中Deep learning:十三(Softmax Regression)有所介绍。本次的实验内容是参考网页:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Softmax_Regression。主要完成的是手写数字识别,采用的是MNIST手写数字数据库,其中训练样本有6万个,测试样本有1万个,且数字是0~9这10个。每个样本是一张小图片,大小为28*28的。 实验环境:matlab2012a 实验...
tornadomeet 阅读(7291) |
摘要: 在前面的logistic regression博文Deep learning:四(logistic regression练习) 中,我们知道logistic regression很适合做一些非线性方面的分类问题,不过它只适合处理二分类的问题,且在给出分类结果时还会给出结果的概率。那么如果需要用类似的方法(这里类似的方法指的是输出分类结果并且给出概率值)来处理多分类问题的话该怎么扩展呢?本次要讲的就是对logstic regression扩展的一种多分类器,softmax regression。参考的内容为网页:http://deeplearning.stanford.edu/wiki/in..
tornadomeet 阅读(10351) |
摘要: 前言: 现在来用PCA,PCA Whitening对自然图像进行处理。这些理论知识参考前面的博文:Deep learning:十(PCA和whitening)。而本次试验的数据,步骤,要求等参考网页:http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial 。实验数据是从自然图像中随机选取1的patch,然后对这些patch进行99%的方差保留的PCA计算,最后对这些patch做PCA Whitening和ZCA Whitening,并进行比较。 实验环境:matlab2012a 实验过程及结果:...
tornadomeet 阅读(5203) |
摘要: 前言: 这节主要是练习下PCA,PCA Whitening以及ZCA Whitening在2D数据上的使用,2D的数据集是45个数据点,每个数据点是2维的。参考的资料是:Exercise:PCA in 2D。结合前面的博文Deep learning:十(PCA和whitening)理论知识,来进一步理解PCA和Whitening的作用。 matlab某些函数: scatter: scatter(X,Y,,,’’); – 点的大小控制,设为和X,Y同长度一维向量,则值决定点的大小;设为常数或缺省,则所有点大小统一。 – 点的颜色控制,设为和X,Y同长度一维向量,则色彩由值大小...
tornadomeet 阅读(4465) |
摘要: PCA: PCA的具有2个功能,一是维数约简(可以加快算法的训练速度,减小内存消耗等),一是数据的可视化。 PCA并不是线性回归,因为线性回归是保证得到的函数是y值方面误差最小,而PCA是保证得到的函数到所降的维度上的误差最小。另外线性回归是通过x值来预测y值,而PCA中是将所有的x样本都同等对待。 在使用PCA前需要对数据进行预处理,首先是均值化,即对每个特征维,都减掉该维的平均值,然后就是将不同维的数据范围归一化到同一范围,方法一般都是除以最大值。但是比较奇怪的是,在对自然图像进行均值处理时并不是不是减去该维的平均值,而是减去这张图片本身的平均值。因为PCA的预处理是按照不同应用...
tornadomeet 阅读(6764) |
摘要: 前言: 现在来进入sparse autoencoder的一个实例练习,参考Ng的网页教程:Exercise:Sparse Autoencoder。这个例子所要实现的内容大概如下:从给定的很多张自然图片中截取出大小为8*8的小patches图片共10000张,现在需要用sparse autoencoder的方法训练出一个隐含层网络所学习到的特征。该网络共有3层,输入层是64个节点,隐含层是25个节点,输出层当然也是64个节点了。 实验基础: 其实实现该功能的主要步骤还是需要计算出网络的损失函数以及其偏导数,具体的公式可以参考前面的博文Deep learning:八(Sparse Aut...
tornadomeet 阅读(14197) |
摘要: 前言: 这节课来学习下Deep learning领域比较出名的一类算法——sparse autoencoder,即稀疏模式的自动编码。我们知道,deep learning也叫做unsupervised learning,所以这里的sparse autoencoder也应是无监督的。按照前面的博文:Deep learning:一(基础知识_1),Deep learning:七(基础知识_2)所讲,如果是有监督的学习的话,在神经网络中,我们只需要确定神经网络的结构就可以求出损失函数的表达式了(当然,该表达式需对网络的参数进行”惩罚”,以便使每个参数不要太大),同时也能够求出损失函数偏导函数的...
tornadomeet 阅读(11388) |
摘要: 前面的文章已经介绍过了2种经典的机器学习算法:线性回归和logistic回归,并且在后面的练习中也能够感觉到这2种方法在一些问题的求解中能够取得很好的效果。现在开始来看看另一种机器学习算法——神经网络。线性回归或者logistic回归问题理论上不是可以解决所有的回归和分类问题么,那么为什么还有其它各种各样的机器学习算法呢?比如这里马上要讲的神经网络算法。其实原因很简单,在前面的一系列博文练习中可以发现,那些样本点的输入特征维数都非常小(比如说2到3维),在使用logistic回归求解时,需要把原始样本特征重新映射到高维空间中,如果特征是3维,且指数最高为3时,得到的系数最高维数应该是2...
tornadomeet 阅读(6335) |
摘要: 前言: 在上一讲Deep learning:五(regularized线性回归练习)中已经介绍了regularization项在线性回归问题中的应用,这节主要是练习regularization项在logistic回归中的应用,并使用牛顿法来求解模型的参数。参考的网页资料为:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex5/ex5.html。要解决的问题是,给出了具有2个特征的一堆训练数据集,从该数据的分布可以看出它们并不是非常线性可分的,
tornadomeet 阅读(4483) |
摘要: 前言: 本节主要是练习regularization项的使用原则。因为在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象。因此在模型的损失函数中,需要对模型的参数进行“惩罚”,这样的话这些参数就不会太大,而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。本文参考的资料参考网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex5/ex5.html。主要是给定7个训练样本点,需
tornadomeet 阅读(4729) |
摘要: 前言: 本节来练习下logistic regression相关内容,参考的资料为网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex4/ex4.html。这里给出的训练样本的特征为80个学生的两门功课的分数,样本值为对应的同学是否允许被上大学,如果是允许的话则用’1’表示,否则不允许就用’0’表示,这是一个典型的二分类问题。在此问题中,给出的80个样本中正负样本各占40个。而这节采用的是logistic regression来求解,该求解
tornadomeet 阅读(7860) |
摘要: 前言: 本文主要是来练习多变量线性回归问题(其实本文也就3个变量),参考资料见网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex3/ex3.html.其实在上一篇博文Deep learning:二(linear regression练习)中已经简单介绍过一元线性回归问题的求解,但是那个时候用梯度下降法求解时,给出的学习率是固定的0.7.而本次实验中学习率需要自己来选择,因此我们应该从小到大(比如从0.001到10)来选择,通过观察损失值
tornadomeet 阅读(6343) |
摘要: 前言 本文是多元线性回归的练习,这里练习的是最简单的二元线性回归,参考斯坦福大学的教学网http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex2/ex2.html。本题给出的是50个数据样本点,其中x为这50个小朋友到的年龄,年龄为2岁到8岁,年龄可有小数形式呈现。Y为这50个小朋友对应的身高,当然也是小数形式表示的。现在的问题是要根据这50个训练样本,估计出3.5岁和7岁时小孩子的身高。通过画出训练样本点的分布凭直觉可以发现这是一个典型的线性回
tornadomeet 阅读(9726) |
摘要: 前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程UFLDL Tutorial,据说这个教程写得浅显易懂,也不太长。不过在这这之前还是复习下machine learning的基础知识,见网页:http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=DeepLearning。内容其实很短,每小节就那么几分钟,且讲得非常棒。 教程中的一些术语: Model representation: 其实就是指学习到的函数的表达形式,可以用矩阵表示。 Vecto...
tornadomeet 阅读(22958) |
摘要: 通过前面的博文ChaLearn Gesture Challenge_1:CGD数据库简单介绍分析可以看出,CGD数据库是2011年建立的,且在2012年利用该数据库进行了两轮One shot learning的挑战赛,从官网上给的CGD数据库可以推断出组织方是花费了很大的精力来收集这些数据的,不仅而此,组织方还给出了很多sample代码以及一些对应数据采集界面,方便大家共同扩大该数据库。CGD数据库目前有50000多个关于手势视频,共500个batch,每个batch都是同一个人在相同环境下的手势动作,只是手势内容不同而已。且每个batch都分为训练部分和测试部分。训练部分的每个视频只包含..
tornadomeet 阅读(1048) |
摘要: 关于ChaLearn数据库在前面文章ChaLearn Gesture Challenge_1:CGD数据库简单介绍中已经介绍过,当然了,关于该数据库的挑战赛在2012年主办了2场,其比赛结果依次分别在CCPRW2012和ICPRW2012中公布。这2轮比赛过程中官网http://gesture.chalearn.org/中都有对参加比赛的队伍所使用的方法等从感性上做了个调查,并且公布了其调查报告。从这些报告中我们可以参考到做手势识别的大概流程,每个流程中常见的方法是什么,我想这点对初步进入该领域的人来说应该有很大的启发作用。下面就官网发布的第二轮比赛调查Method survey文章来简单..
tornadomeet 阅读(867) |
摘要: 前言 本次读的文章是与feature learning相关,feature learning也叫做deep learning,是最近一个比较热门的话题。因为它可以无监督的学习到图片和视频的一些特征(当然在其它领域也可以,比如语音,语言处理等),而这些特征并不需要人为手动去设。手动设计的特征,常见的有sift,surf,hog等,它们都是经过了很长的时间才设计出来的,并且它只适应于2D的图片,如果把所需学习的目标换成视频,则也同样需要把这些算法扩展到3D,比如HOG3D,3Dsurf,这个扩展过程也是需要很多技巧和时间的。另外,手动设计的某一特征只对某些数据库表现好,而对其它的数据库效...
tornadomeet 阅读(1599) |
摘要: 独立成分分析(后面都用ICA代替)在维基百科中的解释是:一种利用统计原理进行计算的方法它是一个线性变换。这个变换把数据或信号分离成统计独立的非高斯的信号源的线性组合。独立成分分析是盲信号分离(Blind source separation)的一种特例。 可以感性上对比下ICA和PCA的区别,PCA是将原始数据降维并提取出不相关的属性,可以参考前面博文的介绍:PCA算法学习_1(OpenCV中PCA实现人脸降维)和PCA算法学习_2(PCA理论的matlab实现),而ICA是将原始数据降维并提取出相互独立的属性。我们知道两个随机变量独立则它们一定不相关,但2个随机变量不相关则不能保证它...
tornadomeet 阅读(2265) |
摘要: 前言 在前面的博文PCA算法学习_1(OpenCV中PCA实现人脸降维)中已经初步介绍了PCA算法的大概流程及在人脸降维上面的应用。本文就进一步介绍下其理论基础和matlab的实现(也是网上学者的代码)。 开发环境:Matlab2012a 基础 假设X是一个m*n的矩阵,是由样本数据构成的矩阵。其中m表示样本的属性维数,n表示样本的个数。现在要对X进行线性变换变成另一个矩阵Y,使得Y的协方差矩阵为对角矩阵,这样的Y就认为是对原始矩阵X提取主成分后的矩阵,实际过程中只需取Y的前面主要的行即可。 X变换到Y的线性变换公式为: X和Y的协方差计算方法为: 从下面的公式可...
tornadomeet 阅读(10460) |
摘要: 前言 最近几周花了点时间学习了下今年暑假龙星计划的机器学习课程,具体的课程资料参考见附录。本课程选讲了写ML中的基本模型,同时还介绍了最近几年比较热门,比较新的算法,另外也将ML理论和实际问题结合了起来,比如将其应用在视觉上,web上的等。总之,虽然课程内容讲得不是特别细(毕竟只有那么几节课),但是内容还算比较新和比较全的。学完这些课后,收获还算不少的,至少了解到了自己哪方面的知识比较弱,下面是课程中做的一些简单笔记。 第1课 绪论课 机器学习中3个比不可少的元素,数据,模型和算法。现在数据来源比较广泛,每天都可以产生T级以上的数据。模型的话就是机器学习课程中需要研究的各种模型,算法...
tornadomeet 阅读(10595) |
摘要: Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image segmentation)、立体视觉(stereo vision)、抠图(Image matting)等。Graph Cuts理论最早是出现在流网络优化领域的,比如说水管网络,通信传输网络,城市车流网络等。此时的Graph Cuts算法是用来确定网络流的最小分割,即寻找一个容量最小的边的集合,去掉这个集合中的所有边就可以阻挡这个网络了。需要注意的是,通常所说的Graph Cuts算法是指的采用最大流-最小分割来优化的模型,其它的Graph Cutting算法一般用graph par...
tornadomeet 阅读(4977) |
摘要: 在机器学习中,随机森林由许多的决策树组成,因为这些决策树的形成采用了随机的方法,因此也叫做随机决策树。随机森林中的树之间是没有关联的。当测试数据进入随机森林时,其实就是让每一颗决策树进行分类,最后取所有决策树中分类结果最多的那类为最终的结果。因此随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。随机森林可以既可以处理属性为离散值的量,比如ID3算法,也可以处理属性为连续值的量,比如C4.5算法。另外,随机森林还可以用来进行无监督学习聚类和异常点检测。 随机森林由决策树组成,决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一...
tornadomeet 阅读(8148) |
摘要: 前言: PCA是大家经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的。本文通过使用PCA来提取人脸中的特征脸这个例子,来熟悉下在oepncv中怎样使用PCA这个类。 开发环境:ubuntu12.04+Qt4.8.2+QtCreator2.5.1+opencv2.4.2 PCA数学理论: 关于PCA的理论,资料很多,公式也一大把,本人功底有限,理论方面这里就不列出了。下面主要从应用的角度大概来讲讲具体怎么实现数据集的降维。把原始数据中每个样本用一个向量表示,然后把所有样本组合起来构成一个矩阵。当然了,为了避免样本的单位的影响,样本集需要标准化。求该...
tornadomeet 阅读(12609) |
摘要: 在SVM中经常听说核函数,关于各种核函数的推导公式写得天花乱坠。SVM大概意思是说将低维不可分的样本映射到高维空间中后就线性可分了,由于最后用训练出来的模型进行分类预测 时需要求高维空间中映射特征间的内积,而核函数的功能就是我们计算时不需要考虑高维空间的具体形式,降低了其计算复杂度。 下面就简单讲讲核函数的作用,当然这里是以2分类器为例。 首先我们需要了解我们的目的是用训练样本学习到一个线性的表达式,即下面的公式: (1) 通过训练数据可以学校到其中的权值向量w...
tornadomeet 阅读(1336) |
摘要: 因做实验的需要,最近在学习EM算法,算法介绍的资料网上是有不少,可是没有一篇深入浅出的介绍,算法公式太多,比较难懂,毕竟她是ML领域10大经典算法之一 ,且一般是结合GMM模型的参数估计来介绍EM的。看过不少EM的资料,现将自己对EM算法用稍微通俗点的文字写下来,当然你可以用GMM这个具体的例子来帮助理解。 问题的提出:给定一些样本数据x,且知道该数据是有k个高斯混合产生的,现在要用给的样本数据x去估计模型的参数sida,即在该参数sida下产生x数据的概率最大。(其实就是个MLE估计)原问题等价与求sida,使得满足max(logP((x/sida))),那么我们为什么不直接用MLE去...
tornadomeet 阅读(3068) |
摘要: 这个也是本学期模式识别的一个小作业题。实验目的:采用神经网络的方法对二维双螺旋样本点进行分类。实验数据:由于本次的实验数据是双螺旋,需要用数学公式产生,其产生方法见参考文献[1]. 即由下面的公式产生: 实验数据分为2部分:训练数据和测试数据。由于双螺旋曲线有自己的方程表达式,我们产生的测试数据不能与训练数据一样,否则训练出来的网络没有说服力,因此我们在程序中2个样本集在双螺旋曲线上的采样间隔不同,且起始位置不同,这样保证了测试样本和训练样本的数据集没有重叠,训练出来的模型的分类能力更具有说服力。 下图是试验过程中产生的训练样本和测试样本分布图: 其中训练样本200个,每条螺...
tornadomeet 阅读(3147) |
摘要: 本次所讲的是libsvm在matlab中的2个应用实例,是本学期模式识别的2个编程作业题。一、16棋盘格数据分类试验目的:产生16棋盘的训练数据,用svm训练出一个模型,然后对新来的样本进行分类预测。试验说明:训练数据样本数为1600个,即每个格子中随机产生100个数据点,分为2类,2种颜色分布在16个格子中,相交分布。测试数据样本点数为320个,即每个格子中的数据点为20个。如果分类预测正确,则用绿色画出,预测错误,则用红色画出。实验结果: 产生的训练样本分布图如下所示: 训练样本分布图如下: 预测结果如下(如果分类正确用绿色显示,否则用红色显示): 实验结果评价...
tornadomeet 阅读(4047) |
摘要: 在前面的博文《初步体验libsvm用法1(官方自带工具)》:/tornadomeet/archive//2443993.html 中已经初步介绍了使用官方自带的svm几个exe文件来可视化操作分类问题,但是在实际编程中,svm的训练和预测有可能只是项目工程的一部分,嵌入在其中了。我们不能单独拿出来处理。所以libsvm需要与其他的计算机语言平台相结合。 这一节主要讲libsvm在matlab下的初步体验。 我的matlab版本为matlab(R2011b),c/c++编译器为vs c++2010(32位)。这里需要注意的是...
tornadomeet 阅读(4783) |
摘要: 前面已经有3篇博文介绍了背景减图方面相关知识(见下面的链接),在第3篇博文中自己也实现了gmm简单算法,但效果不是很好,下面来体验下opencv自带2个gmm算法。 opencv实现背景减图法1(codebook和平均背景法) /tornadomeet/archive//2438158.html opencv实现背景减图法2(帧差法) /tornadomeet/archive//2477629.html opencv实现背景减图法3(GMM) http...
tornadomeet 阅读(9025) |
摘要: 摘要 本文通过opencv来实现一种前景检测算法——GMM,算法采用的思想来自论文[1][2][4]。在进行前景检测前,先对背景进行训练,对图像中每个背景采用一个混合高斯模型进行模拟,每个背景的混合高斯的个数可以自适应。然后在测试阶段,对新来的像素进行GMM匹配,如果该像素值能够匹配其中一个高斯,则认为是背景,否则认为是前景。由于整个过程GMM模型在不断更新学习中,所以对动态背景有一定的鲁棒性。最后通过对一个有树枝摇摆的动态背景进行前景检测,取得了较好的效果。关键字:GMM,opencv,前景检测前言 前景检测主要分为帧差法,平均背景法,光流法,前景建模法,背景非参数估计,背景建模法等。而..
tornadomeet 阅读(8429) |
摘要: Deep Learning(深度学习):ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二Bengio团队的deep learning教程,用的theano库,主要是rbm系列,搞pytho...
tornadomeet 阅读(16679) |
摘要: 第一章,引论 本章是本书的纲领,有着统领全局的味道。 首先通过一个多项式曲线拟合的例子引出了本领域的一些概念,比如线性模型,过拟合,错误函数,模型比较和模型选择,最大似然,正则化,岭回归,权值衰减,验证集,hold-out集等。 然后作者分别从概率理论,决策理论,信息理论三个方向分别介绍了这几个理论在模式识别和机器学习中的作用。本书也是由这3个理论贯穿的,其中最终要的理论是概率理论。(待续…)第二章,概率分布
tornadomeet 阅读(688) |
摘要: 在机器学习和模式识别领域,svm理论使用得很广泛,其理论基础是统计学习,但是如果我们的研究方向不是svm理论,我们只是利用已有的svm工具来对我们的任务进行分类和回归,那么libsvm是一个不错的选择。 那么libsvm到底怎么使用呢?研究了一下,发现使用起来不是很复杂,这一小结就说说到底怎么简单的体会libsvm吧。一、首先准备几个工具: Libsvm下载 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ Gnuplot下载:/ Python下载: http://www.python.org/getit/ ...
tornadomeet 阅读(7602) |
摘要: 一. 流形学习的英文名为manifold learning。其主要思想是把一个高维的数据非线性映射到低维,该低维数据能够反映高维数据的本质,当然有一个前提假设就是高维观察数据存在流形结构,其优点是非参数,非线性,求解过程简单。二. 流形学习的可行性是因为:1.从认知心理学的角度来讲心理学家认为人的认知过程是基于认知流形和拓扑连续性的;2.许多高维采用数据都是由少数几个隐变量所决定的,所以可以用少数的低维数据来刻画高维数据。三. 流形学习所需的数学背景知识:微分流形,黎曼流形,微分几何,切向量场,拓扑空间,光滑映射等。四. 经典流形学习算法:Isomap:等距映射。前提假设为低维空间中的欧式距离
tornadomeet 阅读(2356) |
摘要: 在上一篇博客/tornadomeet/archive//2415583.html中,我们已经从一个例子中学会了HMM的前向算法,解决了HMM算法的第一个问题,即模型评估问题。这一讲中我们来解决第二个问题:HMM的解码问题,即即给定观测序列 O=O1O2O3…Ot和模型参数λ=(A,B,π),怎样寻找满足这种观察序列意义上最优的隐含状态序列S,这一步中最常用的算法就是Viterbi算法了。 同样的,我们先引入3个符合: :表示在观察时刻t正处在状态j,且沿一条路径q1q2q3..qt,产生出的o1o2o3…ot最大概率。 :表示的.
tornadomeet 阅读(9129) |
摘要: DTW为(Dynamic Time Warping,动态时间归准)的简称。应用很广,主要是在模板匹配中,比如说用在孤立词语音识别,计算机视觉中的行为识别,信息检索等中。可能大家学过这些类似的课程都看到过这个算法,公式也有几个,但是很抽象,当时看懂了但不久就会忘记,因为没有具体的实例来加深印象。 这次主要是用语音识别课程老师上课的一个题目来理解DTW算法。 首先还是介绍下DTW的思想:假设现在有一个标准的参考模板R,是一个M维的向量,即R={R(1),R(2),……,R(m),……,R(M)},每个分量可以是一个数或者是一个更小的向量。现在有一个才测试的模板T,是一个N维向量,即T...
tornadomeet 阅读(9831) |
摘要: 最近在看一些集成学习方面的知识,其中南京大学的周志华教授写的几篇关于集成学习综述性的文章还不错。看了下对集成学习有了一个初步的了解,如下: 集成学习是机器学习中一个非常重要且热门的分支,是用多个弱分类器构成一个强分类器,其哲学思想是“三个臭皮匠赛过诸葛亮”。一般的弱分类器可以由决策树,神经网络,贝叶斯分类器,K-近邻等构成。已经有学者理论上证明了集成学习的思想是可以提高分类器的性能的,比如说统计上的原因,计算上的原因以及表示上的原因。一、集成学习中主要的3个算法为:boosting,bagging,stacking. 其中boosting的弱分类器形成是同一种机器学习算法,只是其数据抽取时的.
tornadomeet 阅读(3216) |
TA的最新馆藏

我要回帖

更多关于 红米note4x 联发科 的文章

 

随机推荐