2013年8月18日

Deep Belief Network简介

摘要: 1. 多层神经网络存在的问题 常用的神经网络模型, 一般只包含输入层, 输出层和一个隐藏层: 理论上来说, 隐藏层越多, 模型的表达能力应该越强。但是, 当隐藏层数多于一层时, 如果我们使用随机值来初始化权重, 使用梯度下降来优化参数就会出现许多问题[1]:如果初始权重值设置的过大, 则训练过程中权重值会落入局部最小值(而不是全局最小值)。如果初始的权重值设置的过小, 则在使用BP调整参数时, 当误差传递到最前面几层时, 梯度值会很小, 从而使得权重的改变很小, 无法得到最优值。[疑问, 是否可以提高前几层的learning rate来解决这个问题?] 所以, 如果初始的权重值已经比较... 阅读全文

posted @ 2013-08-18 16:52 潘的博客 阅读(12998) 评论(1) 推荐(1) 编辑

2013年8月14日

Learning to Rank之RankNet算法简介

摘要: 排序一直是信息检索的核心问题之一, Learning to Rank(简称LTR)用机器学习的思想来解决排序问题(关于Learning to Rank的简介请见我的博文Learning to Rank简介)。LTR有三种主要的方法:PointWise,PairWise,ListWise. RankNet是一种Pairwise方法, 由微软研究院的Chris Burges等人在2005年ICML上的一篇论文Learning to Rank Using Gradient Descent中提出,并被应用在微软的搜索引擎Bing当中。1. 损失函数 损失函数一直是各种Learning to Rank. 阅读全文

posted @ 2013-08-14 18:46 潘的博客 阅读(12650) 评论(1) 推荐(0) 编辑

2013年8月9日

Pig性能优化

摘要: 1. 尽早去除无用的数据 MapReduce Job的很大一部分开销在于磁盘IO和数据的网络传输,如果能尽早的去除无用的数据,减少数据量,会提升Pig的性能。 1). 尽早的使用Filter 使用Filter可以去除数据中无用的行(Record),尽早的Filter掉无用的数据,可以减少数据量,提升Pig性能。 2). 尽早的使用Project(Foreach Generate) 使用Foreach Generate可以去除数据中无用的列(Column),减少数据量,提升Pig性能。 2. 使用Combiner Combiner可以对Map的结果进行combine,减少Shuffle的数据量. 阅读全文

posted @ 2013-08-09 20:37 潘的博客 阅读(2754) 评论(0) 推荐(2) 编辑

2013年8月6日

Learning to Rank之Ranking SVM 简介

摘要: 排序一直是信息检索的核心问题之一,Learning to Rank(简称LTR)用机器学习的思想来解决排序问题(关于Learning to Rank的简介请见我的博文Learning to Rank简介)。LTR有三种主要的方法:PointWise,PairWise,ListWise。Ranking SVM算法是PointWise方法的一种,由R. Herbrich等人在2000提出, T. Joachims介绍了一种基于用户Clickthrough数据使用Ranking SVM来进行排序的方法(SIGKDD, 2002)。1. Ranking SVM的主要思想 Ranking SVM是一种. 阅读全文

posted @ 2013-08-06 21:14 潘的博客 阅读(30957) 评论(4) 推荐(0) 编辑

2013年7月21日

受限玻尔兹曼机(Restricted Boltzmann Machine, RBM) 简介

