2007年6月25日

对Weka的深入理解

Weka是一个很好的东西,对于数据挖掘的研究人员,它是一把利刃,对于自然语言处理的研究人员,它是一把尖刀。非常具体的深入的说明,请看《数据挖掘:使用机器学习技术》一书,网上有英文版的,下载地址http://wekacn.gbaopan.com/files/c0f5ee1f43914f8faf3ed9c393f477f2.gbp,中文版的可以在China-pub上买到。

自己很早以前就知道Weka了的,但是被卡在Weka占用大量内存而导致机器死机。近日研读了Weka中文站论坛 上的所有帖子。顿时发现自己对Weka的认识原先是那么的钱。当然,现在我对Weka的认识也是很浅的。Weka最吸引人的地方就是开源,可以自己完成一些算法来嵌入Weka中,从而进行非常公平的对比。在了解了Weka的这种特点后,我的犹豫是否应该学习Java。呵呵,还是暂时不学为好的。因为俺的精力实在有限得很的。等将来有机会深入研究机器学习了再来学习不迟。

说说俺新认识到的Weka的一些内容吧。Weka分类算法中ZeroR表示对数据集上取比例最大的类别标签来作为默认的分类结果。这个模块非常的简单,但是意义非凡,它确定了一个数据集上做分类的baseline。在我们的自然语言处理研究中Tim老师强调过分析这种Baseline的重要性的。

分类算法中的OneR是一个神奇的方法,神奇在于它很简单,往往比能达到的最好分类性能差一点,但是速度却是最快的。基本思想就是对数据集上的各个属性创建单层的决策树,然后计算训练集上能达到的错误率,最终选择错误率最低的属性产生的单层决策树来作为分类策略。

Weka中SMO分类算法可以看成是SVM算法的实现。Weka能调用Libsvm,但是Weka只是提供了Libsvm的Wrapper调用机制,必须安装Libsvm后将附带的jar路径添加到Weka的启动路径中。在Weka的平台下调用Libsvm可以非常方便的和其他算法进行同一配置下的比较。

Weka的特征选择算法不单单可以直接作为研究内容,还可以在数据的预处理阶段完成相关特征选择的处理。在特征较多的情况下,进行特征选择往往能使得分类器的泛化能力大大提高。

Weka可以方便的进行命令行调用。如果用Java或者Jpython编程,还能进行更加深入的调用。Weka的命令行调用参数很多,采用系统调用的方法可以采用几乎任何编程语言进行调用,唯一需要仔细处理的就是用程序写好即将被处理的arff数据文件。

Weka的一个问题是可能会暂用非常大的内存,使得问题无法处理。两个可行的方案是:1、将数据进行采样处理或者将批处理策略改为更新策略;2、采用分布式处理,Weka自带了一种分布式处理的机制,可以将一个机器难以处理的问题分摊到多个机器上,实现分布式的处理。

Weka被封装在了著名的自然语言处理平台Gate中,可以结合Gate的相关处理模块实现几乎理想的文本挖掘的工作。


2007年6月24日

自然语言处理的变相和相变

随机的往图中添加边。从这点出发,爱多士建立了很多相变的简单模型。相变是很多的自然现象。对了“自然”的自然语言处理,是否也存在类似的机制导致出现相变呢?我们先来回顾一下自然语言处理研究的变相。

传统意义上,自然语言处理的研究人员都认为自然语言处理的研究开始于基于规则的方法,后来引入大规模语料库出现了基于统计的潮流,可以说近20年来,统计方法在自然语言处理中占据了统治地位,而且统计方法的性能越来越超出基于规则的方法。但是,随着研究的深入,又有越来越多的研究人员意识到纯粹的统计方法是有瓶颈的。这个瓶颈的解决必须依靠基于规则的方法或者基于知识库的方法来进行解决。于是又开始出现了越来越多的所谓的统计和规则相结合的策略。不外乎有如下两种结合方式:过滤筛选、融入到统计中。前者是在统计方法的前处理阶段以及后处理阶段将很多不适合的样本进行剔除,从而保证最终结果的准确率。这种策略适当的牺牲了召回率,但是却大幅提高了精确率,总体看来,还是使得F值得到了提高。但是这种策略本质上没有完美而简练的体现规则和统计的深层结合。第二种融合方式就是将所谓的规则知识融入到统计过程中。本质上就是将知识信息转变未统计方法能够覆盖的“属性-值”形式的规范化数据。这种形式的早期引入确实产生了很好的效果,但是不久又出现了新的瓶颈。原因在于这种能被统计覆盖的“属性-值”表示方式使得知识没有被充分得使用。总之,现在再次出现了新的瓶颈。那么如何解决这个瓶颈呢?无数的研究者正在思考着。新近看到的ACL2007主会议的一篇论文“Learning Expressive Models for Word Sense Disambiguation”提出了一种新的方案:Inductive Logic Programming。这种方法能够很好的将需要利用的知识之间的关系。更具体的思想,等仔细研读后和大家分享。

