机器学习&数据挖掘笔记_12(对Conjugate Gradient 优化的简单理解)
摘要:数学优化方法在机器学习算法中至关重要,本篇博客主要来简单介绍下Conjugate Gradient(共轭梯度法,以下简称CG)算法,内容是参考的文献为:An Introduction to the Conjugate Gradient Method Without the Agonizing Pain,具体细节大家还需仔细阅读那篇文章,这篇博客并不是重现那篇论文的内容,只是简单的梳理下CG算法的流程,以及它的重要思路,方便大家理解CG算法。 首先我们需要解决的问题是:求满足线性方程(1):的解x. 那么有人就这么认为了:这个解x不就是吗?对,这样说也不能算错,但是如果A不可逆那么x这样...
阅读全文
posted @
2013-08-17 21:54
tornadomeet
阅读(12272)
推荐(0) 编辑
Deep learning:四十二(Denoise Autoencoder简单理解)
摘要:前言: 当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Bengio在08年提出,见其文章Extracting and composing robust features with denoising autoencoders.使用dAE时,可以用被破坏的输入数据重构出原始的数据(指没被破坏的数据),所以它训练出来的特征会更鲁棒。本篇博文主要是根据Benigio的那篇文章简单介绍下dAE,然后通过2个简单的实验来说明实际编程中该怎样应用dAE。这2个...
阅读全文
posted @
2013-08-16 08:02
tornadomeet
阅读(75168)
推荐(1) 编辑
Deep learning:四十一(Dropout简单理解)
摘要:前言 训练神经网络模型时,如果训练样本较少,为了防止模型过拟合,Dropout可以作为一种trikc供选择。Dropout是hintion最近2年提出的,源于其文章Improving neural networks by preventing co-adaptation of feature detectors.中文大意为:通过阻止特征检测器的共同作用来提高神经网络的性能。本篇博文就是按照这篇论文简单介绍下Dropout的思想,以及从用一个简单的例子来说明该如何使用dropout。 基础知识: Dropout是指在模型训练时随机让网络某些隐含层节点的权重不工作,不工作的那些节点可以暂...
阅读全文
posted @
2013-08-14 19:14
tornadomeet
阅读(159951)
推荐(11) 编辑
Deep learning:四十(龙星计划2013深度学习课程小总结)
摘要:头脑一热,坐几十个小时的硬座北上去天津大学去听了门4天的深度学习课程,课程预先的计划内容见:http://cs.tju.edu.cn/web/courseIntro.html。上课老师为微软研究院的大牛——邓力,群(qq群介绍见:Deep learning高质量交流群)里面有人戏称邓力(拼音简称DL)老师是天生注定能够在DL(Deep learning)领域有所成就的,它的个人主页见:http://research.microsoft.com/en-us/people/deng/。这次我花费这么大的力气参加这个课程,是期望能达到3个目的的:一、把DL中一些常见基础算法弄明白,特别是跟能量模..
阅读全文
posted @
2013-07-14 19:09
tornadomeet
阅读(24187)
推荐(2) 编辑
机器学习&数据挖掘笔记_11(高斯过程回归)
摘要:前言: 高斯过程回归(GPR)和贝叶斯线性回归类似,区别在于高斯过程回归中用核函数代替了贝叶斯线性回归中的基函数(其实也是核函数,线性核)。采用核函数可以定义高斯过程回归是一个比贝叶斯线性回归更通用的模型,应用非常广泛。本文参考的资料为视频http://www.youtube.com/playlist?list=PLD0Z06AA0D2E8ZZBA中相关的部分以及论文Gaussian Processes for Regression A Quick Introduction. 基础知识: 首先来看看Bayesian linear regression(贝叶斯线性回归)模型: 其...
阅读全文
posted @
2013-06-15 10:31
tornadomeet
阅读(40168)
推荐(4) 编辑
机器学习&数据挖掘笔记_10(高斯过程简单理解)
摘要:前言: GP(高斯过程)是一种自然界中普遍存在且重要的随机过程,也叫正态随机过程,在ML等领域应用比较广泛。本次实验目的是简单理解下GP,特别是要体验到GP的一个sample不再是一个普通的点,而是一个函数。实验部分完成了常见的GP的一维和二维sample的显示,常见的GP有线性GP,布朗运动...
阅读全文
posted @
2013-06-14 12:15
tornadomeet
阅读(35015)
推荐(5) 编辑
机器学习&数据挖掘笔记_9(一些svm基础知识)
摘要:前言: 这次的内容是Ng关于machine learning关于svm部分的一些笔记。以前也学过一些svm理论,并且用过libsvm,不过这次一听Ng的内容,确实收获不少,隐约可以看到从logistic model到svm model的过程。 基础内容: 使用linear模型进行分类时,可以将参数向量看成一个变量,如果代价函数用MSE表示,则代价函数的图形类似抛物线(以新的变量为自变量);如果代价函数用交叉对数公式表示时,则其代价函数曲线如下: 在Logistic回归中其代价函数可以表示为如下: 其中第一项是训练样本的误差,第二项是权值系数的惩罚项,λ为权值惩罚系数,其中...
阅读全文
posted @
2013-05-26 23:01
tornadomeet
阅读(10967)
推荐(1) 编辑
机器学习&数据挖掘笔记_17(PGM练习一:贝叶斯网络基本操作)
摘要:前言: 以前在coursera上选过一门PGM的课(概率图模型),今天上去才发现4月份已经开课了,6月份就要结束了,虽然最近没什么时间,挤一点算一点,所以得抓紧时间学下。另外因为报名这些课程的时候,开课老师是不允许将课程资料和code贴在网上的,所以作为学生还是要听从老师的要求,所以这个系列的笔记只是简单的写下,完全留给自己看的,内容估计不会很完整的。 笔记: 模型的表示其来源可以由相应领域的专家给出,也可以直接从数据中学习到。如下所示: 模型的准确性具有不确定性主要是因为:对现实世界的描述不全面;观察到的数据有噪声;模型只是体现大部分的数据,对某些特例不会考虑;模型固有的不确...
阅读全文
posted @
2013-05-12 17:25
tornadomeet
阅读(9114)
推荐(1) 编辑
Deep learning:三十九(ICA模型练习)
摘要:前言: 本次主要是练习下ICA模型,关于ICA模型的理论知识可以参考前面的博文:Deep learning:三十三(ICA模型)。本次实验的内容和步骤可以是参考UFLDL上的教程:Exercise:Independent Component Analysis。本次实验完成的内容和前面的很多练习类似,即学习STL-10数据库的ICA特征。当然了,这些数据已经是以patches的形式给出,共2w个patch,8*8大小的。 实验基础: 步骤分为下面几步:设置网络的参数,其中的输入样本的维数为8*8*3=192。对输入的样本集进行白化,比如说ZCA白化,但是一定要将其中的参数eplison...
阅读全文
posted @
2013-05-07 22:56
tornadomeet
阅读(9327)
推荐(3) 编辑
Deep learning:三十八(Stacked CNN简单介绍)
摘要:前言: 本节主要是来简单介绍下stacked CNN(深度卷积网络),起源于本人在构建SAE网络时的一点困惑:见Deep learning:三十六(关于构建深度卷积SAE网络的一点困惑)。因为有时候针对大图片进行recognition时,需要用到无监督学习的方法去pre-training(预训练)stacked CNN的每层网络,然后用BP算法对整个网络进行fine-tuning(微调),并且上一层的输出作为下一层的输入。这几句话说起来很简单,可是真的这么容易吗?对于初学者来说,在实际实现这个流程时并不是那么顺利,因为这其中要涉及到很多细节问题。这里不打算细讲deep statcked网...
阅读全文
posted @
2013-05-05 20:27
tornadomeet
阅读(81805)
推荐(11) 编辑
Deep learning高质量交流群
摘要:最近Deep Learning特别火,但是发现网上很少有专门针对DL讨论的论坛等,所以交流起来特别不方便。独学而无友,则孤陋而寡闻,本人刚开始接触DL,菜鸟一枚,希望和各位志同道合的朋友多多交流,特建立了一个Deep Learning高质量交流qq群,欢迎加入,群号为:209306058(大家加入群时需验证,请用一句话简单说下你对DL的认识,以防乱加,哈哈,谢谢!) 规定(必须执行) 1. 杜绝不文明言论 2. 严禁广告 3. 严禁跑题 引导(参考执行) 1. 群中讨论的内容 为了保证群内交流的质量请大家尽量讨论Deep Learning为主的算法,以及与其相关的ML,DM,...
阅读全文
posted @
2013-05-02 23:28
tornadomeet
阅读(14546)
推荐(2) 编辑
Deep learning:三十七(Deep learning中的优化方法)
摘要:内容: 本文主要是参考论文:On optimization methods for deep learning,文章内容主要是笔记SGD(随机梯度下降),LBFGS(受限的BFGS),CG(共轭梯度法)三种常见优化算法的在deep learning体系中的性能。下面是一些读完的笔记。 SGD优点:实现简单,当训练样本足够多时优化速度非常快。 SGD缺点:需要人为调整很多参数,比如学习率,收敛准则等。另外,它是序列的方法,不利于GPU并行或分布式处理。 各种deep learning中常见方法(比如说Autoencoder,RBM,DBN,ICA,Sparse coding)的区别是...
阅读全文
posted @
2013-05-02 00:04
tornadomeet
阅读(28402)
推荐(2) 编辑
Deep learning:三十六(关于构建深度卷积SAE网络的一点困惑)
摘要:前言: 最近一直在思考,如果我使用SCSAE(即stacked convolution sparse autoendoer)算法来训练一个的deep model的话,其网络的第二层开始后续所有网络层的训练数据从哪里来呢?其实如果在这个问题中,当我们的样本大小(指提供的最原始数据,比如大的图片集)和我们所训练第一个网络的输入维度是一样的话,那么第二层网络的输入即第一层网络的输出(后续的网络依次类推),但是这种情况下根本就不会涉及到convolution(一般有convolution的地方也会有pooling),所以不属于我想要讨论的SCSAE框架。后面根据自己对deep learning的...
阅读全文
posted @
2013-05-01 15:32
tornadomeet
阅读(21832)
推荐(1) 编辑
Deep learning:三十五(用NN实现数据降维练习)
摘要:前言: 本文是针对上篇博文Deep learning:三十四(用NN实现数据的降维)的练习部分,也就是Hition大牛science文章reducing the dimensionality of data with neural networks的code部分,其code下载见:http:/...
阅读全文
posted @
2013-04-30 20:03
tornadomeet
阅读(25536)
推荐(8) 编辑
Deep learning:三十四(用NN实现数据的降维)
摘要:数据降维的重要性就不必说了,而用NN(神经网络)来对数据进行大量的降维是从2006开始的,这起源于2006年science上的一篇文章:reducing the dimensionality of data with neural networks,作者就是鼎鼎有名的Hinton,这篇文章也标志着deep learning进入火热的时代。 今天花了点时间读了下这篇文章,下面是一点笔记: 多层感知机其实在上世纪已经被提出来了,但是为什么它没有得到广泛应用呢?其原因在于对多层非线性网络进行权值优化时很难得到全局的参数。因为一般使用数值优化算法(比如BP算法)时需要随机给网络赋一个值,而当这...
阅读全文
posted @
2013-04-29 22:52
tornadomeet
阅读(15872)
推荐(1) 编辑
Deep learning:三十三(ICA模型)
摘要:基础知识: 在sparse coding(可参考Deep learning:二十六(Sparse coding简单理解),Deep learning:二十九(Sparse coding练习))模型中,学习到的基是超完备集的,也就是说基集中基的个数比数据的维数还要大,那么对一个数据而言,将其分解为基的线性组合时,这些基之间本身就是线性相关的。如果我们想要得到线性无关的基集,那么基集中元素的个数必须小于或等于样本的维数,本节所讲的ICA(Independent Component Analysis,独立成分分析)模型就可以完成这一要求,它学习到的基之间不仅保证线性无关,还保证了相互正交。本节...
阅读全文
posted @
2013-04-25 11:03
tornadomeet
阅读(11012)
推荐(1) 编辑
Deep learning:三十二(基础知识_3)
摘要:前言: 本次主要是重新复习下Sparse autoencoder基础知识,并且加入点自己的理解。关于sparse autoencoder在前面的博文Deep learning:八(Sparse Autoencoder)中已有所介绍。 基础知识: 首先来看看为什么sparse autoencoder能够学习到输入数据的特征呢?当使用autoencoder时,隐含层节点的个数会比输入层小(一般情况下),而autoencoder又要能够重构输入数据,说明隐含层节点压缩了原始数据,既然这个压缩是有效的,则它就代表了输入数据(因为输入数据每个分量值并不是相互独立的)的一部分特征了。如果对隐含节...
阅读全文
posted @
2013-04-25 00:14
tornadomeet
阅读(7221)
推荐(0) 编辑
Deep learning:三十一(数据预处理练习)
摘要:前言: 本节主要是来练习下在machine learning(不仅仅是deep learning)设计前的一些数据预处理步骤,关于数据预处理的一些基本要点在前面的博文Deep learning:三十(关于数据预处理的相关技巧)中已有所介绍,无非就是数据的归一化和数据的白化,而数据的归一化又分为尺度归一化,均值方差归一化等。数据的白化常见的也有PCA白化和ZCA白化。 实验基础: 本次实验所用的数据为ASL手势识别的数据,数据可以在网站http://personal.ee.surrey.ac.uk/Personal/N.Pugeault/index.php?section=Finger...
阅读全文
posted @
2013-04-24 09:47
tornadomeet
阅读(17445)
推荐(1) 编辑
Deep learning:三十(关于数据预处理的相关技巧)
摘要:前言: 本文主要是介绍下在一个实际的机器学习系统中,该怎样对数据进行预处理。个人感觉数据预处理部分在整个系统设计中的工作量占了至少1/3。首先数据的采集就非常的费时费力,因为这些数据需要考虑各种因素,然后有时还需对数据进行繁琐的标注。当这些都有了后,就相当于我们有了元素的raw数据,然后就可以进行下面的数据预处理部分了。本文是参考的UFLDL网页教程:Data Preprocessing,在该网页的底部可以找到其对应的中文版。 基础知识: 一般来说,算法的好坏一定程度上和数据是否归一化,是否白化有关。但是在具体问题中,这些数据预处理中的参数其实还是很难准确得到的,当然了,除非你对对应...
阅读全文
posted @
2013-04-20 21:05
tornadomeet
阅读(18754)
推荐(2) 编辑
Deep learning:二十九(Sparse coding练习)
摘要:前言 本节主要是练习下斯坦福DL网络教程UFLDL关于Sparse coding那一部分,具体的网页教程参考:Exercise:Sparse Coding。该实验的主要内容是从2w个自然图像的patches中分别采用sparse coding和拓扑的sparse coding方法进行学习,并观察学习到的这些图像基图像的特征。训练数据时自然图片IMAGE,在给出的教程网站上有。 实验基础 Sparse coding的主要是思想学习输入数据集”基数据”,一旦获得这些”基数据”,输入数据集中的每个数据都可以用这些”基数据”的线性组合表示,而稀疏性则体现在这些线性组合系数是系数的,即大部分的...
阅读全文
posted @
2013-04-16 16:41
tornadomeet
阅读(19988)
推荐(3) 编辑