摘要: 受限玻尔兹曼机(Restricted Boltzmann Machine,简称RBM)是由Hinton和Sejnowski于1986年提出的一种生成式随机神经网络(generative stochastic neural network),该网络由一些可见单元(visible unit,对应可见变量,亦即数据样本)和一些隐藏单元(hidden unit,对应隐藏变量)构成,可见变量和隐藏变量都是二元变量,亦即其状态取{0,1}。整个网络是一个二部图,只有可见单元和隐藏单元之间才会存在边,可见单元之间以及隐藏单元之间都不会有边连接,如下图所示: 上图所示的RBM含有12个可见单元(构成一个向量. 阅读全文

posted @ 2013-07-21 13:06 潘的博客 阅读(80670) 评论(3) 推荐(7) 编辑

2013年6月15日

偏置-方差分解(Bias-Variance Decomposition)

摘要: 本文地址为:http://www.cnblogs.com/kemaswill/,作者联系方式为kemaswill@163.com,转载请注明出处。 机器学习的目标是学得一个泛化能力比较好的模型。所谓泛化能力,是指根据训练数据训练出来的模型在新的数据上的性能。这就牵扯到机器学习中两个非常重要的概念:欠拟合和过拟合。如果一个模型在训练数据上表现非常好,但是在新数据集上性能很差,就是过拟合,反之,如果在训练数据集和新数据集上表现都很差,就是欠拟合,如下图所示 其中蓝叉点表示训练数据,蓝色的线表示学到的模型。左边学到的模型不能很好的描述训练数据,模型过于简单,是欠拟合(Under-fitting)。中 阅读全文

posted @ 2013-06-15 23:27 潘的博客 阅读(7057) 评论(1) 推荐(3) 编辑

2013年6月1日

Learning to Rank 简介

摘要: 去年实习时,因为项目需要,接触了一下Learning to Rank(以下简称L2R),感觉很有意思,也有很大的应用价值。L2R将机器学习的技术很好的应用到了排序中,并提出了一些新的理论和算法,不仅有效地解决了排序的问题,其中一些算法(比如LambdaRank)的思想非常新颖,可以在其他领域中进行借鉴。鉴于排序在许多领域中的核心地位,L2R可以被广泛的应用在信息(文档)检索,协同过滤等领域。 本文将对L2R做一个比较深入的介绍,主要参考了刘铁岩、李航等人的几篇相关文献[1,2,3],我们将围绕以下几点来介绍L2R:现有的排序模型,为什么需要使用机器学习的方法来进行排序,L2R特征的选取,L2. 阅读全文

posted @ 2013-06-01 16:09 潘的博客 阅读(31562) 评论(3) 推荐(6) 编辑

2013年4月18日

时间序列挖掘-DTW加速算法FastDTW简介

摘要: 本文地址为:http://www.cnblogs.com/kemaswill/,作者联系方式为kemaswill@163.com,转载请注明出处。 关于DTW算法的简介请见我的上一篇博客:时间序列挖掘-动态时间归整算法原理和实现。 DTW采用动态规划来计算两个时间序列之间的相似性,算法复杂度为O(N2)。当两个时间序列都比较长时,DTW算法效率比较慢,不能满足需求,为此,有许多对DTW进行加速的算法:FastDTW,SparseDTW,LB_Keogh,LB_Improved等。在这里我们介绍FastDTW。 1. 标准DTW算法 在DTW中,我们要寻找的是一个归整路径(详见时间序列挖掘-动. 阅读全文

posted @ 2013-04-18 17:29 潘的博客 阅读(29534) 评论(2) 推荐(1) 编辑

时间序列挖掘-动态时间归整原理及实现(Dynamic Time Warping, DTW)

摘要: 本文地址为:http://www.cnblogs.com/kemaswill/,作者联系方式为kemaswill@163.com,转载请注明出处。 DTW是一种衡量两个时间序列之间的相似度的方法,主要应用在语音识别领域来识别两段语音是否表示同一个单词。 1. DTW方法原理 在时间序列中,需要比较相似性的两段时间序列的长度可能并不相等,在语音识别领域表现为不同人的语速不同。而且同一个单词内的不同音素的发音速度也不同,比如有的人会把‘A’这个音拖得很长,或者把‘i’发的很短。另外,不同时间序列可能仅仅存在时间轴上的位移,亦即在还原位移的情况下,两个时间序列是一致的。在这些复杂情况下,使用传统.. 阅读全文

posted @ 2013-04-18 15:30 潘的博客 阅读(20122) 评论(2) 推荐(2) 编辑

Hadoop Streaming 简介

摘要: Hadoop是用Java实现的,但是我们也可以使用其他语言来编写MapReduce程序,比如Shell,Python,Ruby等,下面简单介绍一下Hadoop Streaming,并使用Python作为例子。 1. Hadoop Streaming Hadoop Streaming的使用方式为:1 hadoop jar hadoop-streaming.jar -D property=value -mapper mapper.py -combiner combiner.py -reducer reducer.py -input Input -output Output -file mappe. 阅读全文

posted @ 2013-04-18 00:25 潘的博客 阅读(2751) 评论(0) 推荐(0) 编辑

导航