仔细考察自然语言处理的研究策略变化,那什么东西已经或者可能导致自然语言处理研究的相变呢?统计的引入?Inductive Logic Programming? 我不得而知。

联想共指消解的研究,存在这种导致相变的机制么?我想肯定是存在的。具体的需要我们不断的思考和探索。

2007年6月23日

品读:保罗.爱多士

近日品读了《我的大脑敞开了:天才数学家保罗.爱多士传奇》。这是一本让我兴奋的书,不仅仅是因为书写得很好,还因为从中感受到了很多,也让我联想到了自然语言处理研究中的一些现象。如果你没有读过这本书,非常推荐你看一下。

保罗.爱多士是20世纪世界上最伟大的数学家之一,无疑也是最古怪独特的数学家之一。爱多士出生于数学人才辈出的匈牙利、科学精英荟萃的犹太家庭,从小就有神童之称,17岁发表数学论文,一生之中与450多人合作,发表了1500篇论文著作。爱多士一生命运多舛,身为犹太人遭纳粹迫害,不得不亡命海外,50年代因与华罗庚通信而被怀疑通共亲华,被美国麦卡锡主义者赶出美国,从此终身漂泊,浪迹天涯。爱多士终身未娶,没有固定职业,他把一生献给了科学事业。他一天工作十八九个小时,一年四季奔波于世界各地,与数学界同行探讨数学难题。爱多士的大脑里整日装满了数学问题、定理、猜想、证明。本书也介绍了爱多士关注的一些世界著名难题:如歌德巴赫猜想、费马大定理,以及数学史上德许多轶闻趣事。爱多士史一个有正义感德科学家,他爱祖国、爱母亲、爱孩子。对他来说,数学是他德生命、他的一切。他有一个开放的大脑、一个丰富多彩的人生。

通读这本书,我了解到了爱多士工作的一个主题:有序与混乱之间的微妙关系。对这一主题最清楚的陈述可以在他关于拉姆塞理论的著作中找到,拉姆塞理论表明了完全的无序是不可能的。正如夜空的星星,你总能从中找到一些特殊的形状。无序之中必定隐藏着某种有序。1959年,爱多士与瑞尼通过寻找混乱的随机图中的有序现象来研究这一问题,随机图是精心发明的无序结构。使他们感到惊讶的是,即使在最随机的情况下,有序的结构仍会自发的产生出来。

1947年,为了证明有关拉姆塞的一条定理,爱多士产生了研究随机图的奇异想法。顾名思义,随机图不是通过细心的设计而是由随机事件来构造的。试想有个神经失常的土木工程师要决定在哪些城市之间铺设连接道路。他用的方法是投钱币。例如;如果出现正面,则在阿尔巴尼与波士顿之间建一条路,否则就不用建。这样得到的路的偶然网络就是一个随机图。

爱多士和瑞尼最有创造性和最深远的合作是1959年撰写的,包含在神秘的标题“随机图论进展”之下的一系列经典论文。他们合写这些论文只是为了满足他们纯粹的数学好奇心,但这些文章可能掌握着解释一大类现实世界现象,包括生命起源的钥匙。

爱多士与瑞尼分析的情况是前面提到的土木工程师狂想曲的变奏。假定土木工程师现在的任务是要修筑链接一大批(譬如说10000个)城市的道路。他首先忽略距离,随机的选择两个城市并在它们之间筑一条路。然后随机的选择两个城市并筑另一条路。工程师按这一方法进行下去,但当两个城市之间已经有路连接,就不再在它们间筑路。

起初只有少数城市之间有路相连,但当工程师逐渐加筑一些路后,就会形成一些小小的相互链接的城市网。生活在这些城市网中的人可以沿着一系列路驱车到圈内的其他任何一个城市去。爱多士与瑞尼发现,开始时出现的城市圈是小规模和分散的。当工程师加修了更多的路时,圈的规模将缓慢的变大,圈中的城市变得更多的相互连接。直到路的条数增加到使半数的城市都被连接起来之前,情况尚无太大变化。但此后,只要添加极少数的几条路,奇迹就会突然出现。很多原先孤立的圈子将会变得相互联结而形成一个几乎包括了所有城市的巨大圈子。

由各个孤立的小圈向单个大圈的迅速转变在许多自然现象中有惊人的类似。例如,水的突然结冰或交通的堵塞。这类现象,即所谓的相变,长期以来一直使科学家们迷惑不解。爱多士与瑞尼出于纯粹的数学好奇心而进行的随机图研究,提供了一个可以阐明相变机制的简单模型。“这篇文章开辟了整个领域,”爱多士的弟子斯潘塞评论到,“回过头来看看,你就会明白:所有的发展都源于这样一个想法,即随机的增加边之后会发生什么。”自从爱多士与瑞尼关于随机图的文章发表以来,已有成百篇的其他文章,总多的专著和国际会议致力于这一领域的研究。

