机器学习&数据挖掘笔记_25(PGM练习九:HMM用于分类)
摘要:前言: 本次实验是用EM来学习HMM中的参数,并用学好了的HMM对一些kinect数据进行动作分类。实验内容请参考coursera课程:Probabilistic Graphical Models 中的的最后一个assignmnet.实验用的是kinect关节点数据,由于HMM是一个时序模型,且含有隐变量,所以这个实验不是很好做。大家对HMM不熟悉的话可以参考网友的实验:code. kinect人体关节数据中, 每个关节点由3个坐标数据构成,多个关节点数据(实验中为10个)构成一个pose,多个pose构成一个action,每个action所包含的pose个数可能不等。其示意图如下: ...
阅读全文
posted @
2014-01-13 20:35
tornadomeet
阅读(19156)
推荐(3) 编辑
机器学习&数据挖掘笔记_24(PGM练习八:结构学习)
摘要:前言: 本次实验包含了2部分:贝叶斯模型参数的学习以及贝叶斯模型结构的学习,在前面的博文PGM练习七:CRF中参数的学习 中我们已经知道怎样学习马尔科夫模型(CRF)的参数,那个实验采用的是优化方法,而这里贝叶斯模型参数的学习是先假定样本符合某种分布,然后使用统计的方法去学习这些分布的参数,来达到学习模型参数的目的。实验内容请参考coursera课程:Probabilistic Graphical Models中的assignmnet 8,实验code可参考网友的:code 实验中所用到的body pose表现形式如下: 共有10个节点,每个节点由2个坐标变量和1个方向变量构成。...
阅读全文
posted @
2014-01-11 23:53
tornadomeet
阅读(13844)
推荐(1) 编辑
机器学习&数据挖掘笔记_23(PGM练习七:CRF中参数的学习)
摘要:前言: 本次实验主要任务是学习CRF模型的参数,实验例子和PGM练习3中的一样,用CRF模型来预测多张图片所组成的单词,我们知道在graph model的推理中,使用较多的是factor,而在graph model参数的学习中,则使用较多的是指数线性模型,本实验的CRF使用的是log-linear模型,实验内容请参考coursera课程:Probabilistic Graphical Models中的assignmnet 7. 实验code可参考网友的:code实验对应的模型示意图如下: CRF参数求解过程: 本实验中CRF模型所表示的条件概率计算公式为: 其中的分母为划分函...
阅读全文
posted @
2014-01-10 21:38
tornadomeet
阅读(18754)
推荐(2) 编辑
机器学习&数据挖掘笔记_22(PGM练习六:制定决策)
摘要:前言: 本次实验是将一些简单的决策理论和PGM推理结合,实验内容相对前面的图模型推理要简单些。决策理论采用的是influence diagrams,和常见图模型本质一样,其中的决策节点也可以用CPD来描述,做决策时一般是采用最大期望效用准则(MEU)。实验内容参考参考的内容是coursera课程:Probabilistic Graphical Models中的assignment 5. 实验code可参考网友的:code. 实验中一些函数简单说明: Fnew = VariableElimination(F, Z): 给定factorlist F和需要消除的变量集Z,采用sum-pr...
阅读全文
posted @
2014-01-09 15:56
tornadomeet
阅读(3884)
推荐(0) 编辑
机器学习&数据挖掘笔记_21(PGM练习五:图模型的近似推理)
摘要:前言: 这次练习完成的是图模型的近似推理,参考的内容是coursera课程:Probabilistic Graphical Models.上次实验PGM练习四:图模型的精确推理 中介绍的是图模型的精确推理,但在大多数graph上,其精确推理是NP-hard的,所以有必要采用计算上可行的近似推理...
阅读全文
posted @
2014-01-08 17:19
tornadomeet
阅读(8232)
推荐(0) 编辑
机器学习&数据挖掘笔记_20(PGM练习四:图模型的精确推理)
摘要:前言: 这次实验完成的是图模型的精确推理。exact inference分为2种,求边缘概率和求MAP,分别对应sum-product和max-sum算法。这次实验涉及到的知识点很多,不仅需要熟悉图模型的representation,而且还需明白图模型的inference理论,大家可参考cou...
阅读全文
posted @
2014-01-04 15:34
tornadomeet
阅读(14295)
推荐(3) 编辑
机器学习&数据挖掘笔记_19(PGM练习三:马尔科夫网络在OCR上的简单应用)
摘要:前言: 接着coursera课程:Probabilistic Graphical Models上的实验3,本次实验是利用马尔科夫网络(CRF模型)来完成单词的OCR识别,每个单词由多个字母组合,每个字母为16×8大小的黑白图片。本次实验简化了很多内容,不需要我们去学这些参数(已提供),不需要掌握推理的方法(也提供了),目的是让大家对CRF模型有个感性认识。马尔科夫网络相比贝叶斯网络的优点就是不用自己去确定那些太明确结构(比如说那些因果关系)。 matlab基础知识: n = norm(X): 计算X的诱导2范数。如果X为向量,则n为它的欧式距离。如果X为矩阵,则n为X的最大特征值。.
阅读全文
posted @
2013-12-19 22:43
tornadomeet
阅读(11039)
推荐(3) 编辑
机器学习&数据挖掘笔记_18(PGM练习二:贝叶斯网络在遗传图谱在的应用)
摘要:前言: 这是coursera课程:Probabilistic Graphical Models 上的第二个实验,主要是用贝叶斯网络对基因遗传问题进行一些计算。具体实验内容可参考实验指导教材:bayes network for genetic inheritance. 大家可以去上面的链接去下载实验材料和stard code,如实验内容有难以理解的地方,欢迎私底下讨论。下面是随便写的一些笔记。 完成该实验需要了解一些遗传方面的简单知识,可参考:Introduction to heredity(基因遗传简单介绍) 关于实验的一些约定和术语: 同位基因(也叫等位基因)中有一个显现基因(d...
阅读全文
posted @
2013-12-18 17:05
tornadomeet
阅读(7549)
推荐(0) 编辑
Deep learning:五十一(CNN的反向求导及练习)
摘要:前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它。虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好。而本文的主要目的是介绍CNN参数在使用bp算法时该怎么训练,毕竟CNN中有卷积层和下采样层,虽然和M...
阅读全文
posted @
2013-12-10 23:36
tornadomeet
阅读(142419)
推荐(10) 编辑
Deep learning:五十(Deconvolution Network简单理解)
摘要:深度网络结构是由多个单层网络叠加而成的,而常见的单层网络按照编码解码情况可以分为下面3类:既有encoder部分也有decoder部分:比如常见的RBM系列(由RBM可构成的DBM, DBN等),autoencoder系列(以及由其扩展的sparse autoencoder, denoise a...
阅读全文
posted @
2013-11-26 21:05
tornadomeet
阅读(34978)
推荐(4) 编辑
Deep learning:四十九(RNN-RBM简单理解)
摘要:前言: 本文主要是bengio的deep learning tutorial教程主页中最后一个sample:rnn-rbm in polyphonic music. 即用RNN-RBM来model复调音乐,训练过程中采用的是midi格式的音频文件,接着用建好的model来产生复调音乐。对音乐建模的难点在与每首乐曲中帧间是高度时间相关的(这样样本的维度会很高),用普通的网络模型是不能搞定的(普通设计网络模型没有考虑时间维度,图模型中的HMM有这方面的能力),这种情况下可以采用RNN来处理,这里的RNN为recurrent neural network中文为循环神经网络,另外还有一种RNN为...
阅读全文
posted @
2013-11-23 21:54
tornadomeet
阅读(90061)
推荐(4) 编辑
Deep learning:四十八(Contractive AutoEncoder简单理解)
摘要:Contractive autoencoder是autoencoder的一个变种,其实就是在autoencoder上加入了一个规则项,它简称CAE(对应中文翻译为?)。通常情况下,对权值进行惩罚后的autoencoder数学表达形式为: 这是直接对W的值进行惩罚的,而今天要讲的CAE其数学表达式同样非常简单,如下: 其中的是隐含层输出值关于权重的雅克比矩阵,而 表示的是该雅克比矩阵的F范数的平方,即雅克比矩阵中每个元素求平方 然后求和,更具体的数学表达式为: 关于雅克比矩阵的介绍可参考雅克比矩阵&行列式——单纯的矩阵和算子,关于F范数可参考我前面的博文Sparse ...
阅读全文
posted @
2013-11-20 23:37
tornadomeet
阅读(19014)
推荐(1) 编辑
Deep learning:四十七(Stochastic Pooling简单理解)
摘要: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大小...
阅读全文
posted @
2013-11-19 19:11
tornadomeet
阅读(27622)
推荐(0) 编辑
Deep learning:四十六(DropConnect简单理解)
摘要:和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不同的是...
阅读全文
posted @
2013-11-18 21:46
tornadomeet
阅读(24202)
推荐(0) 编辑
Deep learning:四十五(maxout简单理解)
摘要: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表示输入层节...
阅读全文
posted @
2013-11-18 10:10
tornadomeet
阅读(59635)
推荐(3) 编辑
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
摘要:前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展...
阅读全文
posted @
2013-10-29 23:15
tornadomeet
阅读(216611)
推荐(42) 编辑
机器学习&数据挖掘笔记_15(关于凸优化的一些简单概念)
摘要:没有系统学过数学优化,但是机器学习中又常用到这些工具和技巧,机器学习中最常见的优化当属凸优化了,这些可以参考Ng的教学资料:http://cs229.stanford.edu/section/cs229-cvxopt.pdf,从中我们可以大致了解到一些凸优化的概念,比如凸集,凸函数,凸优化问题,线性规划,二次规划,二次约束二次规划,半正定规划等,从而对凸优化问题有个初步的认识。以下是几个重要相关概念的笔记。 凸集的定义为: 其几何意义表示为:如果集合C中任意2个元素连线上的点也在集合C中,则C为凸集。其示意图如下所示: 常见的凸集有: n维实数空间;一些范数约束形式的集合;...
阅读全文
posted @
2013-09-03 23:28
tornadomeet
阅读(25390)
推荐(1) 编辑
机器学习&数据挖掘笔记_14(GMM-HMM语音识别简单理解)
摘要:为了对GMM-HMM在语音识别上的应用有个宏观认识,花了些时间读了下HTK(用htk完成简单的孤立词识别)的部分源码,对该算法总算有了点大概认识,达到了预期我想要的。不得不说,网络上关于语音识别的通俗易懂教程太少,都是各种公式满天飞,很少有说具体细节的,当然了,那需要有实战经验才行。下面总结以下几点,对其有个宏观印象即可(以孤立词识别为例)。 一、每个单词的读音都对应一个HMM模型,大家都知道HMM模型中有个状态集S,那么每个状态用什么来表示呢,数字?向量?矩阵?其实这个状态集中的状态没有具体的数学要求,只是一个名称而已,你可以用’1’, ’2’, ‘3’…表示,也可以用’a’, ‘b’...
阅读全文
posted @
2013-08-23 07:34
tornadomeet
阅读(37725)
推荐(6) 编辑
机器学习&数据挖掘笔记_13(用htk完成简单的孤立词识别)
摘要:最近在看图模型中著名的HMM算法,对应的一些理论公式也能看懂个大概,就是不太明白怎样在一个具体的机器学习问题(比如分类,回归)中使用HMM,特别是一些有关状态变量、观察变量和实际问题中变量的对应关系,因此目前急需一个实际例子来加深对HMM算法的仰慕,大家如有好的例子来具体学HMM算法的话,欢迎分享!众所周知,著名的HMM开源库为Hidden Markov Model Toolkit(以下简称HTK),而HTK在语音识别领域应用很成功,这2天花了些时间学习了HTK的使用,完成的是最简单孤立词的识别,即Yes、No的语音识别,网上这方面的教程纵多,见参考资料部分。 当然了,进行实验的前提是正...
阅读全文
posted @
2013-08-22 07:43
tornadomeet
阅读(12144)
推荐(3) 编辑
Deep learning:四十三(用Hessian Free方法训练Deep Network)
摘要:目前,深度网络(Deep Nets)权值训练的主流方法还是梯度下降法(结合BP算法),当然在此之前可以用无监督的方法(比如说RBM,Autoencoder)来预训练参数的权值,而梯度下降法应用在深度网络中的一个缺点是权值的迭代变化值会很小,很容易收敛到的局部最优点;另一个缺点是梯度下降法不能很好的处理有病态的曲率(比如Rosenbrock函数)的误差函数。而本文中所介绍的Hessian Free方法(以下简称HF)可以不用预训练网络的权值,效果也还不错,且其适用范围更广(可以用于RNN等网络的学习),同时克服了上面梯度下降法的那2个缺点。HF的主要思想类似于牛顿迭代法,只是并没有显示的去计..
阅读全文
posted @
2013-08-19 11:20
tornadomeet
阅读(13680)
推荐(1) 编辑