作为纯粹的数学家,他们并不是完全不了解他们研究的应用意义。在他们的原始论文中写到,研究随机图中结构的突然变化“不仅仅是纯粹的出于数学上的兴趣。实际上,图的变化可以当作一国或其他某个单位的一个交通网络(铁路、公路或电子网络系统等)的大为简化的模型……似乎可以这样说,通过较为复杂的网络结构的随机增长的考虑”,我们可以得到复杂的显示增长过程的相当合理的模型(例如,由不同类型的联系组成的复杂交通网络,以及甚至生命的有机结构,等等)”。40多年后,这一论点被证明是非常有远见的。桑塔费研究所的考夫曼(Stuart Kauffman)很大程度上依赖随机图的演化建立了他的令人信服的生命起源理论。在考夫曼的模型中,生命起源于混乱的原始分子群,这与爱多士和瑞尼随机图的演化模型中的“圈”(cluster)的出现安有着相同的必然性。

2007年6月22日

What's new in Weka 3.5.6

What's new in the developer version?
- nearest neighbor search got re-organized and
extended:
weka.core.neighboursearch.BallTree
weka.core.neighboursearch.CoverTree
weka.core.neighboursearch.KDTree
weka.core.neighboursearch.LinearNNSearch

- tokenizers for the StringToWordVector are now
GOE objects and the NGram tokenizer got added:
weka.core.tokenizers.AlphabeticTokenizer
weka.core.tokenizers.NGramTokenizer
weka.core.tokenizers.WordTokenizer

- new classifiers:
weka.classifiers.bayes.NaiveBayesMultinomialUpdateable
weka.classifiers.misc.SerializedClassifier

- a new kernel:
weka.classifiers.functions.supportVector.Puk

- new associators:
weka.associations.FilteredAssociator
weka.associations.GeneralizedSequentialPatterns

- new filters:
weka.filters.unsupervised.attribute.KernelFilter
weka.filters.unsupervised.attribute.NominalToString

link: Weka 3: Data Mining Software in Java


It is more suitable for our research!

2007年6月14日

学、习、自信、交流

早晨5:40,我准时起床了,这是我学习太极拳以来不曾中断的一天。朝阳是那么的美丽,校园里四处都是晨练的人们。图书馆门前大堆的人曾让我赞叹。同样的地方,同样熟悉的砖瓦,但是在不同的时刻,情景确是如此的不同。学太极的第一天早起路过这里时,第一次发现居然有这多人早早的起来在图书馆前聚集。我感悟到人世间不曾经历的场景太多太多,人生需要非常认真的深刻理解。

今天早上,从公寓出发,我背着手步速不慢的往邵馆太极拳广场出发,嘴里习惯性的说了一句,“Ladies, and gentelmen”。随后出口的便是自己对昨日高云师兄教诲的“学和习”关系的理解。只是练习的是英语。他说,“学习,注重‘习’,只有不断练习才熟能生巧。学任何东西都是一样。”这句话深深的印在了我的心里。仔细的分析一下,自己经过多年的刻苦努力,“学”的能力不算低,但是“习”的能力却是非常的值得别人同情。从小学开始,一直到硕士研究生,我们学习的模式都是开学的时候老师发给大家一本课本,然后就是略有拓展的“照本宣科”。期末的时候就考考这本书的内容即可。学习的模式是如此的一致,以至于容易让人形成一种惯性的思维:学习的内容和方法都是别人安排好了的。等到真正进入博士研究生的自我学习阶段,我开始出现了迷茫。没有人告诉你究竟该如何做研究,没有所谓的照本宣科的教学以及只考书本的试卷。自己忽然之间变得不知所措。

有人说选择是痛苦的。回顾自己开始进行所谓的研究,我走了一条曲折的路。细细的分析,我发现自己需要采用一种新的态度来对待研究。总的来说,可以用一下四个词语来概括:学、习、自信、交流。

学:问渠哪得清如许,唯有源头活水来。只有不断的学习新鲜的东西才能保持常青。

习:需要深入练习的东西有很多,英语、数学、论文写作、编写程序。熟能生巧。

自信:为什么那些优秀的研究人员能看起来非常轻松的发表大量的高水平期刊和会议的论文。据我观察,那是因为“优秀是一种习惯”。如果你定位在高水平的期刊会议上不断努力、不断修正,自然而然就会渐渐达到所需的标准。你必须有这种自信,世上无难事,只怕有心人。

交流:科研不是封闭的,体会数学天才保罗.爱多士的一生,交流是如此的重要,让交流成为习惯!现在的互联网让我们和别人的交流越发的容易,为何不珍惜和充分利用网络来和别人进行交流呢。

保持学新知识、不断练习重要的技能、充满自信的向高水平努力、交流之中寻找灵感!这就是我最近的体会。