科学网

 找回密码
  注册

tag 标签: 机器学习

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

[转载]新书推荐:Cluster Analysis, 5th Edition
timy 2010-10-14 11:38
From: http://as.wiley.com/WileyCDA/WileyTitle/productCd-0470749911,descCd-description.html       Larger Image                 Cluster Analysis, 5th Edition Brian S. Everitt , Dr Sabine Landau , Dr Morven Leese , Dr Daniel Stahl ISBN: 978-0-470-74991-3 Hardcover 336 pages March 2011 Wiley List Price: US $95.00          Description    This edition provides a thorough revision of the fourth edition which focuses on the practical aspects of cluster analysis and covers new methodology in terms of longitudinal data and provides examples from bioinformatics. Real life examples are used throughout to demonstrate the application of the theory, and figures are used extensively to illustrate graphical techniques. This book includes an appendix of getting started on cluster analysis using R, as well as a comprehensive and up-to-date bibliography.    Table of Contents     Preface Acknowledgement 1 An introduction to classification and clustering 1.1 Introduction 1.2 Reasons for classifying 1.3 Numerical methods of classification - cluster analysis 1.4 What is a cluster? 1.5 Examples of the use of clustering 1.6 Summary 2 Detecting clusters graphically 2.1 Introduction 2.2 Detecting clusters with univariate and bivariate plots of data 2.3 Using lower-dimensional projections of multivariate data for graphical representations 2.4 Three-dimensional plots and trellis graphics 2.5 Summary 3Measurement of proximity 3.1 Introduction 3.2 Similarity measures for categorical data 3.3 Dissimilarity and distance measures for continuous data 3.4 Similarity measures for data containing both continuous and categorical variables 3.5 Proximity measures for structured data 3.6 Inter-group proximity measures 3.7 Weighting variables 3.8 Standardization 3.9 Choice of proximity measure 3.10 Summary 4Hierarchical clustering 4.1 Introduction 4.2 Agglomerative methods 4.3 Divisive methods 4.4 Applying the hierarchical clustering process 4.5 Applications of hierarchical methods 4.6 Summary 5Optimization clustering techniques 5.1 Introduction 5.2 Clustering criteria derived from the dissimilarity matrix 5.3 Clustering criteria derived from continuous data 5.4 Optimization algorithms 5.5 Choosing the number of clusters 5.6 Applications of optimization methods 5.7 Summary 6Finite mixture densities as models for cluster analysis 6.1 Introduction 6.2 Finite mixture densities 6.3 Other finite mixture densities 6.4 Bayesian analysis of mixtures 6.5 Inference for mixture models with unknown number of components and model structure 6.6 Dimension reduction - variable selection in finite mixture modelling 6.7 Finite regression mixtures 6.8 Software for finite mixture modelling 6.9 Some examples of the application of finite mixture densities 6.10 Summary 7Model-based cluster analysis for structured data 7.1 Introduction 7.2 Finite mixture models for structured data 7.3 Finite mixtures of factor models 7.4 Finite mixtures of longitudinal models 7.5 Applications of finite mixture models for structured data 7.6 Summary 8Miscellaneous clustering methods 8.1 Introduction 8.2 Density search clustering techniques 8.3 Density-based spatial clustering of applications with noise 8.4 Techniques which allow overlapping clusters 8.5 Simultaneous clustering of objects and variables 8.6 Clustering with constraints 8.7 Fuzzy clustering 8.8 Clustering and artificial neural networks 8.9 Summary 9Some final comments and guidelines 9.1 Introduction 9.2 Using clustering techniques in practice 9.3 Testing for absence of structure 9.4 Methods for comparing cluster solutions 9.5 Internal cluster quality, influence and robustness 9.6 Displaying cluster solutions graphically 9.7 Illustrative examples 9.8 Summary Bibliography Index
个人分类: 机器学习|4035 次阅读|0 个评论
[转载]NICTA将elefant开源了
w52191114 2010-8-13 02:44
NICTA将elefant开源了 2010年2月28日 cvchina 没有评论 NICTA (National ICT Australia),是澳大利亚的一个独立公司,最近将 elefant (Efficient Learning, Large-scale Inference, and Optimisation Toolkit)开源了。 elefant 类似于weka,提供了很多机器学习,数据挖掘的算法,更酷的是,它是商用级别的。 关于elefant: Elefant (Efficient Learning, Large-scale Inference, and Optimisation Toolkit) is an open source library for machine learning licensed under the Mozilla Public License ( MPL ). We develop an open source machine learning toolkit which provides algorithms formachine learningutilising the power of multi-core/multi-threaded processors/operating systems (Linux, WIndows, Mac OS X), a graphical user interface for users who want to quickly prototype machine learning experiments, tutorials to support learning about Statistical Machine Learning ( Statistical Machine Learning at The Australian National University ), and detailed and precise documentation for each of the above. 关于NICTA: NICTA (National ICT Australia) is Australias Information and Communications Technology (ICT) Centre of Excellence.We are an independent company in the business of research, commercialisation and research training.With over 700 people, NICTA is the largest organisation in Australia dedicated to ICT research. 除了 elefant , NICTA 放出了很多开源软件,具体信息在 OpenNICTA 上面,其中有个一 行人库 不得不提,这个 行人库 包含了25k+的行人图像。做行人检测的人有福了啊。 来源
个人分类: cvchina|2889 次阅读|0 个评论
[转载]卡内基梅隆大学的机器学习课程
热度 1 dechang 2010-8-11 01:51
来到卡内基梅隆大学学习已经将近8个月了,一直没有认真地写点什么,今天偶有所感,草就此文,介绍一点听课感想,以为纪念。 CMU的计算机学院很特别,居然有一个机器学习系,最王牌的课,就是机器学习了,到了这里,不听这门课,很遗憾,听了这门课,很痛苦,用一个CMUer的话来说,super hard,想要顺利通过,不脱掉几层皮是不可能的。 这学期开了两门机器学习,一门面向硕士,一门面向博士,面向博士的课程师资配备很豪华,以Tom Mitchell(《机器学习》的作者,http://www.cs.cmu.edu/~tom/)压阵,以Eric Xing(邢波,清华高才生,伯克利大牛Michael Jordan的高足,http://www.cs.cmu.edu/~epxing/),不去听,岂不遗憾终生? 既然听了这门课,就该知道如何通过,包括5次大作业,2次考试,一个项目,所有这些加起来就一个字,难,太难了,帮助大家通过的,除了上课,有助教的复习课(recitation)和老师助教们的答疑时间(Office Hour)。最值得称道的就是项目了,很多优秀学生的第一篇文章就是在这们课程里完成的。 比较国内的博士课程,是不是很有特点啊? 转自(http://blog.hit.edu.cn/dcxu/post/6.html)
个人分类: 生活点滴|12812 次阅读|2 个评论
[转载]开源机器学习之RWeka
cs2bioinfor 2010-8-5 21:02
背景介绍: 1)Weka: Weka有两种意思:一种不会飞的鸟的名字,一个机器学习开源项目的简称(Waikato Environment for Knowledge Analysis, http://www.cs.waikato.ac.nz/~ml/weka/ )。我们这里当然要介绍的是第二种意思啦,Weka项目从1992年开始,由新西兰政府支持,现在已在机器学习领域大名鼎鼎。Weka里有非常全面的机器学习算法,包括数据预处理、分类、回归、聚类、关联规则等。Weka的图形界面对不会写程序的人来说非常方便,而且提供KnowledgeFlow 功能,允许将多个步骤组成一个工作流。另外,Weka也允许在命令行执行命令。 2)R R就不用我废话了吧,呵呵,越来越受欢迎的统计软件( http://www.r-project.org/ )。 3)R与Weka: R里有很多机器学习的函数和包,不过Weka里提供的函数更全面更集中,所以我有时候需要用到Weka。以前我是这样用R和Weka的: 在R中准备好训练的数据(如:提取数据特征); 整理成Weka需要的格式(*.arff); 在Weka里做机器学习(如:特征选择、分类); 从Weka的预测结果计算需要的统计量(如:sensitivity, specificity, MCC)。 来回捣腾两个软件还是挺麻烦的;为了偷懒,我没学Weka的命令行,只会用图形界面的,在数据量大的时候非常受罪,有时候还会内存不够。现在发现R竟然提供了和Weka的接口函数包RWeka,以后方便多了哦,下面介绍一下RWeka的功能: RWeka ( http://cran.r-project.org/web/packages/RWeka/index.html ) : 1) 数据输入和输出 WOW():查看Weka函数的参数。 Weka_control():设置Weka函数的参数。 read.arff():读Weka Attribute-Relation File Format (ARFF)格式的数据。 write.arff:将数据写入Weka Attribute-Relation File Format (ARFF)格式的文件。 2) 数据预处理 Normalize():无监督的标准化连续性数据。 Discretize():用MDL(Minimum Description Length)方法,有监督的离散化连续性数值数据。 3) 分类和回归 IBk():k最近邻分类 LBR():naive Bayes法分类 J48():C4.5决策树算法(决策树在分析各个属性时,是完全独立的)。 LMT():组合树结构和Logistic回归模型,每个叶子节点是一个Logistic回归模型,准确性比单独的决策树和Logistic回归方法要好。 M5P():M5 模型数算法,组合了树结构和线性回归模型,每个叶子节点是一个线性回归模型,因而可用于连续数据的回归。 DecisionStump():单层决策树算法,常被作为boosting的基本学习器。 SMO():支持向量机分类 AdaBoostM1():Adaboost M1方法。-W参数指定弱学习器的算法。 Bagging():通过从原始数据取样(用替换方法),创建多个模型。 LogitBoost():弱学习器采用了对数回归方法,学习到的是实数值 MultiBoostAB():AdaBoost 方法的改进,可看作AdaBoost 和 wagging的组合。 Stacking():用于不同的基本分类器集成的算法。 LinearRegression():建立合适的线性回归模型。 Logistic():建立logistic回归模型。 JRip():一种规则学习方法。 M5Rules():用M5方法产生回归问题的决策规则。 OneR():简单的1-R分类法。 PART():产生PART决策规则。 4) 聚类 Cobweb():这是种基于模型方法,它假设每个聚类的模型并发现适合相应模型的数据。不适合对大数据库进行聚类处理。 FarthestFirst():快速的近似的k均值聚类算法 SimpleKMeans():k均值聚类算法 XMeans():改进的k均值法,能自动决定类别数 DBScan():基于密度的聚类方法,它根据对象周围的密度不断增长聚类。它能从含有噪声的空间数据库中发现任意形状的聚类。此方法将一个聚类定义为一组密度连接的点集。 5)关联规则 Apriori():Apriori是关联规则领域里最具影响力的基础算法,是一种广度优先算法,通过多次扫描数据库来获取支持度大于最小支持度的频繁项集。它的理论基础是频繁项集的两个单调性原则:频繁项集的任一子集一定是频繁的;非频繁项集的任一超集一定是非频繁的。在海量数据的情况下,Apriori 算法的时间和空间成本非常高。 Tertius():Tertius算法。 6)预测和评估: predict():根据分类或聚类结果预测新数据的类别 table():比较两个因子对象 evaluate_Weka_classifier():评估模型的执行,如:TP Rate,FP Rate,Precision,Recall,F-Measure。
个人分类: 数据挖掘与机器学习|7387 次阅读|0 个评论
[转载]R语言中的机器学习(转)
cs2bioinfor 2010-7-16 15:19
机器学习是计算机科学和统计学的边缘交叉领域,R关于机器学习的包主要包括以下几个方面: 1)神经网络(Neural Networks): nnet 包执行单隐层前馈神经网络,nnet是VR包的一部分( http://cran.r-project.org/web/packages/VR/index.html )。 2)递归拆分(Recursive Partitioning): 递归拆分利用树形结构模型,来做回归、分类和生存分析,主要在 rpart 包( http://cran.r-project.org/web/packages/rpart/index.html )和 tree 包( http://cran.r-project.org/web/packages/tree/index.html )里执行,尤其推荐rpart包。Weka里也有这样的递归拆分法,如:J4.8, C4.5, M5,包 Rweka 提供了R与Weka的函数的接口( http://cran.r-project.org/web/packages/RWeka/index.html )。 party 包提供两类递归拆分算法,能做到无偏的变量选择和停止标准:函数 ctree() 用非参条件推断法检测自变量和因变量的关系;而函数 mob() 能用来建立参数模型( http://cran.r-project.org/web/packages/party/index.html )。另外, party 包里也提供二分支树和节点分布的可视化展示。 mvpart 包是rpart的改进包,处理多元因变量的问题( http://cran.r-project.org/web/packages/mvpart/index.html )。 rpart.permutation 包用置换法(permutation)评估树的有效性( http://cran.r-project.org/web/packages/rpart.permutation/index.html )。 knnTree 包建立一个分类树,每个叶子节点是一个knn分类器( http://cran.r-project.org/web/packages/knnTree/index.html )。 LogicReg 包做逻辑回归分析,针对大多数自变量是二元变量的情况( http://cran.r-project.org/web/packages/LogicReg/index.html )。 maptree 包( http://cran.r-project.org/web/packages/maptree/index.html )和 pinktoe 包( http://cran.r-project.org/web/packages/pinktoe/index.html )提供树结构的可视化函数。 3)随机森林(Random Forests): randomForest 包提供了用随机森林做回归和分类的函数( http://cran.r-project.org/web/packages/randomForest/index.html )。 ipred 包用bagging的思想做回归,分类和生存分析,组合多个模型( http://cran.r-project.org/web/packages/ipred/index.html )。 party 包也提供了基于条件推断树的随机森林法( http://cran.r-project.org/web/packages/party/index.html )。 varSelRF 包用随机森林法做变量选择( http://cran.r-project.org/web/packages/varSelRF/index.html )。 4)Regularized and Shrinkage Methods: lasso2 包( http://cran.r-project.org/web/packages/lasso2/index.html )和 lars 包( http://cran.r-project.org/web/packages/lars/index.html )可以执行参数受到某些限制的回归模型。 elasticnet 包可计算所有的收缩参数( http://cran.r-project.org/web/packages/elasticnet/index.html )。 glmpath 包可以得到广义线性模型和COX模型的L1 regularization path( http://cran.r-project.org/web/packages/glmpath/index.html )。 penalized 包执行lasso (L1) 和ridge (L2)惩罚回归模型(penalized regression models)( http://cran.r-project.org/web/packages/penalized/index.html )。 pamr 包执行缩小重心分类法(shrunken centroids classifier)( http://cran.r-project.org/web/packages/pamr/index.html )。 earth 包可做多元自适应样条回归(multivariate adaptive regression splines)( http://cran.r-project.org/web/packages/earth/index.html )。 5)Boosting : gbm 包( http://cran.r-project.org/web/packages/gbm/index.html )和 boost 包( http://cran.r-project.org/web/packages/boost/index.html )执行多种多样的梯度boosting算法, gbm 包做基于树的梯度下降boosting, boost 包包括LogitBoost和L2Boost。 GAMMoost 包提供基于boosting的广义相加模型(generalized additive models)的程序( http://cran.r-project.org/web/packages/GAMMoost/index.html )。 mboost 包做基于模型的boosting( http://cran.r-project.org/web/packages/mboost/index.html )。 6)支持向量机(Support Vector Machines): e1071 包的svm()函数提供R和LIBSVM的接口 ( http://cran.r-project.org/web/packages/e1071/index.html )。 kernlab 包为基于核函数的学习方法提供了一个灵活的框架,包括SVM、RVM( http://cran.r-project.org/web/packages/kernlab/index.html ) 。 klaR 包提供了R和SVMlight的接口( http://cran.r-project.org/web/packages/klaR/index.html )。 7)贝叶斯方法(Bayesian Methods): BayesTree 包执行Bayesian Additive Regression Trees (BART)算法( http://cran.r-project.org/web/packages/BayesTree/index.html , http://www-stat.wharton.upenn.edu/~edgeorge/Research_papers/BART%206--06.pdf )。 tgp 包做Bayesian半参数非线性回归(Bayesian nonstationary, semiparametric nonlinear regression)( http://cran.r-project.org/web/packages/tgp/index.html )。 8)基于遗传算法的最优化(Optimization using Genetic Algorithms): gafit 包( http://cran.r-project.org/web/packages/gafit/index.html )和 rgenoud 包( http://cran.r-project.org/web/packages/rgenoud/index.html )提供基于遗传算法的最优化程序。 9)关联规则(Association Rules): arules 包提供了有效处理稀疏二元数据的数据结构,而且提供函数执Apriori和Eclat算法挖掘频繁项集、最大频繁项集、闭频繁项集和关联规则( http://cran.r-project.org/web/packages/arules/index.html )。 10)模型选择和确认(Model selection and validation): e1071 包的 tune() 函数在指定的范围内选取合适的参数( http://cran.r-project.org/web/packages/e1071/index.html )。 ipred 包的 errorest() 函数用重抽样的方法(交叉验证,bootstrap)估计分类错误率( http://cran.r-project.org/web/packages/ipred/index.html )。 svmpath 包里的函数可用来选取支持向量机的cost参数C( http://cran.r-project.org/web/packages/svmpath/index.html )。 ROCR 包提供了可视化分类器执行效果的函数,如画ROC曲线( http://cran.r-project.org/web/packages/ROCR/index.html )。 caret 包供了各种建立预测模型的函数,包括参数选择和重要性量度( http://cran.r-project.org/web/packages/caret/index.html )。 caretLSF 包( http://cran.r-project.org/web/packages/caretLSF/index.html )和 caretNWS ( http://cran.r-project.org/web/packages/caretNWS/index.html )包提供了与caret包类似的功能。 11)统计学习基础(Elements of Statistical Learning): 书《The Elements of Statistical Learning: Data Mining, Inference, and Prediction 》( http://www-stat.stanford.edu/~tibs/ElemStatLearn/ )里的数据集、函数、例子都被打包放在 ElemStatLearn 包里( http://cran.r-project.org/web/packages/ElemStatLearn/index.html )。
个人分类: 数据挖掘与机器学习|6325 次阅读|0 个评论
世界杯比赛规则与数据聚类
timy 2010-6-27 15:35
应该有很多博友像我一样,这段时间可能要花些时间看世界杯。有些博友还会发些心得。俺就从数据聚类的角度,来对世界杯比赛规则进行重认识一下,呵呵。 先交代下基础背景知识,内行直接跳过本段,呵呵。数据聚类包括划分聚类、层次聚类等、基于模型的聚类等基本模式。划分聚类中最经典的方法就是K-均值聚类,需要事先给定初始点和聚类类目数。层次聚类中最常用的是HAC聚类,事先两两求出相似度,将最相似的或者最不相似的连接起来呢,然后再求次相似的,一直到所有点的都被连接为止。近年来,基于模型的聚类越来越火,可以将基于竞争的聚类方法划入这个类别。07年Frey提出的AP聚类方法更是被大量引用。 再结合数据聚类,说下世界杯比赛规则。 1. 首先,小组划分,是做基于约束的划分聚类 : (1) 经过预选赛入围的32只球队,被划分为4个档次,其中第一档中的8支球队作为种子队 (32个数据,8个聚类类目,将以往世界排名作为权重,选择初始聚类中心,当然东道主特殊,直接作为种子); (2) 剩余球队按照其档次和所在洲的约束,进行抽签划分到相应的小组中(24个数据按照一定的规则约束后,随机分配到每个聚类中心的所在组中); 2. 然后,正式比赛,是做层次聚类 : (1) 小组确定后,每组四个队,两两求相似度,就是说两两打一场,胜的权重给3,平了给1,输了给0,每小组的6场赛事结束后,得到每个队的总体权重(当然了,有可能还要考虑净胜球,相互战绩啥的),那么小组中排名前2的队作为连接点参与下一个层次的聚类。(这里,两两求相似度,完全是基于竞争的,整个比赛阶段基于竞争的层次聚类); (2) 淘汰赛阶段,直接竞争,做二分聚类,胜的参加下一轮聚类; (3) 直到最后两支最牛的打决赛,冠军队成为了根节点。 3. 聚类结束,参数重新分配 ,准备4年后的聚类,呵呵。 所以,世界杯做了大量的约束,注意比赛的观赏性,用了比较简单公平的方法,在较短时间内确定聚类层次关系。 如果是动物界打比赛,可能又是另一个场景,完全自由随机的打,最强的完全有可能因为体力不支,提早被淘汰而成不了冠军。 以上仅供娱乐参考,推理和比喻不当地方,请博友指出,谢谢。 (图片来源: http://worldcup.qq.com/schedule/ )
个人分类: 文本挖掘|5829 次阅读|6 个评论
生活中的决定与数值计算方法
chemicalbond 2010-4-25 23:19
杨玲决定读博士,赵薇决定把自己嫁出去 , 冯小刚和徐帆为玉树重建捐款 20 万,美国决定进攻伊拉克,等等,都是人们或者某个集体,在每天的活动中作出的决定。 每个星期天早上 9 点的 CBS 节目 SUNDAY MORNING 是我最喜欢的电视节目。今天的一个主题是关于 DECISION 。看完之后,我也就决定了要写这篇文章。 人生就是一个接一个的决定过程。小的方面讲是可以是个简单的决定,比如晚上该吃点啥,大的方面讲完全可以算是决策,比如关于婚姻大事的决定。决定过程是如何进行的?其本质不外乎是大脑的一些计算过程。 数值计算中有很多不同的算法,似乎我们的大脑也在反复地应用它们。下面简单地提及分子模拟中常见的几种方法。 蒙特卡洛 是一种常见的算法,它既考虑了一定的随机性,也加上了一些约束条件,在实际中有广泛的应用;它的名字暗示该方法是有风险的,不过,如果约束条件过硬,出牌的次数够多,成功的机会还是蛮大,该赌的时候就得赌一把。 分子动力学模拟 的本质上就是牛顿第二定律的数值解。给定初始的位置和时间步长,根据各原子受力大小和方向,便可以决定下一步运动的方向和位移;因为它模拟的是 自然 的物理过程,这个方法有很多优势,尤其是对于含有大量自由度的生物大分子。不过由于它的机械性,其结果往往取决于初始条件的设置,在生活中用它来做决定更不可取,否则便成了随波逐流了,非常消极。 机器学习 是一种近年来非常流行的算法,它主要是应用统计的一些原理对已知的信息进行分析,再把结论用来分析未知的世界。这种方法一般适用于含有多变量的大量相关数据的体系,而那些变量之间的关系并不明朗。显然,这种方法得出的结果也不一定是完全可靠的,尤其是测试组(未知)数据和训练组(已知)数据之间没有太多的共性。这种方法几乎老少皆知,因为每个人的生活中都在不断地积累经验,再把它用来指导以后的生活。 哪种方法更有效,大概要看具体的情况,很多时候是综合应用不同的方法。对于一个成熟的方法,只有输入的信息量足够多,足够真实,那么得到满意的输出结果是不难的。否则,只能给出一个信噪比很小的值得怀疑的结论。 实际生活中,人们在做决定前,也在有意无意地进行应用类似上面的那些算法。不过有的人是因为算法不好,或者信息不够,就容易犹豫不决,优柔寡断,而有些人要么因为经验丰富,要么因为大脑的内存大运算速度快,便很容易做出果断的正确的决定,比如早年神机妙算的诸葛孔明,和未来人们生活中的各类机器人。 有人认为 日常生活中的智能化机器人 将是下一个 BIG THING , 至少是其中之一。期待着那一天早日到来,并且象个人电脑一样廉价,至少它可以每天给我搓搓背,再聪明点的话就应该知道如何逗人开心。 至少那些活在理论上是可以训练的。
个人分类: 科普与新知|3127 次阅读|1 个评论
片段1 机器学习该柔软点
tygo 2010-4-11 18:03
今日东北偏北风, 潮寒.今日想写点啥,下面的争取写出这些关于瞬间的一点思维片段. 机器学习实在是有点过分 放眼望去 几乎找不到ode的脚印,这不得不让老夫感觉机器学习像个原始机器. 没有ode的出现我想有一些原因: 1. 机器学习过于直奔主题,赤裸得有些幼稚,要说分类基本就是要么直奔类间类内的度量, 要么直奔中心点, 几乎没有柔软如水的手法, 可恶的是直奔主题往往只会造就线性技术,或者线性技术平凑出来的一点非线性技术.没有前途. 第二. 刚才吹进来一股冷风,我打了个摆摆,下面接着聊. 我感觉这个行业的从业人员弄线性代数上了瘾, 用不同微小区别的手段重复干相同的事情, 确实这些招数大部分是一坨屎. 第三. 我也不知道该怎么干才好,所以大家不要拍我. 第四. 就我了解到了,谱技术算是这个行业很精妙的手法了.但是这个精妙还是冲击力有限. 最后, NMF这个把戏必须接受批判, 东北偏北风把nmf吹得越远越好. 我觉得nmf是个弱智的错误.
个人分类: 生活点滴|3325 次阅读|3 个评论
[转载]"Learning Has Just Started" - an interview with Prof. Vladimir Vapnik(zz)
wucg 2010-3-7 21:14
Learning has just started-zz
个人分类: 百之草园|2330 次阅读|0 个评论
《立委随笔:机器学习和自然语言处理》
热度 1 liwei999 2010-2-13 07:39
【置顶:立委科学网博客NLP博文一览(定期更新版)】 有脚客介绍人工智能(AI)现状 ( http://rl.rockiestech.com/node/636 ),认为由于机器学习(ML)技术的长足进步,人工智能正进入繁荣期,并且开始成功用于自然语言处理(NLP). 除了调子过分乐观了一些,这是个不错的介绍。下面的随笔是根据我自己的经验和体会而来。 AI, ML and NLP NLP 中过分强调 AI 曾经是斜途,其实现在我认为也还是斜途, 我很久以前就有过这个看法,现在觉得并没过时: 机器翻译的另一极是建立在充分理解基础上, 毋须转换的自动翻译, 这是从实质 上对人的翻译过程的模拟。这时候, 源语分析才是真正的自然语言理解, 机器翻译才 真正属于人工智能。然而, 这里遇到两个难题: 一是知识处理问题; 二是所谓元语言 问题。 考察人的翻译活动, 可以发现, 人是靠丰富的知识在理解的基础上从事翻译的。 这些知识既包括语言知识, 也包括世界知识(常识、专业知识等)。如何组织这些包罗 万象的百科全书一样的知识, 以便适应机器处理和运用的需要, 是人工智能所面临的 根本性课题。 …… 总之, 虽然机器翻译的最终出路在于人工智能的理论和技术的突破, 但在条件不 成熟的时候过份强调机器翻译的人工智能性质, 一味追求基于知识和理解的自动翻译, 对于应用型机器翻译系统的研制, 往往没有益处。 摘自【立委科普:机器翻译】: http://www.starlakeporch.net/bbs/read.php?45,18361 AI 里面调子最高的一派是 Doug Lenat,他的 cyc 项目进行了多年,获得了政府和许多 high profile sponsors 的多年资助,一直无法实用,尽管他自己10年前就宣扬已经接近应用前夜了。对于 Doug Lenat,我打心底钦佩,这种基于常识推理的 AI 需要苦功夫,是对人的智能(一个侧面)的逼真模拟。 多数学者对此不以为然,对这种 “纯粹AI” 不看好,大家大都转向以统计为基础的机器学习 (ML)。基本上是把人的智能看成黑箱,不再试图从本质上模拟人脑的过程,包括逻辑推理,而是把每一个具体的智能活动定义为一个任务,一个从输入转换成所求的输出的任务,而这是可以客观度量的。只要机器能够训练成尽可能逼近所需的输出,人的智能就局部实现了。 ML 和 NLP 如今,NLP(包括机器翻译MT)也基本上已经被搞机器学习的人统治了,传统的规则方法只能打边鼓。他们也确实弄出一些名堂来,尤其是语音处理,分类(classification),和知识习得(knowledge acquisition) 方面。 目前的情况是,有指导的学习(supervised learning) 比较成熟,但遭遇知识瓶颈,就是需要大数据量的 labeled data 的问题。如果问题单纯,features 选取容易,又有海量数据,学习的结果真地可以很接近人工水平。我们曾经做过一项研究(碰巧的是,IBM 也大体同时做了这项研究,不如我们深入,但大同小异,结果也类似),找到了一个很好的应用领域做大小写恢复工作(Case Restoration),效果奇好。过去很多档案文字的电子版本是全大写的,网络上现在还有很多文件也是不分大小写的(譬如很多语音识别出来的材料,标题,还有论坛和电子邮件的非正式文字,等等),这就给自然语言处理和信息抽取造成困难,因为多数语言处理系统 assume 的 input 是正常大小写夹杂的文字,一旦输入文件没有大小写的区别,一切就乱套了。连最基础的词类区分(POS: Part-of-Speech tagging)和专名识别(NE: named entity tagging)都寸步难行(因为最重要的一个识别专名边界的clue就是大写)。为了解决这个问题,以前的研究者就设计两套系统,比如BBN就把大小写的features统统弃置重新训练一套NE系统来对付没有大小写的input, 除了 overhead, 系统性能也下降很多。我们想,如果我们先把大小写恢复,然后再做 NLP 不就成了。这个恢复大小写的任务相对比较单纯,训练文本几乎是无限的,因为网上文字大多是区分大小写的。我们利用这些现成的 labeled data, 用最简单的HMM算法,学出了一个高效能的系统,解决了这个问题,结果超出预料地好。(Niu, C., W. Li, J. Ding, and R. Rohini. 2004. Orthographic Case Restoration Using Supervised Learning Without Manual Annotation. International Journal of Artificial Intelligence Tools, Vol. 13, No. 1, 2004.) 不过,这样讨巧的事并不多 (一个类似可以讨巧的是某些classification的任务:比如想训练一个给评语分类的系统,就可以上网找到很多客户回馈的记录,这些记录除了文字外,常常还有星号标识,以1个星号表示很差,5星表示很好)。多数任务会遇到 lebeling data 的瓶颈。统计界的共识之一就是,data, data and data. 很多时候,算法的优劣是其次的,主要还是要足够多的 data 和合适的 feature design. 数据量大了,学习的效果自然就好了。所以,labeled data 是 supervised learning 的真正知识瓶颈。我就见过这样的系统,本来是指望随时重新训练以适应新情况的,结果 data 跟不上,成了一个只训练一次的死系统,任何后续的改进都不是经过增加数据重新训练,而是在系统外部打各种补丁。机器学习的优势就失去了。 无须指导的学习(Unsupervised learning) 因此引起学者的兴趣,成为热点,因为所需的训练材料无须标注。在网络世界,有的是 raw data. 对某个对象进行 clustering 就可以用 unsupervised leaning, 出了很多有意思的结果。Clustering 有别于 classification, 前者没有预定一个目标,而是根据features,只要长得象的就归在一起,后者是有预定的 tag set 作为分类的目标。只要设计者心中有个大致的目标,features 选取得当,可以控制 clustering 的结果的粗细,然后去现实世界或使用者中印证clustering的合理性和含义。反正是 unsupervised learning, 不妨多来几次,选取最好的结果作为方向,这样就可以把 clustering 转化成具有广泛应用的 classification. (在人类智能活动中,分类是最常用的技能,也是应用最广泛,相对单纯,比较易于机器学习和模拟成功的任务。大千世界,林林总总,为了把握它,人类第一个要做的就是分类。分类以后,才好缩小范围,集中到某个子领域,钻进去仔细分析。) 正如自如所述,目前很多研究者对所谓 weakly supervised learning 情有独衷,觉得这是一个具有突破性的研究方向。传统的 supervised learning 有知识瓶颈而为人诟病,完全没有指导的学习效率不高,因此尝试利用有限 labeled data 作为种子(seeds), 怎样引导学习程序一步一步向指定方向去,这是一个充满魅力的路子。这方面的成果令人鼓舞,但总体还在探索阶段,只有少部分课题已经接近临床实用,譬如分类和词典习得(lexicon acqusition). 机器学习的缺点和局限等有时间再接着谈。先说一点,任务一复杂,ML 就麻烦。遇到复杂的难以分解的任务,基本是没戏,譬如 自然语言的深度结构分析(deep parsing)。而任务相对单纯的浅层分析(shallow parsing),ML 的效果就很好,可以媲美人工系统。 Comments (4) liwei 12月 6th, 2008 at 6:09 am edit easy way, hard way (152881) Posted by: liwei999 Date: May 13, 2008 08:23PM 世界上很多事,there is an easy way and there is a hard way. 如果在 easy way 还没有穷尽的时候,还有很大余地的时候,去走吧 hard way, 不但不 cost-effective. 而且往往失败。Traditoonal AI 和 cyc 就是走 hard way 的,精神可嘉,作为研究探索也很可贵,但到处宣扬可以应用,就走偏了,有骗钱的嫌疑。 有空举一些例子说明,什么叫easy way, hard way. 对于NLP, 原则是可以辞典解决的,不用规则解决;可以浅层解决的,不深层解决;可以句法解决的,不用语义解决;可以句子内解决,不跨句解决; 可以语言学内解决的,不要运用知识推理; 可以在专业领域解决,不要用常识推理。 我的看法是一以贯之的: “除了上述的两极, 人们根据转换所处的层次, 把机器翻译系统大致分为三代: 第I代是词对词的线性翻译, 其核心是一部双语词典, 加上简单的形态加工(削尾 和加尾)。I代系统不能重新安排词序, 不能识别结构同形, 更谈不上多义词区分。 第II代系统强调句法分析, 因此能够求解出句子的表层结构及元素间的句法关系 (分析结果通常表现为带有节点信息的结构树), 从而可以根据源语和目标语的对比差异进行句法结构的转换和词序调整, 这就从线性翻译飞跃到有结构层次的平面翻译。 然而, 在没有语义的参与下, 虽然可以识别句法结构的同形, 但却不能从中作出合适的选择; 多义词区分问题也基本上无法解决。 第III代系统以语义分析为主, 着重揭示语句的深层结构及元素间的逻辑关系,可 以解决大部分结构同形和多义词区分问题。 目前, 多数机器翻译系统处于II代,或II代和III代之间。纯粹以语义分析为核心 的III代系统只做过小规模的实验(Wilks, 1971), 但也取得了令人瞩目的成就。从工程和实用考虑, 大型商品化机译系统的研制, 采用句法分析与语义分析相结合的方法,是比较切合目前的研究水平和实际需要的。“ 摘自【立委科普:机器翻译】: http://www.starlakeporch.net/bbs/read.php?45,18361 mendel 12月 6th, 2008 at 9:31 am edit ding! liwei 12月 6th, 2008 at 10:16 am edit 谢小孟鼓励。 liwei 12月 6th, 2008 at 3:00 pm edit 以前断续写过一些随笔。 (899 bytes) Posted by: 立委 Date: September 22, 2008 12:18AM 不外是两个路子,基于语法规则的路子,基于统计的机器学习(ML)路子,或者是二者的某种结合。不过,语法的路子并不大用乔姆斯基的转换生成语法。除了教授在实验室做玩具系统外,应用系统中最多用最熟练的是基于模式匹配的有限状态自动机(FSA)的formalism,而不是常提到的上下文自由语法。 自然语言理解(NLU)的核心是自动句法分析(parsing). 这个领域的发展使得 parsing 这样一个繁复的的任务逐渐细化成由浅及深的很多子任务,从词类识别(Part-of-speech tagging),基本短语抱团(phrase chunking), 到句法主谓宾关系(SVO parsing), 语义角色标注(Role Labeling)等等。这就为系统的模块化创造了条件,有利于软件系统的开发和维护。通常的做法是为每个子任务编制模式匹配规则,构成一个一环套一环的系列(pipeline structure), 前一个模块的输出就是下一个模块的输入, 搭积木一样构筑语言理解的大厦(via some form of cascaded FSAs)。 随着硬件的飞速发展,parsing 已经可以处理海量数据(terabyte 量级),应用型开发不再是梦想了。
个人分类: 立委科普|12847 次阅读|3 个评论
[转载]数学之美番外篇:平凡而又神奇的贝叶斯方法[ZZ]
timy 2010-1-28 12:45
From: http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/ 概率论只不过是把常识用数学公式表达了出来。 拉普拉斯 记得读本科的时候,最喜欢到城里的计算机书店里面去闲逛,一逛就是好几个小时;有一次,在书店看到一本书,名叫贝叶斯方法。当时数学系的课程还没有学到概率统计。我心想,一个方法能够专门写出一本书来,肯定很牛逼。后来,我发现当初的那个朴素归纳推理成立了这果然是个牛逼的方法。 题记 目录 0.前言 1.历史 1.1一个例子:自然语言的二义性 1.2贝叶斯公式 2.拼写纠正 3.模型比较与贝叶斯奥卡姆剃刀 3.1再访拼写纠正 3.2模型比较理论(ModelComparasion)与贝叶斯奥卡姆剃刀(BayesianOccamsRazor) 3.3最小描述长度原则 3.4最优贝叶斯推理 4.无处不在的贝叶斯 4.1中文分词 4.2统计机器翻译 4.3贝叶斯图像识别,AnalysisbySynthesis 4.4EM算法与基于模型的聚类 4.5最大似然与最小二乘 5.朴素贝叶斯方法(又名愚蠢者的贝叶斯(idiotsbayes)) 5.1垃圾邮件过滤器 5.2为什么朴素贝叶斯方法令人诧异地好一个理论解释 6.层级贝叶斯模型 6.1隐马可夫模型(HMM) 7.贝叶斯网络 0. 前言 这是一篇关于贝叶斯方法的科普文,我会尽量少用公式,多用平白的语言叙述,多举实际例子。更严格的公式和计算我会在相应的地方注明参考资料。贝叶斯方法被证明是非常general且强大的推理框架,文中你会看到很多有趣的应用。 1. 历史 托马斯贝叶斯(ThomasBayes)同学的详细生平在这里。以下摘一段wikipedia上的简介: 所谓的贝叶斯方法源于他生前为解决一个逆概问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算正向概率,如假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大。而一个自然而然的问题是反过来:如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测。这个问题,就是所谓的逆概问题。 实际上,贝叶斯当时的论文只是对这个问题的一个直接的求解尝试,并不清楚他当时是不是已经意识到这里面包含着的深刻的思想。然而后来,贝叶斯方法席卷了概率论,并将应用延伸到各个问题领域,所有需要作出概率预测的地方都可以见到贝叶斯方法的影子,特别地,贝叶斯是机器学习的核心方法之一。这背后的深刻原因在于,现实世界本身就是不确定的,人类的观察能力是有局限性的(否则有很大一部分科学就没有必要做了设想我们能够直接观察到电子的运行,还需要对原子模型争吵不休吗?),我们日常所观察到的只是事物表面上的结果,沿用刚才那个袋子里面取球的比方,我们往往只能知道从里面取出来的球是什么颜色,而并不能直接看到袋子里面实际的情况。这个时候,我们就需要提供一个猜测(hypothesis,更为严格的说法是假设,这里用猜测更通俗易懂一点),所谓猜测,当然就是不确定的(很可能有好多种乃至无数种猜测都能满足目前的观测), 但也绝对不是两眼一抹黑瞎蒙具体地说,我们需要做两件事情:1.算出各种不同猜测的可能性大小。2.算出最靠谱的猜测是什么。第一个就是计算特定猜测的后验概率,对于连续的猜测空间则是计算猜测的概率密度函数。第二个则是所谓的模型比较,模型比较如果不考虑先验概率的话就是最大似然方法。 1.1 一个例子:自然语言的二义性 下面举一个自然语言的不确定性的例子。当你看到这句话: Thegirlsawtheboywithatelescope. 你对这句话的含义有什么猜测?平常人肯定会说:那个女孩拿望远镜看见了那个男孩(即你对这个句子背后的实际语法结构的猜测是:Thegirlsaw-with-a-telescopetheboy)。然而,仔细一想,你会发现这个句子完全可以解释成:那个女孩看见了那个拿着望远镜的男孩(即:Thegirlsawthe-boy-with-a-telescope)。那为什么平常生活中我们每个人都能够迅速地对这种二义性进行消解呢?这背后到底隐藏着什么样的思维法则?我们留到后面解释。 1.2 贝叶斯公式 贝叶斯公式是怎么来的? 我们还是使用wikipedia上的一个例子: 一所学校里面有60%的男生,40%的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大,这个就是前面说的正向概率的计算。然而,假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是男生的概率是多大吗? 一些认知科学的研究表明(《决策与判断》以及《RationalityforMortals》第12章:小孩也可以解决贝叶斯问题),我们对形式化的贝叶斯问题不擅长,但对于以频率形式呈现的等价问题却很擅长。在这里,我们不妨把问题重新叙述成:你在校园里面随机游走,遇到了N个穿长裤的人(仍然假设你无法直接观察到他们的性别),问这N个人里面有多少个女生多少个男生。 你说,这还不简单:算出学校里面有多少穿长裤的,然后在这些人里面再算出有多少女生,不就行了? 我们来算一算:假设学校里面人的总数是U个。60%的男生都穿长裤,于是我们得到了U*P(Boy)*P(Pants|Boy)个穿长裤的(男生)(其中P(Boy)是男生的概率=60%,这里可以简单的理解为男生的比例;P(Pants|Boy)是条件概率,即在Boy这个条件下穿长裤的概率是多大,这里是100%,因为所有男生都穿长裤)。40%的女生里面又有一半(50%)是穿长裤的,于是我们又得到了U*P(Girl)*P(Pants|Girl)个穿长裤的(女生)。加起来一共是U*P(Boy)*P(Pants|Boy)+U*P(Girl)*P(Pants|Girl)个穿长裤的,其中有U*P(Girl)*P(Pants|Girl)个女生。两者一比就是你要求的答案。 下面我们把这个答案形式化一下:我们要求的是P(Girl|Pants)(穿长裤的人里面有多少女生),我们计算的结果是U*P(Girl)*P(Pants|Girl)/ 。容易发现这里校园内人的总数是无关的,可以消去。于是得到 P(Girl|Pants)=P(Girl)*P(Pants|Girl)/ 注意,如果把上式收缩起来,分母其实就是P(Pants),分子其实就是P(Pants,Girl)。而这个比例很自然地就读作:在穿长裤的人(P(Pants))里面有多少(穿长裤)的女孩(P(Pants,Girl))。 上式中的Pants和Boy/Girl可以指代一切东西,所以其一般形式就是: P(B|A)=P(A|B)*P(B)/ 收缩起来就是: P(B|A)=P(AB)/P(A) 其实这个就等于: P(B|A)*P(A)=P(AB) 难怪拉普拉斯说 概率论只是把常识用数学公式表达了出来 。 然而,后面我们会逐渐发现,看似这么平凡的贝叶斯公式,背后却隐含着非常深刻的原理。 2. 拼写纠正 经典著作《人工智能:现代方法》的作者之一PeterNorvig曾经写过一篇介绍如何写一个拼写检查/纠正器的文章(原文在这里,徐宥的翻译版在这里,这篇文章很深入浅出,强烈建议读一读),里面用到的就是贝叶斯方法,这里我们不打算复述他写的文章,而是简要地将其核心思想介绍一下。 首先,我们需要询问的是: 问题是什么? 问题是我们看到用户输入了一个不在字典中的单词,我们需要去猜测:这个家伙到底真正想输入的单词是什么呢?用刚才我们形式化的语言来叙述就是,我们需要求: P( 我们猜测他想输入的单词|他实际输入的单词) 这个概率。并找出那个使得这个概率最大的猜测单词。显然,我们的猜测未必是唯一的,就像前面举的那个自然语言的歧义性的例子一样;这里,比如用户输入:thew,那么他到底是想输入the,还是想输入thaw?到底哪个猜测可能性更大呢?幸运的是我们可以用贝叶斯公式来直接出它们各自的概率,我们不妨将我们的多个猜测记为h1h2..(h代表hypothesis),它们都属于一个有限且离散的猜测空间H(单词总共就那么多而已),将用户实际输入的单词记为D(D代表Data,即观测数据),于是 P( 我们的猜测1|他实际输入的单词) 可以抽象地记为: P(h1|D) 类似地,对于我们的猜测2,则是P(h2|D)。不妨统一记为: P(h|D) 运用一次贝叶斯公式,我们得到: P(h|D)=P(h)*P(D|h)/P(D) 对于不同的具体猜测h1h2h3..,P(D)都是一样的,所以在比较P(h1|D)和P(h2|D)的时候我们可以忽略这个常数。即我们只需要知道: P(h|D)P(h)*P(D|h)(注:那个符号的意思是正比例于,不是无穷大,注意符号右端是有一个小缺口的。) 这个式子的抽象含义是:对于给定观测数据,一个猜测是好是坏,取决于这个猜测本身独立的可能性大小(先验概率,Prior)和这个猜测生成我们观测到的数据的可能性大小(似然,Likelihood)的乘积。具体到我们的那个thew例子上,含义就是,用户实际是想输入the的可能性大小取决于the本身在词汇表中被使用的可能性(频繁程度)大小(先验概率)和想打the却打成thew的可能性大小(似然)的乘积。 下面的事情就很简单了,对于我们猜测为可能的每个单词计算一下P(h)*P(D|h)这个值,然后取最大的,得到的就是最靠谱的猜测。 一点注记 :Norvig的拼写纠正器里面只提取了编辑距离为2以内的所有已知单词。这是为了避免去遍历字典中每个单词计算它们的P(h)*P(D|h),但这种做法为了节省时间带来了一些误差。但话说回来难道我们人类真的回去遍历每个可能的单词来计算他们的后验概率吗?不可能。实际上,根据认知神经科学的观点,我们首先根据错误的单词做一个bottom-up的关联提取,提取出有可能是实际单词的那些候选单词,这个提取过程就是所谓的基于内容的提取,可以根据错误单词的一些模式片段提取出有限的一组候选,非常快地缩小的搜索空间(比如我输入explaination,单词里面就有充分的信息使得我们的大脑在常数时间内把可能性narrowdown到explanation这个单词上,至于具体是根据哪些线索如音节来提取,又是如何在生物神经网络中实现这个提取机制的,目前还是一个没有弄清的领域)。然后,我们对这有限的几个猜测做一个top-down的预测,看看到底哪个对于观测数据(即错误单词)的预测效力最好,而如何衡量预测效率则就是用贝叶斯公式里面的那个P(h)*P(D|h)了虽然我们很可能使用了一些启发法来简化计算。后面我们还会提到这样的bottom-up的关联提取。 3. 模型比较与奥卡姆剃刀 3.1 再访拼写纠正 介绍了贝叶斯拼写纠正之后,接下来的一个自然而然的问题就来了: 为什么? 为什么要用贝叶斯公式?为什么贝叶斯公式在这里可以用?我们可以很容易地领会为什么贝叶斯公式用在前面介绍的那个男生女生长裤裙子的问题里是正确的。但为什么这里? 为了回答这个问题,一个常见的思路就是想想: 非得这样吗? 因为如果你想到了另一种做法并且证明了它也是靠谱的,那么将它与现在这个一比较,也许就能得出很有价值的信息。那么对于拼写纠错问题你能想到其他方案吗? 不管怎样,一个最常见的替代方案就是,选择离thew的编辑距离最近的。然而the和thaw离thew的编辑距离都是1。这可咋办捏?你说,不慌,那还是好办。我们就看到底哪个更可能被错打为thew就是了。我们注意到字母e和字母w在键盘上离得很紧,无名指一抽筋就不小心多打出一个w来,the就变成thew了。而另一方面thaw被错打成thew的可能性就相对小一点,因为e和a离得较远而且使用的指头相差一个指头(一个是中指一个是小指,不像e和w使用的指头靠在一块神经科学的证据表明紧邻的身体设施之间容易串位)。OK,很好,因为你现在已经是在用最大似然方法了,或者直白一点,你就是在计算那个使得P(D|h)最大的h。 而贝叶斯方法计算的是什么?是P(h)*P(D|h)。多出来了一个P(h)。我们刚才说了,这个多出来的P(h)是特定猜测的先验概率。为什么要掺和进一个先验概率?刚才说的那个最大似然不是挺好么?很雄辩地指出了the是更靠谱的猜测。有什么问题呢?既然这样,我们就从给最大似然找茬开始吧我们假设两者的似然程度是一样或非常相近,这样不就难以区分哪个猜测更靠谱了吗?比如用户输入tlp,那到底是top还是tip?(这个例子不怎么好,因为top和tip的词频可能仍然是接近的,但一时想不到好的英文单词的例子,我们不妨就假设top比tip常见许多吧,这个假设并不影响问题的本质。)这个时候,当最大似然不能作出决定性的判断时,先验概率就可以插手进来给出指示既然你无法决定,那么我告诉你,一般来说top出现的程度要高许多,所以更可能他想打的是top)。 以上只是最大似然的一个问题,即并不能提供决策的全部信息。 最大似然还有另一个问题:即便一个猜测与数据非常符合,也并不代表这个猜测就是更好的猜测,因为这个猜测本身的可能性也许就非常低。比如MacKay在《InformationTheory:InferenceandLearningAlgorithms》里面就举了一个很好的例子:-13711你说是等差数列更有可能呢?还是-X^3/11+9/11*X^2+23/11每项把前项作为X带入后计算得到的数列?此外曲线拟合也是,平面上N个点总是可以用N-1阶多项式来完全拟合,当N个点近似但不精确共线的时候,用N-1阶多项式来拟合能够精确通过每一个点,然而用直线来做拟合/线性回归的时候却会使得某些点不能位于直线上。你说到底哪个好呢?多项式?还是直线?一般地说肯定是越低阶的多项式越靠谱(当然前提是也不能忽视似然P(D|h),明摆着一个多项式分布您愣是去拿直线拟合也是不靠谱的,这就是为什么要把它们两者乘起来考虑。),原因之一就是低阶多项式更常见,先验概率(P(h))较大(原因之二则隐藏在P(D|h)里面),这就是为什么我们要用样条来插值,而不是直接搞一个N-1阶多项式来通过任意N个点的原因。 以上分析当中隐含的哲学是,观测数据总是会有各种各样的误差,比如观测误差(比如你观测的时候一个MM经过你一不留神,手一抖就是一个误差出现了),所以如果过分去寻求能够完美解释观测数据的模型,就会落入所谓的数据过配(overfitting)的境地,一个过配的模型试图连误差(噪音)都去解释(而实际上噪音又是不需要解释的),显然就过犹不及了。所以P(D|h)大不代表你的h(猜测)就是更好的h。还要看P(h)是怎样的。所谓奥卡姆剃刀精神就是说:如果两个理论具有相似的解释力度,那么优先选择那个更简单的(往往也正是更平凡的,更少繁复的,更常见的)。 过分匹配的另一个原因在于当观测的结果并不是因为误差而显得不精确而是因为真实世界中对数据的结果产生贡献的因素太多太多,跟噪音不同,这些偏差是一些另外的因素集体贡献的结果,不是你的模型所能解释的噪音那是不需要解释一个现实的模型往往只提取出几个与结果相关度很高,很重要的因素(cause)。这个时候观察数据会倾向于围绕你的有限模型的预测结果呈正态分布,于是你实际观察到的结果就是这个正态分布的随机取样,这个取样很可能受到其余因素的影响偏离你的模型所预测的中心,这个时候便不能贪心不足地试图通过改变模型来完美匹配数据,因为那些使结果偏离你的预测的贡献因素不是你这个有限模型里面含有的因素所能概括的,硬要打肿脸充胖子只能导致不实际的模型,举个教科书例子:身高和体重的实际关系近似于一个二阶多项式的关系,但大家都知道并不是只有身高才会对体重产生影响,物理世界影响体重的因素太多太多了,有人身材高大却瘦得跟稻草,有人却是横长竖不长。但不可否认的是总体上来说,那些特殊情况越是特殊就越是稀少,呈围绕最普遍情况(胖瘦适中)的正态分布,这个分布就保证了我们的身高体重相关模型能够在大多数情况下做出靠谱的预测。但是刚才说了,特例是存在的,就算不是特例,人有胖瘦,密度也有大小,所以完美符合身高体重的某个假想的二阶多项式关系的人是不存在的,我们又不是欧几里德几何世界当中的理想多面体,所以,当我们对人群随机抽取了N个样本(数据点)试图对这N个数据点拟合出一个多项式的话就得注意,它肯定得是二阶多项式,我们要做的只是去根据数据点计算出多项式各项的参数(一个典型的方法就是最小二乘);它肯定不是直线(我们又不是稻草),也不是三阶多项式四阶多项式..如果硬要完美拟合N个点,你可能会整出一个N-1阶多项式来设想身高和体重的关系是5阶多项式看看? 3.2 模型比较理论(ModelComparasion)与贝叶斯奥卡姆剃刀(BayesianOccamsRazor) 实际上,模型比较就是去比较哪个模型(猜测)更可能隐藏在观察数据的背后。其基本思想前面已经用拼写纠正的例子来说明了。我们对用户实际想输入的单词的猜测就是模型,用户输错的单词就是观测数据。我们通过: P(h|D)P(h)*P(D|h) 来比较哪个模型最为靠谱。前面提到,光靠P(D|h)(即似然)是不够的,有时候还需要引入P(h)这个先验概率。奥卡姆剃刀就是说P(h)较大的模型有较大的优势,而最大似然则是说最符合观测数据的(即P(D|h)最大的)最有优势。整个模型比较就是这两方力量的拉锯。我们不妨再举一个简单的例子来说明这一精神:你随便找枚硬币,掷一下,观察一下结果。好,你观察到的结果要么是正,要么是反(不,不是少林足球那枚硬币:P),不妨假设你观察到的是正。现在你要去根据这个观测数据推断这枚硬币掷出正的概率是多大。根据最大似然估计的精神,我们应该猜测这枚硬币掷出正的概率是1,因为这个才是能最大化P(D|h)的那个猜测。然而每个人都会大摇其头很显然,你随机摸出一枚硬币这枚硬币居然没有反面的概率是不存在的,我们对一枚随机硬币是否一枚有偏硬币,偏了多少,是有着一个先验的认识的,这个认识就是绝大多数硬币都是基本公平的,偏得越多的硬币越少见(可以用一个beta分布来表达这一先验概率)。将这个先验正态分布p()(其中表示硬币掷出正面的比例,小写的p代表这是概率密度函数)结合到我们的问题中,我们便不是去最大化P(D|h),而是去最大化P(D|)*p(),显然=1是不行的,因为P(=1)为0,导致整个乘积也为0。实际上,只要对这个式子求一个导数就可以得到最值点。 以上说的是当我们知道先验概率P(h)的时候,光用最大似然是不靠谱的,因为最大似然的猜测可能先验概率非常小。然而,有些时候,我们对于先验概率一无所知,只能假设每种猜测的先验概率是均等的,这个时候就只有用最大似然了。实际上,统计学家和贝叶斯学家有一个有趣的争论,统计学家说:我们让数据自己说话。言下之意就是要摒弃先验概率。而贝叶斯支持者则说:数据会有各种各样的偏差,而一个靠谱的先验概率则可以对这些随机噪音做到健壮。事实证明贝叶斯派胜利了,胜利的关键在于所谓先验概率其实也是经验统计的结果,譬如为什么我们会认为绝大多数硬币是基本公平的?为什么我们认为大多数人的肥胖适中?为什么我们认为肤色是种族相关的,而体重则与种族无关?先验概率里面的先验并不是指先于一切经验,而是仅指先于我们当前给出的观测数据而已,在硬币的例子中先验指的只是先于我们知道投掷的结果这个经验,而并非先天。 然而,话说回来,有时候我们必须得承认,就算是基于以往的经验,我们手头的先验概率还是均匀分布,这个时候就必须依赖用最大似然,我们用前面留下的一个自然语言二义性问题来说明这一点: Thegirlsawtheboywithatelescope. 到底是Thegirlsaw-with-a-telescopetheboy这一语法结构,还是Thegirlsawthe-boy-with-a-telescope呢?两种语法结构的常见程度都差不多(你可能会觉得后一种语法结构的常见程度较低,这是事后偏见,你只需想想Thegirlsawtheboywithabook就知道了。当然,实际上从大规模语料统计结果来看后一种语法结构的确稍稍不常见一丁点,但是绝对不足以解释我们对第一种结构的强烈倾向)。那么到底为什么呢? 我们不妨先来看看MacKay在书中举的一个漂亮的例子: 图中有多少个箱子?特别地,那棵书后面是一个箱子?还是两个箱子?还是三个箱子?还是..你可能会觉得树后面肯定是一个箱子,但为什么不是两个呢?如下图: 很简单,你会说:要是真的有两个箱子那才怪了,怎么就那么巧这两个箱子刚刚好颜色相同,高度相同呢? 用概率论的语言来说,你刚才的话就翻译为:猜测h不成立,因为P(D|h)太小(太巧合)了。我们的直觉是:巧合(小概率)事件不会发生。所以当一个猜测(假设)使得我们的观测结果成为小概率事件的时候,我们就说才怪呢,哪能那么巧捏?! 现在我们可以回到那个自然语言二义性的例子,并给出一个完美的解释了:如果语法结构是Thegirlsawthe-boy-with-a-telecope的话,怎么那个男孩偏偏手里拿的就是望远镜一个可以被用来saw-with的东东捏?这也忒小概率了吧。他咋就不会拿本书呢?拿什么都好。怎么偏偏就拿了望远镜?所以唯一的解释是,这个巧合背后肯定有它的必然性,这个必然性就是,如果我们将语法结构解释为Thegirlsaw-with-a-telescopetheboy的话,就跟数据完美吻合了既然那个女孩是用某个东西去看这个男孩的,那么这个东西是一个望远镜就完全可以解释了(不再是小概率事件了)。 自然语言二义性很常见,譬如上文中的一句话: 参见《决策与判断》以及《RationalityforMortals》第12章:小孩也可以解决贝叶斯问题 就有二义性:到底是参见这两本书的第12章,还是仅仅是第二本书的第12章呢?如果是这两本书的第12章那就是咄咄怪事了,怎么恰好两本书都有第12章,都是讲同一个问题,更诡异的是,标题还相同呢? 注意,以上做的是似然估计(即只看P(D|h)的大小),不含先验概率。通过这两个例子,尤其是那个树后面的箱子的例子我们可以看到,似然估计里面也蕴含着奥卡姆剃刀:树后面的箱子数目越多,这个模型就越复杂。单个箱子的模型是最简单的。似然估计选择了更简单的模型。 这个就是所谓的 贝叶斯奥卡姆剃刀(BayesianOccamsRazor) ,因为这个剃刀工作在贝叶斯公式的似然(P(D|h))上,而不是模型本身(P(h))的先验概率上,后者是传统的奥卡姆剃刀。关于贝叶斯奥卡姆剃刀我们再来看一个前面说到的曲线拟合的例子:如果平面上有N个点,近似构成一条直线,但绝不精确地位于一条直线上。这时我们既可以用直线来拟合(模型1),也可以用二阶多项式(模型2)拟合,也可以用三阶多项式(模型3),..,特别地,用N-1阶多项式便能够保证肯定能完美通过N个数据点。那么,这些可能的模型之中到底哪个是最靠谱的呢?前面提到,一个衡量的依据是奥卡姆剃刀:越是高阶的多项式越是繁复和不常见。然而,我们其实并不需要依赖于这个先验的奥卡姆剃刀,因为有人可能会争辩说:你怎么就能说越高阶的多项式越不常见呢?我偏偏觉得所有阶多项式都是等可能的。好吧,既然如此那我们不妨就扔掉P(h)项,看看P(D|h)能告诉我们什么。我们注意到越是高阶的多项式,它的轨迹弯曲程度越是大,到了八九阶简直就是直上直下,于是我们不仅要问:一个比如说八阶多项式在平面上随机生成的一堆N个点偏偏恰好近似构成一条直线的概率(即P(D|h))有多大?太小太小了。反之,如果背后的模型是一条直线,那么根据该模型生成一堆近似构成直线的点的概率就大得多了。这就是贝叶斯奥卡姆剃刀。 这里只是提供一个关于贝叶斯奥卡姆剃刀的科普,强调直观解释,更多理论公式请参考MacKay的著作《InformationTheory:InferenceandLearningAlgorithms》第28章。 3.3 最小描述长度原则 贝叶斯模型比较理论与信息论有一个有趣的关联: P(h|D)P(h)*P(D|h) 两边求对数,将右式的乘积变成相加: lnP(h|D)lnP(h)+lnP(D|h) 显然,最大化P(h|D)也就是最大化lnP(h|D)。而lnP(h)+lnP(D|h)则可以解释为模型(或者称假设、猜测)h的编码长度加上在该模型下数据D的编码长度。使这个和最小的模型就是最佳模型。 而究竟如何定义一个模型的编码长度,以及数据在模型下的编码长度则是一个问题。更多可参考Mitchell的《MachineLearning》的6.6节,或Mackay的28.3节) 3.4 最优贝叶斯推理 所谓的推理,分为两个过程,第一步是对观测数据建立一个模型。第二步则是使用这个模型来推测未知现象发生的概率。我们前面都是讲的对于观测数据给出最靠谱的那个模型。然而很多时候,虽然某个模型是所有模型里面最靠谱的,但是别的模型也并不是一点机会都没有。譬如第一个模型在观测数据下的概率是0.5。第二个模型是0.4,第三个是0.1。如果我们只想知道对于观测数据哪个模型最可能,那么只要取第一个就行了,故事到此结束。然而很多时候我们建立模型是为了推测未知的事情的发生概率,这个时候,三个模型对未知的事情发生的概率都会有自己的预测,仅仅因为某一个模型概率稍大一点就只听他一个人的就太不民主了。所谓的最优贝叶斯推理就是将三个模型对于未知数据的预测结论加权平均起来(权值就是模型相应的概率)。显然,这个推理是理论上的制高点,无法再优了,因为它已经把所有可能性都考虑进去了。 只不过实际上我们是基本不会使用这个框架的,因为计算模型可能非常费时间,二来模型空间可能是连续的,即有无穷多个模型(这个时候需要计算模型的概率分布)。结果还是非常费时间。所以这个被看作是一个理论基准。 4. 无处不在的贝叶斯 以下我们再举一些实际例子来说明贝叶斯方法被运用的普遍性,这里主要集中在机器学习方面,因为我不是学经济的,否则还可以找到一堆经济学的例子。 4.1 中文分词 贝叶斯是机器学习的核心方法之一。比如中文分词领域就用到了贝叶斯。Google研究员吴军在《数学之美》系列中就有一篇是介绍中文分词的,这里只介绍一下核心的思想,不做赘述,详细请参考吴军的文章(这里)。 分词问题的描述为:给定一个句子(字串),如: 南京市长江大桥 如何对这个句子进行分词(词串)才是最靠谱的。例如: 1.南京市/长江大桥 2.南京/市长/江大桥 这两个分词,到底哪个更靠谱呢? 我们用贝叶斯公式来形式化地描述这个问题,令X为字串(句子),Y为词串(一种特定的分词假设)。我们就是需要寻找使得P(Y|X)最大的Y,使用一次贝叶斯可得: P(Y|X)P(Y)*P(X|Y) 用自然语言来说就是这种分词方式(词串)的可能性乘以这个词串生成我们的句子的可能性。我们进一步容易看到:可以近似地将P(X|Y)看作是恒等于1的,因为任意假想的一种分词方式之下生成我们的句子总是精准地生成的(只需把分词之间的分界符号扔掉即可)。于是,我们就变成了去最大化P(Y),也就是寻找一种分词使得这个词串(句子)的概率最大化。而如何计算一个词串: W1,W2,W3,W4.. 的可能性呢?我们知道,根据联合概率的公式展开:P(W1,W2,W3,W4..)=P(W1)*P(W2|W1)*P(W3|W2,W1)*P(W4|W1,W2,W3)*..于是我们可以通过一系列的条件概率(右式)的乘积来求整个联合概率。然而不幸的是随着条件数目的增加(P(Wn|Wn-1,Wn-2,..,W1)的条件有n-1个),数据稀疏问题也会越来越严重,即便语料库再大也无法统计出一个靠谱的P(Wn|Wn-1,Wn-2,..,W1)来。为了缓解这个问题,计算机科学家们一如既往地使用了天真假设:我们假设句子中一个词的出现概率只依赖于它前面的有限的k个词(k一般不超过3,如果只依赖于前面的一个词,就是2元语言模型(2-gram),同理有3-gram、4-gram等),这个就是所谓的有限地平线假设。虽然这个假设很傻很天真,但结果却表明它的结果往往是很好很强大的,后面要提到的朴素贝叶斯方法使用的假设跟这个精神上是完全一致的,我们会解释为什么像这样一个天真的假设能够得到强大的结果。目前我们只要知道,有了这个假设,刚才那个乘积就可以改写成:P(W1)*P(W2|W1)*P(W3|W2)*P(W4|W3)..(假设每个词只依赖于它前面的一个词)。而统计P(W2|W1)就不再受到数据稀疏问题的困扰了。对于我们上面提到的例子南京市长江大桥,如果按照自左到右的贪婪方法分词的话,结果就成了南京市长/江大桥。但如果按照贝叶斯分词的话(假设使用3-gram),由于南京市长和江大桥在语料库中一起出现的频率为0,这个整句的概率便会被判定为0。从而使得南京市/长江大桥这一分词方式胜出。 一点注记 :有人可能会疑惑,难道我们人类也是基于这些天真的假设来进行推理的?不是的。事实上,统计机器学习方法所统计的东西往往处于相当表层(shallow)的层面,在这个层面机器学习只能看到一些非常表面的现象,有一点科学研究的理念的人都知道:越是往表层去,世界就越是繁复多变。从机器学习的角度来说,特征(feature)就越多,成百上千维度都是可能的。特征一多,好了,高维诅咒就产生了,数据就稀疏得要命,不够用了。而我们人类的观察水平显然比机器学习的观察水平要更深入一些,为了避免数据稀疏我们不断地发明各种装置(最典型就是显微镜),来帮助我们直接深入到更深层的事物层面去观察更本质的联系,而不是在浅层对表面现象作统计归纳。举一个简单的例子,通过对大规模语料库的统计,机器学习可能会发现这样一个规律:所有的他都是不会穿bra的,所有的她则都是穿的。然而,作为一个男人,却完全无需进行任何统计学习,因为深层的规律就决定了我们根本不会去穿bra。至于机器学习能不能完成后者(像人类那样的)这个推理,则是人工智能领域的经典问题。至少在那之前,声称统计学习方法能够终结科学研究(原文)的说法是纯粹外行人说的话。 4.2 统计机器翻译 统计机器翻译因为其简单,自动(无需手动添加规则),迅速成为了机器翻译的事实标准。而统计机器翻译的核心算法也是使用的贝叶斯方法。 问题是什么?统计机器翻译的问题可以描述为:给定一个句子e,它的可能的外文翻译f中哪个是最靠谱的。即我们需要计算:P(f|e)。一旦出现条件概率贝叶斯总是挺身而出: P(f|e)P(f)*P(e|f) 这个式子的右端很容易解释:那些先验概率较高,并且更可能生成句子e的外文句子f将会胜出。我们只需简单统计(结合上面提到的N-Gram语言模型)就可以统计任意一个外文句子f的出现概率。然而P(e|f)却不是那么好求的,给定一个候选的外文局子f,它生成(或对应)句子e的概率是多大呢?我们需要定义什么叫对应,这里需要用到一个分词对齐的平行语料库,有兴趣的可以参考《FoundationsofStatisticalNaturalLanguageProcessing》第13章,这里摘选其中的一个例子:假设e为:JohnlovesMary。我们需要考察的首选f是:JeanaimeMarie(法文)。我们需要求出P(e|f)是多大,为此我们考虑e和f有多少种对齐的可能性,如: John(Jean)loves(aime)Marie(Mary) 就是其中的一种(最靠谱的)对齐,为什么要对齐,是因为一旦对齐了之后,就可以容易地计算在这个对齐之下的P(e|f)是多大,只需计算: P(John|Jean)*P(loves|aime)*P(Marie|Mary) 即可。 然后我们遍历所有的对齐方式,并将每种对齐方式之下的翻译概率求和。便可以获得整个的P(e|f)是多大。 一点注记 :还是那个问题:难道我们人类真的是用这种方式进行翻译的?highlyunlikely。这种计算复杂性非常高的东西连三位数乘法都搞不定的我们才不会笨到去使用呢。根据认知神经科学的认识,很可能我们是先从句子到语义(一个逐层往上(bottom-up)抽象的folding过程),然后从语义根据另一门语言的语法展开为另一门语言(一个逐层往下(top-down)的具体化unfolding过程)。如何可计算地实现这个过程,目前仍然是个难题。(我们看到很多地方都有bottom-up/top-down这样一个对称的过程,实际上有人猜测这正是生物神经网络原则上的运作方式,对视觉神经系统的研究尤其证明了这一点,Hawkins在《OnIntelligence》里面提出了一种HTM(HierarchicalTemporalMemory)模型正是使用了这个原则。) 4.3 贝叶斯图像识别,AnalysisbySynthesis 贝叶斯方法是一个非常general的推理框架。其核心理念可以描述成:AnalysisbySynthesis(通过合成来分析)。06年的认知科学新进展上有一篇paper就是讲用贝叶斯推理来解释视觉识别的,一图胜千言,下图就是摘自这篇paper: 首先是视觉系统提取图形的边角特征,然后使用这些特征自底向上地激活高层的抽象概念(比如是E还是F还是等号),然后使用一个自顶向下的验证来比较到底哪个概念最佳地解释了观察到的图像。 4.4EM 算法与基于模型的聚类 聚类是一种无指导的机器学习问题,问题描述:给你一堆数据点,让你将它们最靠谱地分成一堆一堆的。聚类算法很多,不同的算法适应于不同的问题,这里仅介绍一个基于模型的聚类,该聚类算法对数据点的假设是,这些数据点分别是围绕K个核心的K个正态分布源所随机生成的,使用HanJiaWei的《DataMing:ConceptsandTechniques》中的图: 图中有两个正态分布核心,生成了大致两堆点。我们的聚类算法就是需要根据给出来的那些点,算出这两个正态分布的核心在什么位置,以及分布的参数是多少。这很明显又是一个贝叶斯问题,但这次不同的是,答案是连续的且有无穷多种可能性,更糟的是,只有当我们知道了哪些点属于同一个正态分布圈的时候才能够对这个分布的参数作出靠谱的预测,现在两堆点混在一块我们又不知道哪些点属于第一个正态分布,哪些属于第二个。反过来,只有当我们对分布的参数作出了靠谱的预测时候,才能知道到底哪些点属于第一个分布,那些点属于第二个分布。这就成了一个先有鸡还是先有蛋的问题了。为了解决这个循环依赖,总有一方要先打破僵局,说,不管了,我先随便整一个值出来,看你怎么变,然后我再根据你的变化调整我的变化,然后如此迭代着不断互相推导,最终收敛到一个解。这就是EM算法。 EM的意思是Expectation-Maximazation,在这个聚类问题里面,我们是先随便猜一下这两个正态分布的参数:如核心在什么地方,方差是多少。然后计算出每个数据点更可能属于第一个还是第二个正态分布圈,这个是属于Expectation一步。有了每个数据点的归属,我们就可以根据属于第一个分布的数据点来重新评估第一个分布的参数(从蛋再回到鸡),这个是Maximazation。如此往复,直到参数基本不再发生变化为止。这个迭代收敛过程中的贝叶斯方法在第二步,根据数据点求分布的参数上面。 4.5 最大似然与最小二乘 学过线性代数的大概都知道经典的最小二乘方法来做线性回归。问题描述是:给定平面上N个点,(这里不妨假设我们想用一条直线来拟合这些点回归可以看作是拟合的特例,即允许误差的拟合),找出一条最佳描述了这些点的直线。 一个接踵而来的问题就是,我们如何定义最佳?我们设每个点的坐标为(Xi,Yi)。如果直线为y=f(x)。那么(Xi,Yi)跟直线对这个点的预测:(Xi,f(Xi))就相差了一个Yi=|Yif(Xi)|。最小二乘就是说寻找直线使得(Y1)^2+(Y2)^2+..(即误差的平方和)最小,至于为什么是误差的平方和而不是误差的绝对值和,统计学上也没有什么好的解释。然而贝叶斯方法却能对此提供一个完美的解释。 我们假设直线对于坐标Xi给出的预测f(Xi)是最靠谱的预测,所有纵坐标偏离f(Xi)的那些数据点都含有噪音,是噪音使得它们偏离了完美的一条直线,一个合理的假设就是偏离路线越远的概率越小,具体小多少,可以用一个正态分布曲线来模拟,这个分布曲线以直线对Xi给出的预测f(Xi)为中心,实际纵坐标为Yi的点(Xi,Yi)发生的概率就正比于EXP 。(EXP(..)代表以常数e为底的多少次方)。 现在我们回到问题的贝叶斯方面,我们要想最大化的后验概率是: P(h|D)P(h)*P(D|h) 又见贝叶斯!这里h就是指一条特定的直线,D就是指这N个数据点。我们需要寻找一条直线h使得P(h)*P(D|h)最大。很显然,P(h)这个先验概率是均匀的,因为哪条直线也不比另一条更优越。所以我们只需要看P(D|h)这一项,这一项是指这条直线生成这些数据点的概率,刚才说过了,生成数据点(Xi,Yi)的概率为EXP 乘以一个常数。而P(D|h)=P(d1|h)*P(d2|h)*..即假设各个数据点是独立生成的,所以可以把每个概率乘起来。于是生成N个数据点的概率为EXP *EXP *EXP *..=EXP {- }最大化这个概率就是要最小化(Y1)^2+(Y2)^2+(Y3)^2+..。熟悉这个式子吗? 5. 朴素贝叶斯方法 朴素贝叶斯方法是一个很特别的方法,所以值得介绍一下。我们用朴素贝叶斯在垃圾邮件过滤中的应用来举例说明。 5.1 贝叶斯垃圾邮件过滤器 问题是什么?问题是,给定一封邮件,判定它是否属于垃圾邮件。按照先例,我们还是用D来表示这封邮件,注意D由N个单词组成。我们用h+来表示垃圾邮件,h-表示正常邮件。问题可以形式化地描述为求: P(h+|D)=P(h+)*P(D|h+)/P(D) P(h-|D)=P(h-)*P(D|h-)/P(D) 其中P(h+)和P(h-)这两个先验概率都是很容易求出来的,只需要计算一个邮件库里面垃圾邮件和正常邮件的比例就行了。然而P(D|h+)却不容易求,因为D里面含有N个单词d1,d2,d3,..,所以P(D|h+)=P(d1,d2,..,dn|h+)。我们又一次遇到了数据稀疏性,为什么这么说呢?P(d1,d2,..,dn|h+)就是说在垃圾邮件当中出现跟我们目前这封邮件一模一样的一封邮件的概率是多大!开玩笑,每封邮件都是不同的,世界上有无穷多封邮件。瞧,这就是数据稀疏性,因为可以肯定地说,你收集的训练数据库不管里面含了多少封邮件,也不可能找出一封跟目前这封一模一样的。结果呢?我们又该如何来计算P(d1,d2,..,dn|h+)呢? 我们将P(d1,d2,..,dn|h+)扩展为:P(d1|h+)*P(d2|d1,h+)*P(d3|d2,d1,h+)*..。熟悉这个式子吗?这里我们会使用一个更激进的假设,我们假设di与di-1是完全条件无关的,于是式子就简化为P(d1|h+)*P(d2|h+)*P(d3|h+)*..。这个就是所谓的条件独立假设,也正是朴素贝叶斯方法的朴素之处。而计算P(d1|h+)*P(d2|h+)*P(d3|h+)*..就太简单了,只要统计di这个单词在垃圾邮件中出现的频率即可。关于贝叶斯垃圾邮件过滤更多的内容可以参考这个条目,注意其中提到的其他资料。 一点注记 :这里,为什么有这个数据稀疏问题,还是因为统计学习方法工作在浅层面,世界上的单词就算不再变多也是非常之多的,单词之间组成的句子也是变化多端,更不用说一篇文章了,文章数目则是无穷的,所以在这个层面作统计,肯定要被数据稀疏性困扰。我们要注意,虽然句子和文章的数目是无限的,然而就拿邮件来说,如果我们只关心邮件中句子的语义(进而更高抽象层面的意图(语义,意图如何可计算地定义出来是一个人工智能问题),在这个层面上可能性便大大缩减了,我们关心的抽象层面越高,可能性越小。单词集合和句子的对应是多对一的,句子和语义的对应又是多对一的,语义和意图的对应还是多对一的,这是个层级体系。神经科学的发现也表明大脑的皮层大致有一种层级结构,对应着越来越抽象的各个层面,至于如何具体实现一个可放在计算机内的大脑皮层,仍然是一个未解决问题,以上只是一个原则(principle)上的认识,只有当computational的cortex模型被建立起来了之后才可能将其放入电脑。 5.2 为什么朴素贝叶斯方法令人诧异地好一个理论解释 朴素贝叶斯方法的条件独立假设看上去很傻很天真,为什么结果却很好很强大呢?就拿一个句子来说,我们怎么能鲁莽地声称其中任意一个单词出现的概率只受到它前面的3个或4个单词的影响呢?别说3个,有时候一个单词的概率受到上一句话的影响都是绝对可能的。那么为什么这个假设在实际中的表现却不比决策树差呢?有人对此提出了一个理论解释,并且建立了什么时候朴素贝叶斯的效果能够等价于非朴素贝叶斯的充要条件,这个解释的核心就是:有些独立假设在各个分类之间的分布都是均匀的所以对于似然的相对大小不产生影响;即便不是如此,也有很大的可能性各个独立假设所产生的消极影响或积极影响互相抵消,最终导致结果受到的影响不大。具体的数学公式请参考这篇paper。 6. 层级贝叶斯模型 层级贝叶斯模型是现代贝叶斯方法的标志性建筑之一。前面讲的贝叶斯,都是在同一个事物层次上的各个因素之间进行统计推理,然而层次贝叶斯模型在哲学上更深入了一层,将这些因素背后的因素(原因的原因,原因的原因,以此类推)囊括进来。一个教科书例子是:如果你手头有N枚硬币,它们是同一个工厂铸出来的,你把每一枚硬币掷出一个结果,然后基于这N个结果对这N个硬币的(出现正面的比例)进行推理。如果根据最大似然,每个硬币的不是1就是0(这个前面提到过的),然而我们又知道每个硬币的p()是有一个先验概率的,也许是一个beta分布。也就是说,每个硬币的实际投掷结果Xi服从以为中心的正态分布,而又服从另一个以为中心的beta分布。层层因果关系就体现出来了。进而还可能依赖于因果链上更上层的因素,以此类推。 6.1 隐马可夫模型(HMM) 吴军在数学之美系列里面介绍的隐马可夫模型(HMM)就是一个简单的层级贝叶斯模型: 那么怎么根据接收到的信息来推测说话者想表达的意思呢?我们可以利用叫做隐含马尔可夫模型(HiddenMarkovModel)来解决这些问题。以语音识别为例,当我们观测到语音信号o1,o2,o3时,我们要根据这组信号推测出发送的句子s1,s2,s3。显然,我们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知o1,o2,o3,的情况下,求使得条件概率P(s1,s2,s3,|o1,o2,o3.)达到最大值的那个句子s1,s2,s3, 吴军的文章中这里省掉没说的是,s1,s2,s3,..这个句子的生成概率同时又取决于一组参数,这组参数决定了s1,s2,s3,..这个马可夫链的先验生成概率。如果我们将这组参数记为,我们实际上要求的是:P(S|O,)(其中O表示o1,o2,o3,..,S表示s1,s2,s3,..) 当然,上面的概率不容易直接求出,于是我们可以间接地计算它。利用贝叶斯公式并且省掉一个常数项,可以把上述公式等价变换成 P(o1,o2,o3,|s1,s2,s3.)*P(s1,s2,s3,) 其中 P(o1,o2,o3,|s1,s2,s3.)表示某句话s1,s2,s3被读成o1,o2,o3,的可能性,而P(s1,s2,s3,)表示字串s1,s2,s3,本身能够成为一个合乎情理的句子的可能性,所以这个公式的意义是用发送信号为s1,s2,s3这个数列的可能性乘以s1,s2,s3..本身可以一个句子的可能性,得出概率。 这里,s1,s2,s3本身可以一个句子的可能性其实就取决于参数,也就是语言模型。所以简而言之就是发出的语音信号取决于背后实际想发出的句子,而背后实际想发出的句子本身的独立先验概率又取决于语言模型。 7. 贝叶斯网络 吴军已经对贝叶斯网络作了科普,请直接跳转到这里。更详细的理论参考所有机器学习的书上都有。 参考资料 一堆机器学习,一堆概率统计,一堆Google,和一堆Wikipedia条目,一堆paper。 部分书籍参考《机器学习与人工智能资源导引》。
个人分类: 机器学习|3543 次阅读|0 个评论
[转载]《和机器学习和计算机视觉相关的数学(from LinDahua)》
热度 2 ltl315 2010-1-6 12:57
From: http://dahua.spaces.live.com/default.aspx 1. 线性代数 (Linear Algebra) : 我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要。这门学科对于 Learning 是必备的基础,对它的透彻掌握是必不可少的。我在科大一年级的时候就学习了这门课,后来到了香港后,又重新把线性代数读了一遍,所读的是 Introduction to Linear Algebra (3rd Ed.) by Gilbert Strang. 这本书是 MIT 的线性代数课使用的教材,也是被很多其它大学选用的经典教材。它的难度适中,讲解清晰,重要的是对许多核心的概念讨论得比较透彻。我个人觉得,学习线性代数,最重要的不是去熟练矩阵运算和解方程的方法 —— 这些在实际工作中 MATLAB 可以代劳,关键的是要深入理解几个基础而又重要的概念: 子空间 (Subspace) ,正交 (Orthogonality) ,特征值和特征向量 (Eigenvalues and eigenvectors) ,和线性变换 (Linear transform) 。 从我的角度看来,一本线代教科书的质量,就在于它能否给这些根本概念以足够的重视,能否把它们的联系讲清楚。 Strang 的这本书在这方面是做得很好的。 而且,这本书有个得天独厚的优势。书的作者长期在 MIT 讲授线性代数课 (18.06) ,课程的 video 在 MIT 的 Open courseware 网站上有提供。有时间的朋友可以一边看着名师授课的录像,一边对照课本学习或者复习。 http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/index.htm 2. 概率和统计 (Probability and Statistics): 概率论和统计的入门教科书很多,我目前也没有特别的推荐。我在这里想介绍的是一本关于 多元统计 的基础教科书: Applied Multivariate Statistical Analysis (5th Ed.) by Richard A. Johnson and Dean W. Wichern 这本书是我在刚接触向量统计的时候用于学习的,我在香港时做研究的基础就是从此打下了。实验室的一些同学也借用这本书学习 向量统计 。这本书没有特别追求数学上的深度,而是以通俗易懂的方式讲述主要的基本概念,读起来很舒服,内容也很实用。对于 Linear regression, factor analysis, principal component analysis (PCA), and canonical component analysis (CCA ) 这些 Learning 中的基本方法也展开了初步的论述。 之后就可以进一步深入学习 贝叶斯统计和 Graphical models 。一本理想的书是 Introduction to Graphical Models (draft version). by M. Jordan and C. Bishop. 我不知道这本书是不是已经出版了(不要和 Learning in Graphical Models 混淆,那是个论文集,不适合初学)。这本书从基本的贝叶斯统计模型出发一直深入到复杂的统计网络的估计和推断,深入浅出, statistical learning 的许多重要方面都在此书有清楚论述和详细讲解。 MIT 内部可以 access ,至于外面,好像也是有电子版的。 3. 分析 (Analysis) : 我想大家基本都在大学就学过 微积分或者数学分析,深度和广度 则随各个学校而异了。这个领域是很多学科的基础,值得推荐的教科书莫过于 Principles of Mathematical Analysis, by Walter Rudin 有点老,但是绝对经典,深入透彻。缺点就是比较艰深 —— 这是 Rudin 的书的一贯风格,适合于有一定基础后回头去看。 在分析这个方向,接下来就是 泛函分析 (Functional Analysis) 。 Introductory Functional Analysis with Applications, by Erwin Kreyszig. 适合作为泛函的基础教材,容易切入而不失全面。我特别喜欢它对于 谱论和算子理论 的特别关注,这对于做 learning 的研究是特别重要的。 Rudin 也有一本关于 functional analysis 的书,那本书在数学上可能更为深刻,但是不易于上手,所讲内容和 learning 的切合度不如此书。 在分析这个方向,还有一个重要的学科是 测度理论 (Measure theory) ,但是我看过的书里面目前还没有感觉有特别值得介绍的。 4. 拓扑 (Topology) : 在我读过的基本拓扑书各有特色,但是综合而言,我最推崇: Topology (2nd Ed.) by James Munkres 这本书是 Munkres 教授长期执教 MIT 拓扑课的心血所凝。对于一般拓扑学 (General topology) 有全面介绍,而对于 代数拓扑 (Algebraic topology) 也有适度的探讨。此书不需要特别的数学知识就可以开始学习,由浅入深,从最基本的 集合论概念 (很多书不屑讲这个)到 Nagata-Smirnov Theorem 和 Tychonoff theorem 等较深的定理(很多书避开了这个)都覆盖了。讲述方式 思想性很强 ,对于很多定理,除了给出证明过程和引导你思考其背后的原理脉络,很多令人赞叹的亮点 —— 我常读得忘却饥饿,不愿释手。很多习题很有水平。 5. 流形理论 (Manifold theory) : 对于 拓扑和分析 有 一定把握 时,方可开始学习流形理论,否则所学只能流于浮浅 。我所使用的书是 Introduction to Smooth Manifolds. by John M. Lee 虽然书名有 introduction 这个单词,但是实际上此书涉入很深,除了讲授了基本的 manifold , tangent space , bundle , sub-manifold 等,还探讨了诸如 纲理论 (Category theory) , 德拉姆上同调 (De Rham cohomology) 和 积分流形 等一些比较高级的专题。对于 李群和李代数 也有相当多的讨论。行文通俗而又不失严谨,不过对某些记号方式需要熟悉一下。 虽然 李群论是建基于平滑流形的概念之 上,不过,也可能从 矩阵出发 直接学习 李群和李代数 —— 这种方法对于急需使用李群论解决问题的朋友可能更加实用。而且,对于一个问题从不同角度看待也利于加深理解。下面一本书就是这个方向的典范: Lie Groups, Lie Algebras, and Representations: An Elementary Introduction. by Brian C. Hall 此书从开始即从 矩阵切入 ,从代数而非几何角度引入矩阵李群的概念。并通过 定义运算的方式 建立 exponential mapping ,并就此引入李代数 。这种方式比起传统的通过 “ 左不变向量场 (Left-invariant vector field) “ 的方式定义李代数更容易为人所接受,也更容易揭示 李代数的意义 。最后,也有专门的论述把这种新的定义方式和传统方式联系起来。 ———————————————————————————— 无论是研究 Vision, Learning 还是其它别的学科, 数学终究是根基所在 。 学好数学是做好研究的基石 。 学好数学的关键归根结底是 自己的努力 ,但是选择一本好的书还是大有益处的。不同的人有不同的知识背景,思维习惯和研究方向,因此书的选择也因人而异, 只求适合自己,不必强求一致 。上面的书仅仅是从我个人角度的出发介绍的,我的阅读经历实在非常有限,很可能还有比它们更好的书(不妨也告知我一声,先说声谢谢了)。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Learning 中的 代数结构 的建立 Learning 是一个融会多种数学于一体的领域。说起与此有关的数学学科,我们可能会迅速联想到线性代数以及建立在向量空间基础上的统计模型 —— 事实上,主流的论文中确实在很大程度上基于它们。 R^n (n- 维实向量空间 ) 是我们在 paper 中见到最多的空间,它确实非常重要和实用,但是,仅仅依靠它来描述我们的世界并不足够。事实上,数学家们给我们提供了丰富得多的工具。 “ 空间 ”(space) ,这是一个很有意思的名词,几乎出现在所有的数学分支的基础定义之中。归纳起来,所谓空间就是指一个集合以及在上面定义的某种数学结构。关于这个数学结构的定义或者公理,就成为这个数学分支的基础,一切由此而展开。 还是从我们最熟悉的空间 ——R^n 说起吧。大家平常使用这个空间的时候,除了线性运算,其实还用到了别的数学结构,包括度量结构和内积结构。 · 第一,它是一个 拓扑空间 (Topological space) 。而且从拓扑学的角度看,具有 非常优良的性质 : Normal (implying Hausdorff and Regular) , Locally Compact , Paracompact , with Countable basis , Simply connected (implying connected and path connected) , Metrizable . · 第二,它是一个 度量空间 (Metric space) 。我们可以 计算上面任意两点的距离 。 · 第三,它是一个 有限维向量空间 (Finite dimensional space) 。因此,我们可以对里面的元素进行代数运算(加法和数乘),我们还可以赋予它一组有限的基,从而可以用有限维坐标表达每个元素。 · 第四,基于度量结构和线性运算结构,可以建立起 分析 (Analysis) 体系 。我们可以对连续函数进行微分,积分,建立和求解微分方程,以及进行傅立叶变换和小波分析。 · 第五,它是一个 希尔伯特空间 (也就是 完备的内积空间 ) ( Hilbert space, Complete inner product space ) 。它有一套很方便计算的内积 (inner product) 结构 —— 这个空间的度量结构其实就是从其内积结构诱导出来。更重要的,它是完备的 (Complete)—— 代表任何一个柯西序列 (Cauchy sequence) 都有极限 —— 很多人有意无意中其实用到了这个特性,不过习惯性地认为是理所当然了。 · 第六,它上面的 线性映射构成的算子空间 仍旧是 有限维 的 —— 一个非常重要的好处就是, 所有的线性映射都可以用矩阵唯一表示 。特别的,因为它是有限维完备空间,它的泛函空间和它本身是同构的,也是 R^n 。因而,它们的 谱结构 ,也就可以通过 矩阵的特征值和特征向量获得 。 · 第七,它是一个 测度空间 —— 可以计算 子集的大小(面积 / 体积) 。正因为此,我们才可能在上面建立 概率分布 (distribution) —— 这是我们接触的 绝大多数连续统计模型 的基础。 我们可以看到,这是一个非常完美的空间,为我们的应用在数学上提供了一切的方便,在上面,我们可以理所当然地认为它具有我们希望的各种良好性质,而无须特别的证明;我们可以直接使用它的各种运算结构,而不需要从头建立;而且很多本来不一样的概念在这里变成等价的了,我们因此不再需要辨明它们的区别。 以此为界, Learning 的主要工作分成两个大的范畴: 1. 建立一种表达形式,让它处于上面讨论的 R^n 空间里面。 2. 获得了有限维向量表达后,建立各种代数算法或者统计模型进行分析和处理。 这里只讨论第一个范畴。先看看,目前用得比较广泛的一些方法: 1. 直接基于原始数据建立表达 。我们关心的最终目标是一个个现实世界中的对象:一幅图片,一段语音,一篇文章,一条交易记录,等等。这些东西大部分本身没有附着一个数值向量的。为了构造一个向量表达,我们可以把传感器中记录的数值,或者别的什么方式收集的数值数据按照一定的顺序罗列出来,就形成一个向量了。如果有 n 个数字,就认为它们在 R^n 里面。 不过,这在数学上有一点小问题,在大部分情况下,根据数据产生的物理原理,这些向量的值域并不能充满整个空间。比如图像的像素值一般是正值,而且在一个有界闭集之中。这带来的问题是,对它们进行线性运算很可能得到的结果会溢出正常的范围 —— 在大部分 paper 中,可能只是采用某些 heuristics 的手段进行简单处理,或者根本不管,很少见到在数学上对此进行深入探讨的 —— 不过如果能解决实际问题,这也是无可厚非的,毕竟不是所有的工作都需要像纯数学那样追求严谨。 2. 量化 (quantization) 。这是在处理连续信号时被广泛采用的方式。只是习以为常,一般不提名字而已。比如一个空间信号( Vision 中的 image )或者时间信号,它们的 domain 中的值是不可数无限大的 (uncountably infinite) ,不要说表示为有限维向量,即使表达为无限序列也是不可能的。在这种情况下,一般在有限域内,按照一定顺序每隔一定距离取一个点来代表其周围的点,从而形成有限维的表达。这就是信号在时域或空域的量化。 这样做不可避免要丢失信息。但是,由于小邻域内信号的高度相关,信息丢失的程度往往并不显著。而且,从理论上说,这相当于在频域中的低通过率。对于有限能量的连续信号,不可能在无限高的频域中依然保持足够的强度,只要采样密度足够,丢失的东西可以任意的少。 除了表示信号,对于几何形体的表达也经常使用量化,比如表示 curve 和 surface 。 3. 找出有限个数充分表达一个对象也许不是最困难的 。不过 , 在其上面建立数学结构却未必了。一般来说,我们要对其进行处理,首先需要一个拓扑结构用以描述空间上的点是如何联系在一起。直接建立拓扑结构在数学上往往非常困难,也未必实用。因此,绝大部分工作采取的方式是首先建立度量结构。一个度量空间,其度量会自然地诱导出一个拓扑结构 —— 不过,很多情况下我们似乎会无视它的存在。 最简单的情况,就是使用原始向量表达的欧氏距离 (Euclidean distance) 作为 metric 。不过,由于原始表达数值的不同特性,这种方式效果一般不是特别好,未必能有效表达实际对象的相似性(或者不相似性)。因此,很多工作会有再此基础上进行度量的二次建立。方式是多种多样的,一种是寻求一个映射,把原空间的元素变换到一个新的空间,在那里欧氏距离变得更加合适。这个映射发挥的作用包括对信息进行筛选,整合,对某些部分进行加强或者抑制。这就是大部分关于 feature selection , feature extraction ,或者 subspace learning 的文章所要做的。另外一种方式,就是直接调节距离的计算方式(有些文章称之为 metric learning )。 这两种方式未必是不同的。如果映射是单射,那么它相当于在原空间建立了一个不同的度量。反过来,通过改变距离计算方式建立的度量在特定的条件下对应于某种映射。 4. 大家可能注意到,上面提到的 度量建立方法,比如欧氏距离,它需要对元素进行代数运算 。对于普通的向量空间,线性运算是天然赋予的,我们无须专门建立,所以可以直接进行度量的构造 —— 这也是大部分工作的基础。可是,有些事物其原始表达不是一个 n-tuple ,它可能是一个 set ,一个 graph ,或者别的什么特别的 object 。怎么建立代数运算呢? 一种方法是直接建立。就是给这些东西定义自己的加法和数乘。这往往不是那么直接(能很容易建立的线性运算结构早已经被建立好并广泛应用了),可能需要涉及很深的数学知识,并且要有对问题本身的深入了解和数学上的洞察力。不过,一个新的代数结构一旦建立起来,其它的数学结构,包括拓扑,度量,分析,以及内积结构也随之能被自然地诱导出来,我们也就具有了对这个对象空间进行各种数学运算和操作的基础。加法和数乘看上去简单,但是如果我们对于本来不知道如何进行加法和数乘的空间建立了这两样东西,其理论上的贡献是非常大的。 (一个小问题:大家常用各种 graphical model ,但是,每次这些 model 都是分别 formulate ,然后推导出 estimation 和 evaluation 的步骤方法。是否可能对 "the space of graphical model" 或者它的某个特定子集建立某种代数结构呢?(不一定是线性空间,比如群,环,广群, etc )从而使得它们在代数意义上统一起来,而相应的 estimation 或者 evaluation 也可以用过代数运算 derive 。这不是我的研究范围,也超出了我目前的能力和知识水平,只是我相信它在理论上的重要意义,留作一个远景的问题。事实上,数学中确实有一个分支叫做 Algebraic statistics 可能在探讨类似的问题,不过我现在对此了解非常有限。) 5. 回到我们的正题,除了 直接建立运算定义 ,另外一种方式就是 嵌入 (embedding) 到某个向量空间 ,从而继承其运算结构为我所用。当然这种 嵌入 也不是乱来,它 需要保持原来这些对象的某种关系 。最常见的就是 保距嵌入 (isometric embedding) ,我们 首先 建立 度量结构 ( 绕过向量表达,直接对两个对象的距离通过某种方法进行计算 ), 然后 把这个 空间嵌入到目标空间 ,通常是 有限维向量空间,要求保持度量不变。 “ 嵌入 ” 是一种在数学上应用广泛的手段,其 主要目标 就是 通过嵌入到一个属性良好,结构丰富的空间,从而利用其某种结构或者运算体系 。在拓扑学中, 嵌入到 metric space 是 对某个拓扑空间建立度量的重要手段 。而在这里,我们是已有度量的情况下,通过嵌入获取线性运算的结构。除此以来,还有一种就是前些年比较热的 manifold embedding ,这个是通过保持局部结构的嵌入,获取全局结构,后面还会提到。 6. 接下来的一个重要的代数结构,就是 内积 (inner product) 结构 。内积结构一旦建立,会直接诱导出一种性质良好的度量,就是范数 (norm) ,并且进而诱导出拓扑结构。一般来说,内积需要建立在线性空间的基础上,否则连一个二元运算是否是内积都无法验证。不过, kernel 理论指出,对于一个空间,只要定义一个正定核 (positive kernel)—— 一个符合正定条件的二元运算,就必然存在一个希尔伯特空间,其内积运算等效于核运算。这个结论的重要意义在于,我们可以绕开线性空间,通过首先定义 kernel 的方式,诱导出一个线性空间 ( 叫做再生核希尔伯特空间 Reproducing Kernel Hilbert Space) ,从而我们就自然获得我们所需要的度量结构和线性运算结构。这是 kernel theory 的基础。 在很多教科书中,以二次核为例子,把二维空间变成三维,然后告诉大家 kernel 用于升维。对于这种说法,我一直认为在一定程度上是误导的。事实上, kernel 的最首要意义是内积的建立(或者改造),从而诱导出更利于表达的度量和运算结构。对于一个问题而言,选择一个切合问题的 kernel 比起关注 “ 升维 ” 来得更为重要。 kernel 被视为非线性化的重要手段,用于处理非高斯的数据分布。这是有道理的。通过 nonlinear kernel 改造的内积空间,其结构和原空间的结构确实不是线性关联,从这个意义上说,它实施了非线性化。不过,我们还应该明白,它的最终目标还是要回到线性空间,新的内积空间仍旧是一个线性空间,它一旦建立,其后的运算都是线性的,因此, kernel 的使用就是为了寻求一个新的线性空间,使得线性运算更加合理 —— 非线性化的改造最终仍旧是要为线性运算服务。 值得一提的是, kernelization 本质上说还是一种嵌入过程:对于一个空间先建立内积结构,并且以保持内积结构不变的方式嵌入到一个高维的线性空间,从而继承其线性运算体系。 7. 上面说到的都是从全局的方式建立代数结构的过程,但是那必须以某种全局结构为基础(无论预先定义的是运算,度量还是内积,都必须适用于全空间。)但是,全局结构未必存在或者适合,而局部结构往往简单方便得多。这里就形成一种策略, 以局部而达全局 —— 这就是 流形 (manifold) 的思想 ,而其则根源于拓扑学。 从拓扑学的角度说,流形就是一个非常优良的拓扑空间:符合 Hausdorff 分离公理 ( 任何不同的两点都可以通过不相交的邻域分离 ), 符合第二可数公理( 具有可数的拓扑基 ) ,并且更重要的是,局部同胚于 R^n 。因此,一个正则 (Regular) 流形基本就具有了各种最良好的拓扑特性。而局部同胚于 R^n ,代表了它至少在局部上可以继承 R^n 的各种结构,比如线性运算和内积,从而建立分析体系。事实上,拓扑流形继承这些结构后形成的体系,正是现代流形理论研究的重点。继承了分析体系的流形,就形成了微分流形 (Differential manifold) ,这是现代微分几何的核心。而微分流形各点上的切空间 (Tangent Space) ,则获得了线性运算的体系。而进一步继承了局部内积结构的流形,则形成黎曼流形 (Riemann manifold) ,而流形的全局度量体系 —— 测地距离 (geodesics) 正是通过对局部度量的延伸来获得。进一步的,当流行本身的拓扑结构和切空间上的线性结构发生关系 —— 也就获得一簇拓扑关联的线性空间 —— 向量丛 (Vector bundle) 。 虽然 manifold theory 作为现代几何学的核心,是一个博大精深的领域,但是它在 learning 中的应用则显得非常狭窄。事实上,对于 manifold ,很多做 learning 的朋友首先反应的是 ISOMAP, LLE, eigenmap 之类的算法 。这些都属于 embedding 。当然,这确实是流形理论的一个重要方面。严格来说,这要求是 从原空间到其映像的微分同胚映射 ,因此,嵌入后的空间在局部上具有相同的分析结构,同时也获得了各种好处 —— 全局的线性运算和度量。不过,这个概念在 learning 的应用中被相当程度的放宽了 —— 微分同胚并不能被完全保证,而整个分析结构也不能被完全保持。大家更关注的是保持局部结构中的某个方面 —— 不过这在实际应用中的折衷方案也是可以理解的。事实表明,当原空间中的数据足够密集的情况下,这些算法工作良好。 Learning 中流形应用的真正问题在于它被过滥地运用于 稀疏空间 (Sparse space) ,事实上在高维空间中撒进去几千乃至几十万点,即使最相邻的几点也难称为局部了,局部的范围和全局的范围其实已经没有了根本差别,连局部的概念都立不住脚的时候,后面基于其展开的一切工作也都没有太大的意义。事实上, 稀疏空间有其本身的规律和法则 , 通过局部形成全局的流形思想 从本质上是不适合于此的。虽然,流形是一种非常美的理论,但是再漂亮的理论也需要用得其所 —— 它 应该用于解决具有密集数据分布的低维空间 。至于,一些 paper 所报告的在高维空间(比如人脸)运用流形方法获得性能提升,其实未必是因为 “ 流形 ” 本身所起的作用,而很可能是其它方面的因素。 8. 流形在实际应用中起重要作用的还有两个方面:一个是 研究几何形体的性质 (我们暂且不谈这个),还有就是 它和代数结构的结合形成的李群 (Lie group) 和李代数 (Lie algebra) 。 当我们研究的对象是变换本身的时候,它们构成的空间是有其 特殊性 的,比如 所有子空间投影形成了 Grassmann 流形,所有的可逆线性算子,或者仿射算子,也形成各自的流形 。对他们的 最重要操作是变换的结合 ,而不是加法数乘,因此,它们上面定义的更合适的代数结构应该是 群 和不是线性空间。而 群和微分流形的结合体 —— 李群 则成为它们最合适的描述体系 —— 而 其切空间 则构成了 一种加强的线性空间 : 李代数,用于描述其局部变化特性。 李代数和李群的关系是非常漂亮的。它 把 变换的微变化 转换成了 线性空间的代数运算 ,使得移植传统的基于 线性空间的模型和算法到李空间变得可能 。而且李代数中的矩阵比起变换本身的矩阵甚至更能反映变换的特性。 几何变换的李代数矩阵的谱结构 就能非常方便地用于 分析变换的几何特性 。 最后,回头总结一下关于嵌入这个应用广泛的策略,在 learning 中的 isometry, kernel 和 manifold embedding 都属于此范畴,它们分别 通过保持原空间的 度量结构,内积结构和局部结构 来获得到目标(通常是向量空间)的嵌入,从而获得全局的坐标表达,线性运算和度量,进而能被各种线性算法和模型所应用。 在获得这一系列好处的同时,也有值得我们注意的地方。 首先 , 嵌入只是一种数学手段 ,并不能取代 对问题本身的研究和分析 。一种不恰当的原始结构或者嵌入策略,很多时候甚至适得其反 —— 比如稀疏空间的流形嵌入,或者选取不恰当的 kernel 。另外, 嵌入适合于分析,而未必适合于重建或者合成 。这是因为 嵌入是一个 单射 (injection) ,目标空间不是每一个点都和原空间能有效对应的。嵌入之后的运算往往就打破了原空间施加的限制。比如 两个元素即使都是从原空间映射过来,它们的和却未必有原像,这时就不能直接地回到原空间了 。当然可以考虑在原空间找一个点它的映射与之最近,不过这在实际中的有效性是值得商榷的。 和 Learning 有关的数学世界是非常广博的,我随着学习和研究的深入,越来越发现在一些我平常不注意的数学分支中有着适合于问题的结构和方法。比如, 广群 (groupoid) 和广代数 (algebroid) 能克服李群和李代数在 表示连续变换过程 中的一些困难 —— 这些困难困扰了我很长时间。 解决问题和建立数学模型是相辅相成的 ,一方面,一个 清晰的问题将使我们有明确的目标去寻求合适的数学结构 ,另一方面, 对数学结构的深入理解对于指导问题的解决也是有重要作用的。 对于解决一个问题来说, 数学工具的选择 最重要的是 适合 ,而不是高深,但是如果在现有数学方法陷入困难的时候, 寻求更高级别的数学的帮助,往往能柳暗花明 。数学家长时间的努力解决的很多问题,并不都是理论游戏,他们的解决方案中很多时候蕴含着我们需要的东西,而且可能导致对更多问题的解决 —— 但是我们需要时间去学习和发现它们。 拓扑:游走于直观与抽象之间 近日来,抽空再读了一遍 点集拓扑 (Point Set Topology) ,这是我第三次重新学习这个理论了。我看电视剧和小说,极少能有兴致看第二遍,但是, 对于数学,每看一次都有新的启发和收获 。 代数,分析,和拓扑 ,被称为是 现代数学的 三大柱石 。最初读拓扑,是在两三年前,由于学习流形理论的需要。可是,随着知识的积累,发现它是很多理论的根基。可以说,没有拓扑,就没有现代意义的分析与几何。我们在各种数学分支中接触到的最基本的概念,比如, 极限,连续,距离(度量),边界,路径 ,在现代数学中,都 源于拓扑 。 拓扑学是一门非常奇妙的学科,它把最直观的现象和最抽象的概念联系在一起了。 拓扑描述的 是普遍使用的概念(比如 开集,闭集,连续 ),我们对这些概念习以为常,理所当然地使用着,可是,真要定义它,则需要对它们 本质的最深刻的洞察 。数学家们经过长时间的努力,得到了这些概念的现代定义。这里面很多第一眼看上去,会感觉惊奇 —— 怎么会定义成这个样子。 首先是开集 。在学习初等数学时,我们都学习开区间 (a, b) 。可是,这只是在一条线上的,怎么推广到二维空间,或者更高维空间,或者别的形体上呢?最直观的想法,就是 “ 一个不包含边界的集合 ” 。可是,问题来了,给一个集合,何谓 “ 边界 ” ?在拓扑学里面,开集 (Open Set) 是最根本的概念,它是定义在集合运算的基础上的。它要求开集符合这样的条件: 开集 的 任意并集和有限交集 仍为 开集 。 我最初的时候,对于这样的定义方式,确实百思不解。不过,读下去,看了和做了很多证明后,发现,这样的定义一个 很重要的意义 在于:它 保证了开集中每个点都有一个邻域包含在这个集合内 —— 所有点都和外界(补集)保持距离 。这样的理解应该比使用集合运算的定义有更明晰的几何意义。但是,直观的东西不容易直接形成严谨的定义,使用集合运算则更为严格。而集合运算定义中, 任意并集的封闭性 是对这个 几何特点的内在保证 。 另外一个例子就是 “ 连续函数 ”(Continuous Function) 。在学微积分时,一个耳熟能详的定义是 “ 对任意的 epsilon 0 ,存在 delta 0 ,使得 。。。。 ” ,背后最直观的意思就是 “ 足够近的点保证映射到任意小的范围内 ” 。可是, epsilon, delta 都依赖于实空间,不在实空间的映射又怎么办呢?拓扑的定义是 “ 如果一个映射的值域中任何开集的原象都是开集,那么它连续 。 ” 这里就没有 epsilon 什么事了。 “开集的原象是开集” 这里的关键在于,在拓扑学中,开集的最重要意义就是要传递 “ 邻域 ” 的意思 —— 开集本身就是所含点的邻域 。这样连续定义成这样就顺理成章了。稍微把说法调节一下,上面的定义就变成了 “ 对于 f(x) 的任意邻域 U ,都有 x 的一个邻域 V ,使得 V 里面的点都映射到 U 中 。 ” 这里面,我们可以感受到为什么开集在拓扑学中有根本性的意义。既然开 集传达 “ 邻域 ” 的意思 ,那么,它 最重要的作用 就是 要表达哪些点靠得比较近 。 给出一个拓扑结构,就是要指出哪些是开集,从而指出哪些点靠得比较近,这样就形成了一个聚集结构 —— 这就是拓扑 。 可是这也可以通过距离来描述,为什么要用开集呢,反而不直观了。 某种意义上说, 拓扑是 “ 定性 ” 的, 距离度量是 “ 定量 ” 的。随着连续变形,距离会不断变化,但是靠近的点还是靠近,因此本身固有的拓扑特性不会改变 。拓扑学研究的就是这种本质特性 —— 连续变化中的不变性。 在拓扑的基本概念中,最令人费解的,莫过于 “ 紧性 ”(Compactness) 。它 描述一个空间或者一个集合 “ 紧不紧 ” 。正式的定义是 “ 如果一个集合的任意开覆盖都有有限子覆盖,那么它是紧的 ” 。乍一看,实在有点莫名其妙。它究竟想描述一个什么东西呢?和 “ 紧 ” 这个形容词又怎么扯上关系呢? 一个 直观 一点的理解, 几个集合是 “ 紧 ” 的,就是说,无限个点撒进去,不可能充分散开 。无论邻域多么小,必然有一些邻域里面有无限个点。上面关于 compactness 的这个定义的玄机就在有限和无限的转换中。一个紧的集合,被无限多的小邻域覆盖着,但是,总能找到其中的有限个就能盖全。那么,后果是什么呢? 无限个点撒进去,总有一个邻域包着无数个点。 邻域们再怎么小都是这样 —— 这就保证了无限序列中存在极限点。 Compac t 这个概念虽然有点不那么直观,可是 在分析中有着无比重要的作用 。因为它 关系到极限的存在性 —— 这是数学分析的基础。了解泛函分析的朋友都知道, 序列是否收敛 ,很多时候就看它了。微积分中,一个重要的定理 —— 有界数列必然包含收敛子列 ,就是根源于此。 在学习拓扑,或者其它现代数学理论之前,我们的数学一直都在 有限维欧氏空间 之中,那是一个完美的世界,具有一切良好的属性, Hausdorff, Locally compact, Simply connected , Completed ,还有一 套线性代数结构 ,还有良好定义的 度量,范数,与内积 。可是,随着研究的加深,终究还是要走出这个圈子。这个时候,本来理所当然的东西,变得不那么必然了。 · 两个点必然能分开?你要证明空间是 Hausdorff 的。 · 有界数列必然存在极限点?这只在 locally compact 的空间如此。 · 一个连续体内任意两点必然有路径连接?这可未必。 一切看上去有悖常理,而又确实存在。从 线性代数 到 一般的群 ,从 有限维 到 无限维 ,从 度量空间 到 拓扑空间 ,整个认识都需要重新清理。而且,这些绝非仅是数学家的概念游戏,因为我们的世界不是有限维向量能充分表达的。当我们研究一些不是向量能表达的东西的时候,度量,代数,以及分析的概念,都要重新建立,而 起点就在 拓扑 。 和机器学习和计算机视觉相关的数学(转载) (以下转自一位 MIT 牛人的空间文章,写得很实际:) 作者: Dahua 感觉数学似乎总是不够的。这些日子为了解决 research 中的一些问题,又在图书馆捧起了数学的教科书。从大学到现在,课堂上学的和自学的数学其实不算少了,可是在研究的过程中总是发现需要补充新的数学知识。 Learning 和 Vision 都是很多种数学的交汇场。看着不同的理论体系的交汇,对于一个 researcher 来说,往往是非常 exciting 的 enjoyable 的事情。不过,这也代表着要充分了解这个领域并且取得有意义的进展是很艰苦的。 记得在两年前的一次 blog 里面,提到过和 learning 有关的数学。今天看来,我对于数学在这个领域的作用有了新的思考。 对于 Learning 的研究, 1 、 Linear Algebra ( 线性代数 ) 和 Statistics ( 统计学 ) 是最重要和不可缺少的。 这代表了 Machine Learning 中最主流的两大类方法的基础。一种是以 研究函数和变换 为重点的 代数方法 ,比如 Dimension reduction , feature extraction , Kernel 等,一种是以 研究统计模型和样本分布 为重点的 统计方法 ,比如 Graphical model, Information theoretical models 等。它们侧重虽有不同,但是常常是共同使用的, 对于 代数方法 ,往往需要 统计上的解释 ,对于 统计模型 ,其 具体计算则需要代数的帮助 。 以代数和统计为出发点,继续往深处走,我们会发现需要更多的数学。 2 、 Calculus ( 微积分 ) ,只是数学分析体系的基础。 其基础性作用不言而喻。 Learning 研究的大部分问题是在连续的度量空间进行的,无论代数还是统计,在研究优化问题的时候,对一个 映射的微分或者梯度的分析 总是不可避免。而在统计学中, Marginalization 和积分 更是密不可分 —— 不过,以解析形式把积分导出来的情况则不多见。 3 、 Partial Differential Equation (偏微分方程 ) , 这主要用于 描述动态过程 ,或者 仿动态过程 。这个学科在 Vision 中用得比 Learning 多,主要用于 描述连续场的运动或者扩散过程 。比如 Level set, Optical flow 都是这方面的典型例子。 4 、 Functional Analysis ( 泛函分析 ) , 通俗地,可以理解为 微积分 从 有限维 空间到 无限维 空间的 拓展 —— 当然了,它实际上远不止于此。在这个地方,函数以及其所作用的对象之间存在的对偶关系扮演了非常重要的角色。 Learning 发展至今,也在向无限维延伸 —— 从研究 有限维向量 的问题到 以无限维的函数 为 研究对象 。 Kernel Learning 和 Gaussian Process 是其中典型的例子 —— 其中的核心概念都是 Kernel 。很多做 Learning 的人把 Kernel 简单理解为 Kernel trick 的运用,这就把 kernel 的意义严重弱化了。在 泛函 里面, Kernel (Inner Product) 是 建立整个博大的代数体系的根本 ,从 metric, transform 到 spectrum 都根源于此。 5 、 Measure Theory ( 测度理论 ) , 这是和实分析关系非常密切的学科。但是测度理论并不限于此。从某种意义上说, Real Analysis 可以从 Lebesgue Measure (勒贝格测度) 推演,不过其实还有很多别的测度体系 —— 概率 本身就是一种 测度 。测度理论对于 Learning 的意义是根本的, 现代统计学 整个就是建立在 测度理论的基础之上 —— 虽然初级的概率论教科书一般不这样引入。在看一些统计方面的文章的时候,你可能会发现,它们会把统计的公式改用测度来表达,这样做有两个好处:所有的推导和结论不用分别给连续分布和离散分布各自写一遍了,这两种东西都可以用同一的测度形式表达: 连续分布的积分 基于 Lebesgue 测度 , 离散分布的求和 基于 计数测度 ,而且还能推广到那种既不连续又不离散的分布中去(这种东西不是数学家的游戏,而是已经在实用的东西,在 Dirchlet Process 或者 Pitman-Yor Process 里面会经常看到 ) 。而且,即使是连续积分,如果不是在欧氏空间进行,而是在更一般的拓扑空间(比如微分流形或者变换群),那么传统的黎曼积分(就是大学一年级在微积分课学的那种)就不 work 了,你可能需要它们的一些推广,比如 Haar Measure 或者 Lebesgue-Stieltjes 积分 。 6 、 Topology (拓扑学 ) , 这是学术中很基础的学科。它一般不直接提供方法,但是它的很多概念和定理是其它数学分支的基石。看很多别的数学的时候,你会经常接触这样一些概念: Open set / Closed set , set basis , Hausdauf, continuous function , metric space, Cauchy sequence, neighborhood, compactness, connectivity 。很多这些也许在大学一年级就学习过一些,当时是基于极限的概念获得的。如果,看过拓扑学之后,对这些概念的认识会有根本性的拓展。比如,连续函数,当时是由 epison 法定义的,就是无论取多小的正数 epsilon ,都存在 xxx ,使得 xxx 。这是需要一种 metric 去度量距离的,在 general topology 里面,对于连续函数的定义连坐标和距离都不需要 —— 如果 一个映射使得开集的原像是开集 ,它就是 连续 的 —— 至于开集是基于集合论定义的,不是通常的 开区间 的意思。这只是最简单的例子。当然,我们研究 learning 也许不需要深究这些数学概念背后的公理体系,但是,打破原来定义的概念的局限在很多问题上是必须的 —— 尤其是当你研究的东西它不是在欧氏空间里面的时候 —— 正交矩阵,变换群,流形,概率分布的空间 ,都属于此。 7 、 Differential Manifold ( 微分流形 ) , 通俗地说它研究的是平滑的曲面。一个直接的印象是它是不是可以用来 fitting 一个 surface 什么的 —— 当然这算是一种应用,但是这是非常初步的。 本质上说 , 微分流形研究的是 平滑的拓扑结构 。一个 空间构成微分流形 的基本要素是 局部平滑 :从 拓扑学 来理解,就是它的 任意局部都同胚于欧氏空间 ,从 解析 的角度来看,就是 相容的局部坐标系统 。当然,在全局上,它不要求和欧氏空间同胚。它除了可以用于刻画集合上的平滑曲面外,更重要的意义在于,它可以用于研究很多重要的集合。一个 n- 维线性空间的全部 k- 维子空间 (k 8 、 Lie Group Theory ( 李群论 ) , 一般意义的群论在 Learning 中被运用的不是很多,群论在 Learning 中用得较多的是它的一个重要方向 Lie group 。定义在平滑流形上的群,并且其群运算是平滑的话,那么这就叫李群。因为 Learning 和编码不同,更多关注的是连续空间,因为 Lie group 在各种群中对于 Learning 特别重要。各种子空间,线性变换,非奇异矩阵都基于通常意义的矩阵乘法构成李群。在李群中的映射,变换,度量,划分等等都对于 Learning 中代数方法的研究有重要指导意义。 9 、 Graph Theory (图论 ) , 图,由于它在表述各种关系的强大能力以及优雅的理论,高效的算法,越来越受到 Learning 领域的欢迎。经典图论,在 Learning 中的一个最重要应用就是 graphical models 了,它被成功运用于分析统计网络的结构和规划统计推断的流程。 Graphical model 所取得的成功,图论可谓功不可没。在 Vision 里面, maxflow (graphcut) 算法在图像分割, Stereo 还有各种能量优化中也广受应用。另外一个重要的图论分支就是 Algebraic graph theory ( 代数图论 ) ,主要运用于图的谱分析,著名的应用包括 Normalized Cut 和 Spectral Clustering 。近年来在 semi-supervised learning 中受到特别关注。 这是大牛们做的很好的综述啊! 据说,是 MIT 一牛人对数学在机器学习中的作用给的评述 ! 本人学习并整理于2010-01-01
个人分类: 生活点滴|19322 次阅读|3 个评论
List of Conferences and Workshops Where Transfer Learning Paper Appear
timy 2009-11-6 10:49
From: http://www.cse.ust.hk/~sinnopan/conferenceTL.htm List of Conferences and Workshops Where Transfer Learning Paper Appear This webpage will be updated regularly. Main Conferences Machine Learning and Artificial Intelligence Conferences AAAI 2008 Transfer Learning via Dimensionality Reduction Transferring Localization Models across Space Transferring Localization Models over Time Transferring Multi-device Localization Models using Latent Multi-task Learning Text Categorization with Knowledge Transfer from Heterogeneous Data Sources Zero-data Learning of New Tasks 2007 Transferring Naive Bayes Classifiers for Text Classification Mapping and Revising Markov Logic Networks for Transfer Learning Measuring the Level of Transfer Learning by an AP Physics Problem-Solver 2006 Using Homomorphisms to Transfer Options across Continuous Reinforcement Learning Domains Value-Function-Based Transfer for Reinforcement Learning Using Structure Mapping IJCAI 2009 Transfer Learning Using Task-Level Features with Application to Information Retrieval Transfer Learning from Minimal Target Data by Mapping across Relational Domains Domain Adaptation via Transfer Component Analysis Knowledge Transfer on Hybrid Graph Manifold Alignment without Correspondence Robust Distance Metric Learning with Auxiliary Knowledge Can Movies and Books Collaborate? Cross-Domain Collaborative Filtering for Sparsity Reduction Exponential Family Sparse Coding with Application to Self-taught Learning 2007 Learning and Transferring Action Schemas General Game Learning Using Knowledge Transfer Building Portable Options: Skill Transfer in Reinforcement Learning Transfer Learning in Real-Time Strategy Games Using Hybrid CBR/RL An Experts Algorithm for Transfer Learning Transferring Learned Control-Knowledge between Planners Effective Control Knowledge Transfer through Learning Skill and Representation Hierarchies Efficient Bayesian Task-Level Transfer Learning ICML 2009 Deep Transfer via Second-Order Markov Logic Feature Hashing for Large Scale Multitask Learning A Convex Formulation for Learning Shared Structures from Multiple Tasks EigenTransfer: A Unified Framework for Transfer Learning Domain Adaptation from Multiple Sources via Auxiliary Classifiers Transfer Learning for Collaborative Filtering via a Rating-Matrix Generative Model 2008 Bayesian Multiple Instance Learning: Automatic Feature Selection and Inductive Transfer Multi-Task Learning for HIV Therapy Screening Self-taught Clustering Manifold Alignment using Procrustes Analysis Automatic Discovery and Transfer of MAXQ Hierarchies Transfer of Samples in Batch Reinforcement Learning Hierarchical Kernel Stick-Breaking Process for Multi-Task Image Analysis Multi-Task Compressive Sensing with Dirichlet Process Priors A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning 2007 Boosting for Transfer Learning Self-taught Learning: Transfer Learning from Unlabeled Data Robust Multi-Task Learning with t-Processes Multi-Task Learning for Sequential Data via iHMMs and the Nested Dirichlet Process Cross-Domain Transfer for Reinforcement Learning Learning a Meta-Level Prior for Feature Relevance from Multiple Related Tasks Multi-Task Reinforcement Learning: A Hierarchical Bayesian Approach The Matrix Stick-Breaking Process for Flexible Multi-Task Learning Asymptotic Bayesian Generalization Error When Training and Test Distributions Are Different Discriminative Learning for Differing Training and Test Distributions 2006 Autonomous Shaping: Knowledge Transfer in Reinforcement Learning Constructing Informative Priors using Transfer Learning NIPS 2008 Clustered Multi-Task Learning: A Convex Formulation Multi-task Gaussian Process Learning of Robot Inverse Dynamics Transfer Learning by Distribution Matching for Targeted Advertising Translated Learning: Transfer Learning across Different Feature Spaces An empirical Analysis of Domain Adaptation Algorithms for Genomic Sequence Analysis Domain Adaptation with Multiple Sources 2007 Learning Bounds for Domain Adaptation Transfer Learning using Kolmogorov Complexity: Basic Theory and Empirical Evaluations A Spectral Regularization Framework for Multi-Task Structure Learning Multi-task Gaussian Process Prediction Semi-Supervised Multitask Learning Gaussian Process Models for Link Analysis and Transfer Learning Multi-Task Learning via Conic Programming Direct Importance Estimation with Model Selection and Its Application to Covariate Shift Adaptation 2006 Correcting Sample Selection Bias by Unlabeled Data Dirichlet-Enhanced Spam Filtering based on Biased Samples Analysis of Representations for Domain Adaptation Multi-Task Feature Learning AISTAT 2009 A Hierarchical Nonparametric Bayesian Approach to Statistical Language Model Domain Adaptation 2007 Kernel Multi-task Learning using Task-specific Features Inductive Transfer for Bayesian Network Structure Learning ECML/PKDD 2009 Relaxed Transfer of Different Classes via Spectral Partition Feature Selection by Transfer Learning with Linear Regularized Models Semi-Supervised Multi-Task Regression 2008 Actively Transfer Domain Knowledge An Algorithm for Transfer Learning in a Heterogeneous Environment Transferred Dimensionality Reduction Modeling Transfer Relationships between Learning Tasks for Improved Inductive Transfer Kernel-Based Inductive Transfer 2007 Graph-Based Domain Mapping for Transfer Learning in General Games Bridged Refinement for Transfer Learning Transfer Learning in Reinforcement Learning Problems Through Partial Policy Recycling Domain Adaptation of Conditional Probability Models via Feature Subsetting 2006 Skill Acquisition via Transfer Learning and Advice Taking COLT 2009 Online Multi-task Learning with Hard Constraints Taking Advantage of Sparsity in Multi-Task Learning Domain Adaptation: Learning Bounds and Algorithms 2008 Learning coordinate gradients with multi-task kernels Linear Algorithms for Online Multitask Classification 2007 Multitask Learning with Expert Advice 2006 Online Multitask Learning UAI 2009 Bayesian Multitask Learning with Latent Hierarchies Multi-Task Feature Learning Via Efficient L2,1-Norm Minimization 2008 Convex Point Estimation using Undirected Bayesian Transfer Hierarchies Data Mining Conferences KDD 2009 Cross Domain Distribution Adaptation via Kernel Mapping Extracting Discriminative Concepts for Domain Adaptation in Text Mining 2008 Spectral domain-transfer learning Knowledge transfer via multiple model local structure mapping 2007 Co-clustering based Classification for Out-of-domain Documents 2006 Reverse Testing: An Efficient Framework to Select Amongst Classifiers under Sample Selection Bias ICDM 2008 Unsupervised Cross-domain Learning by Interaction Information Co-clustering Using Wikipedia for Co-clustering Based Cross-domain Text Classification SDM 2008 Type-Independent Correction of Sample Selection Bias via Structural Discovery and Re-balancing Direct Density Ratio Estimation for Large-scale Covariate Shift Adaptation 2007 On Sample Selection Bias and Its Efficient Correction via Model Averaging and Unlabeled Examples Probabilistic Joint Feature Selection for Multi-task Learning Application Conferences SIGIR 2009 Mining Employment Market via Text Block Detection and Adaptive Cross-Domain Information Extraction Knowledge transformation for cross-domain sentiment classification 2008 Topic-bridged PLSA for cross-domain text classification 2007 Cross-Lingual Query Suggestion Using Query Logs of Different Languages 2006 Tackling Concept Drift by Temporal Inductive Transfer Constructing Informative Prior Distributions from Domain Knowledge in Text Classification Building Bridges for Web Query Classification WWW 2009 Latent Space Domain Transfer between High Dimensional Overlapping Distributions 2008 Can Chinese web pages be classified with English data source? ACL 2009 Transfer Learning, Feature Selection and Word Sense Disambiguation Graph Ranking for Sentiment Transfer Multi-Task Transfer Learning for Weakly-Supervised Relation Extraction Cross-Domain Dependency Parsing Using a Deep Linguistic Grammar Heterogeneous Transfer Learning for Image Clustering via the SocialWeb 2008 Exploiting Feature Hierarchy for Transfer Learning in Named Entity Recognition Multi-domain Sentiment Classification Active Sample Selection for Named Entity Transliteration Mining Wiki Resources for Multilingual Named Entity Recognition Multi-Task Active Learning for Linguistic Annotations 2007 Domain Adaptation with Active Learning for Word Sense Disambiguation Frustratingly Easy Domain Adaptation Instance Weighting for Domain Adaptation in NLP Biographies, Bollywood, Boom-boxes and Blenders: Domain Adaptation for Sentiment Classification Self-Training for Enhancement and Domain Adaptation of Statistical Parsers Trained on Small Datasets 2006 Estimating Class Priors in Domain Adaptation for Word Sense Disambiguation Simultaneous English-Japanese Spoken Language Translation Based on Incremental Dependency Parsing and Transfer CVPR 2009 Domain Transfer SVM for Video Concept Detection Boosted Multi-Task Learning for Face Verification With Applications to Web Image and Video Search 2008 Transfer Learning for Image Classification with Sparse Prototype Representations Workshops NIPS 2005 Workshop - Inductive Transfer: 10 Years Later NIPS 2005 Workshop - Interclass Transfer NIPS 2006 Workshop - Learning when test and training inputs have different distributions AAAI 2008 Workshop - Transfer Learning for Complex Tasks
个人分类: 机器学习|7609 次阅读|0 个评论
ZZ: 迁移学习( Transfer Learning )
timy 2009-11-6 09:46
转载于: http://apex.sjtu.edu.cn/apex_wiki/Transfer%20Learning 迁移学习( Transfer Learning ) 薛贵荣 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型;然后利用这个学习到的模型来对测试文档进行分类与预测。然而,我们看到机器学习算法在当前的Web挖掘研究中存在着一个关键的问题:一些新出现的领域中的大量训练数据非常难得到。我们看到Web应用领域的发展非常快速。大量新的领域不断涌现,从传统的新闻,到网页,到图片,再到博客、播客等等。传统的机器学习需要对每个领域都标定大量训练数据,这将会耗费大量的人力与物力。而没有大量的标注数据,会使得很多与学习相关研究与应用无法开展。其次,传统的机器学习假设训练数据与测试数据服从相同的数据分布。然而,在许多情况下,这种同分布假设并不满足。通常可能发生的情况如训练数据过期。这往往需要我们去重新标注大量的训练数据以满足我们训练的需要,但标注新数据是非常昂贵的,需要大量的人力与物力。从另外一个角度上看,如果我们有了大量的、在不同分布下的训练数据,完全丢弃这些数据也是非常浪费的。如何合理的利用这些数据就是迁移学习主要解决的问题。迁移学习可以从现有的数据中迁移知识,用来帮助将来的学习。迁移学习(Transfer Learning)的目标是将从一个环境中学到的知识用来帮助新环境中的学习任务。因此,迁移学习不会像传统机器学习那样作同分布假设。 我们在迁移学习方面的工作目前可以分为以下三个部分:同构空间下基于实例的迁移学习,同构空间下基于特征的迁移学习与异构空间下的迁移学习。我们的研究指出,基于实例的迁移学习有更强的知识迁移能力,基于特征的迁移学习具有更广泛的知识迁移能力,而异构空间的迁移具有广泛的学习与扩展能力。这几种方法各有千秋。 1.同构空间下基于实例的迁移学习 基于实例的迁移学习的基本思想是,尽管辅助训练数据和源训练数据或多或少会有些不同,但是辅助训练数据中应该还是会存在一部分比较适合用来训练一个有效的分类模型,并且适应测试数据。于是,我们的目标就是从辅助训练数据中找出那些适合测试数据的实例,并将这些实例迁移到源训练数据的学习中去。在基于实例的迁移学习方面,我们推广了传统的 AdaBoost 算法,提出一种具有迁移能力的boosting算法:Tradaboosting ,使之具有迁移学习的能力,从而能够最大限度的利用辅助训练数据来帮助目标的分类。我们的关键想法是,利用boosting的技术来过滤掉辅助数据中那些与源训练数据最不像的数据。其中,boosting的作用是建立一种自动调整权重的机制,于是重要的辅助训练数据的权重将会增加,不重要的辅助训练数据的权重将会减小。调整权重之后,这些带权重的辅助训练数据将会作为额外的训练数据,与源训练数据一起从来提高分类模型的可靠度。 基于实例的迁移学习只能发生在源数据与辅助数据非常相近的情况下。但是,当源数据和辅助数据差别比较大的时候,基于实例的迁移学习算法往往很难找到可以迁移的知识。但是我们发现,即便有时源数据与目标数据在实例层面上并没有共享一些公共的知识,它们可能会在特征层面上有一些交集。因此我们研究了基于特征的迁移学习,它讨论的是如何利用特征层面上公共的知识进行学习的问题。 2.同构空间下基于特征的迁移学习 在基于特征的迁移学习研究方面,我们提出了多种学习的算法,如CoCC算法 ,TPLSA算法 ,谱分析算法 与自学习算法 等。其中利用互聚类算法产生一个公共的特征表示,从而帮助学习算法。我们的基本思想是使用互聚类算法同时对源数据与辅助数据进行聚类,得到一个共同的特征表示,这个新的特征表示优于只基于源数据的特征表示。通过把源数据表示在这个新的空间里,以实现迁移学习。应用这个思想,我们提出了基于特征的有监督迁移学习与基于特征的无监督迁移学习。 2.1 基于特征的有监督迁移学习 我们在基于特征的有监督迁移学习方面的工作是基于互聚类的跨领域分类 ,这个工作考虑的问题是:当给定一个新的、不同的领域,标注数据及其稀少时,如何利用原有领域中含有的大量标注数据进行迁移学习的问题。在基于互聚类的跨领域分类这个工作中,我们为跨领域分类问题定义了一个统一的信息论形式化公式,其中基于互聚类的分类问题的转化成对目标函数的最优化问题。在我们提出的模型中,目标函数被定义为源数据实例,公共特征空间与辅助数据实例间互信息的损失。 2.2 基于特征的无监督迁移学习:自学习聚类 我们提出的自学习聚类算法 属于基于特征的无监督迁移学习方面的工作。这里我们考虑的问题是:现实中可能有标记的辅助数据都难以得到,在这种情况下如何利用大量无标记数据辅助数据进行迁移学习的问题。自学习聚类 的基本思想是通过同时对源数据与辅助数据进行聚类得到一个共同的特征表示,而这个新的特征表示由于基于大量的辅助数据,所以会优于仅基于源数据而产生的特征表示,从而对聚类产生帮助。 上面提出的两种学习策略(基于特征的有监督迁移学习与无监督迁移学习)解决的都是源数据与辅助数据在同一特征空间内的基于特征的迁移学习问题。当源数据与辅助数据所在的特征空间中不同时,我们还研究了跨特征空间的基于特征的迁移学习,它也属于基于特征的迁移学习的一种。 3 异构空间下的迁移学习:翻译学习 我们提出的翻译学习 致力于解决源数据与测试数据分别属于两个不同的特征空间下的情况。在 中,我们使用大量容易得到的标注过文本数据去帮助仅有少量标注的图像分类的问题,如上图所示。我们的方法基于使用那些用有两个视角的数据来构建沟通两个特征空间的桥梁。虽然这些多视角数据可能不一定能够用来做分类用的训练数据,但是,它们可以用来构建翻译器。通过这个翻译器,我们把近邻算法和特征翻译结合在一起,将辅助数据翻译到源数据特征空间里去,用一个统一的语言模型进行学习与分类。 引文: . Wenyuan Dai, Yuqiang Chen, Gui-Rong Xue, Qiang Yang, and Yong Yu. Translated Learning: Transfer Learning across Different Feature Spaces. Advances in Neural Information Processing Systems 21 (NIPS 2008), Vancouver, British Columbia, Canada, December 8-13, 2008. . Xiao Ling, Wenyuan Dai, Gui-Rong Xue, Qiang Yang, and Yong Yu. Spectral Domain-Transfer Learning. In Proceedings of the Fourteenth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD 2008), Pages 488-496, Las Vegas, Nevada, USA, August 24-27, 2008. . Wenyuan Dai, Qiang Yang, Gui-Rong Xue and Yong Yu. Self-taught Clustering. In Proceedings of the Twenty-Fifth International Conference on Machine Learning (ICML 2008), pages 200-207, Helsinki, Finland, 5-9 July, 2008. . Gui-Rong Xue, Wenyuan Dai, Qiang Yang and Yong Yu. Topic-bridged PLSA for Cross-Domain Text Classification. In Proceedings of the Thirty-first International ACM SIGIR Conference on Research and Development on Information Retrieval (SIGIR2008), pages 627-634, Singapore, July 20-24, 2008. . Xiao Ling, Gui-Rong Xue, Wenyuan Dai, Yun Jiang, Qiang Yang and Yong Yu. Can Chinese Web Pages be Classified with English Data Source? In Proceedings the Seventeenth International World Wide Web Conference (WWW2008), Pages 969-978, Beijing, China, April 21-25, 2008. . Xiao Ling, Wenyuan Dai, Gui-Rong Xue and Yong Yu. Knowledge Transferring via Implicit Link Analysis. In Proceedings of the Thirteenth International Conference on Database Systems for Advanced Applications (DASFAA 2008), Pages 520-528, New Delhi, India, March 19-22, 2008. . Wenyuan Dai, Gui-Rong Xue, Qiang Yang and Yong Yu. Co-clustering based Classification for Out-of-domain Documents. In Proceedings of the Thirteenth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD 2007), Pages 210-219, San Jose, California, USA, Aug 12-15, 2007. . Wenyuan Dai, Gui-Rong Xue, Qiang Yang and Yong Yu. Transferring Naive Bayes Classifiers for Text Classification. In Proceedings of the Twenty-Second National Conference on Artificial Intelligence (AAAI 2007), Pages 540-545, Vancouver, British Columbia, Canada, July 22-26, 2007. . Wenyuan Dai, Qiang Yang, Gui-Rong Xue and Yong Yu. Boosting for Transfer Learning. In Proceedings of the Twenty-Fourth International Conference on Machine Learning (ICML 2007), Pages 193-200, Corvallis, Oregon, USA, June 20-24, 2007. . Dikan Xing, Wenyuan Dai, Gui-Rong Xue and Yong Yu. Bridged Refinement for Transfer Learning. In Proceedings of the Eleventh European Conference on Principles and Practice of Knowledge Discovery in Databases (PKDD 2007), Pages 324-335, Warsaw, Poland, September 17-21, 2007. (Best Student Paper Award) . Xin Zhang, Wenyuan Dai, Gui-Rong Xue and Yong Yu. Adaptive Email Spam Filtering based on Information Theory. In Proceedings of the Eighth International Conference on Web Information Systems Engineering (WISE 2007), Pages 159170, Nancy, France, December 3-7, 2007. Transfer Learning (2009-10-29 03:03:46由 grxue 编辑)
个人分类: 机器学习|7242 次阅读|0 个评论
统计学习理论和SVM的不足(0)
dataminer 2009-4-9 19:29
Vapnik的统计学习理论在理论上的最重要的贡献是提出了衡量学习器容量的VC维,根据VC维可以计算学习风险的上界。因此可以通过选择不同VC维的学习器来同时控制经验风险和结构风险。Vapnik的理论产生的最重要的应用成果就是SVM(Support Vector Machine)。SVM一直被认为是建立在坚实理论基础上的机器学习算法。 最近读了Vapnik的《统计学习理论》,虽然还没有读完,刚刚看完Vapnik关于指示函数的风险分析以及VC维的引出,后面还有相当多的部分包括实函数的风险分析,SVM等部分。Vapnik的理论是优美的,揭示了机器学习中的本质问题。其理论甚至有哲学上的意义, 如VC维无线意味着不可证伪性,如从特殊-一般-特殊的认识规律不一定比从特殊-特殊的方法好等等。 不过本人认为Vapnik的统计学习理论和SVM仍然有些不足。 1. VC 维是多次放松的界,并不是很紧的界。 2.对很多学习算法而言,VC维并不好计算(Decision Tree). 3. 对学习问题的定义就引入了Sampling 的Bias.对如何解决Skewed问题没有回答。 4. SVM只能用在复空间。对于一般的nominal feature的向量空间必须映射到复空间。 5 SVM对于缺失值的处理缺乏有效手段。 5.SVM 对于非线性问题,kernel的函数的选择是一个艺术问题。 ==================================== 1. 一般来说,VC维确定的学习风险的界过于悲观。首先从证明过程来说,VC维确定的风险界是通过多次不等式的放松而得到的,这就使得风险的界有可能放大。其次,VC维确定的界是基于学习样本的分布任意的一致界。对于小样本学习问题(此时很难从这么少的样本中准确的估计出样本的分布情况),这个界是很有意义的。但是对于样本较多的学习问题(此时能够比较准确估计样本的分布情况),这个一致的界就会变得太松。另一方面,VC维理论并未考虑学习器的解的分布情况。从数学形式上来看,我们无法预先知道解的分布,预先假设解的分布是没有意义的。但是对于实际问题,尤其是高维问题,解的分布常常是具有一些特征的。实际上为了解决不适定问题,引入正则化方法就是认为假设解的各维分布以0为中心点呈正态分布。对于不是定问题Vapnik的《统计学习理论》也有深入讨论,但是Vapnik是从解决积分函数不连续的这个角度来讨论的。另一方面,从近年来研究较多的矩阵分解方法和Comperessive Sensing方法的研究结果来看,一个对应实际问题,有意义的高维线性系统的解通常是非常稀疏的,即在大多数甚至是绝大多数维度上解的值都为0. 而VC维理论显然没有考虑这一点,将整个解空间平等的拿进来考虑,那些在实际问题中几乎不可能出现的解也被考虑进了学习器的容量中来,而这些解通常又造到了解空间的很大部分(稀疏的解只能是解空间中极小的部分),自然以此为基础估计出来的学习器的界往往就变得悲观了。 2. 用VC维还有一个缺点就是计算起来不方便。要确定一个学习器的VC维通常不是一件容易的事。有时在估计VC维的时候有可能再一次通过不等式放大VC维,从而进一步放松界。 3. 统计学习理论研究的风险的界是 可以用来确定学习器的风险
个人分类: 生活点滴|40 次阅读|0 个评论
聚类分析(Clustering Analysis)
热度 2 郭崇慧 2009-3-4 16:25
(博文后面的参考文献 是聚类分析方面非常好的三篇综述) 聚类作为数据挖掘与统计分析的一个重要的研究领域,近年来倍受关注。从机器学习的角度看,聚类是一种无监督的机器学习方法,即事先对数据集的分布没有任何的了解,它是将物理或抽象对象的集合组成为由类似的对象组成的多个类的过程。聚类方法作为一类非常重要的数据挖掘技术,其主要是依据样本间相似性的度量标准将数据集自动分成几个群组,且使同一个群组内的样本之间相似度尽量高,而属于不同群组的样本之间相似度尽量低的一种方法。聚类中的组不是预先定义的,而是根据实际数据的特征按照数据之间的相似性来定义的,聚类中的组也称为簇。一个聚类分析系统的输入是一组样本和一个度量样本间相似度(或距离)的标准,而输出则是簇集,即数据集的几个类,这些类构成一个分区或者分区结构。聚类分析的一个附加的结果是对每个类的综合描述,这种结果对于更进一步深入分析数据集的特性是尤其重要的。聚类方法尤其适合用来讨论样本间的相互关联从而对一个样本结构做一个初步的评价。数据挖掘中的聚类研究主要集中在针对海量数据的有效和实用的聚类方法上,聚类方法的可伸缩性、高维聚类分析、分类属性数据聚类、具有混合属性数据的聚类和非距离模糊聚类等问题是目前数据挖掘研究人员最为感兴趣的。 聚类已经被广泛应用于许多领域,例如生物学、药学、人类学、市场营销和经济学。聚类应用包括动植物分类、疾病分类、图像处理、模式识别和文本检索。例如,在商业方面,聚类分析可以帮助市场人员发现顾客群中所存在的不同特征的群组,并可以利用购买模式来描述这些具有不同特征的顾客组群。在生物学方面,聚类分析可以用来获取动物或植物所存在的层次结构,可根据基因功能对其进行分类以获得对人群中所固有的结构更深入的了解。聚类还可以从地球观测数据库中帮助识别具有相似的土地使用情况的区域,此外,还可以帮助分类识别互联网上的文档以便进行信息发现。 聚类分析是一个富有挑战性的研究领域,以下就是对数据挖掘中聚类分析的一些典型要求: (1) 可伸缩性(scalability)。实际应用要求聚类算法能够处理大数据集,且时间复杂度不能太高(最好是多项式时间),消耗的内存空间也有限。目前,为了将算法拓展到超大数据库(VLDB)领域,研究人员已经进行了许多有益的尝试,包括:增量式挖掘、可靠的采样、数据挤压(data squashing)等。其中,数据挤压技术首先通过扫描数据来获得数据的统计信息,然后在这些统计信息的基础上进行聚类分析。比如BIRCH 算法中使用CF树就是属于数据挤压技术。 (2) 能够处理不同类型的属性。现实中的数据对象己远远超出关系型数据的范畴,比如空间数据、多媒体数据、遗传学数据、时间序列数据、文本数据、万维网上的数据、以及目前逐渐兴起的数据流。这些数据对象的属性类型往往是由多种数据类型综合而成的。 (3) 能够发现任意形状的簇。 (4) 尽量减少用于决定输入参数的领域知识。 (5) 能够处理噪声数据及孤立点。 (6) 对输入数据记录的顺序不敏感。 (7) 高维性(high-dimensional)。一个数据集可能包含若干维。较高的维数给聚类分析带来两个问题:首先,不相关的属性削弱了数据汇聚的趋势,使得数据分布非常稀疏。尽管这种情况在低维空间中并不多见,但是随着维数的增加,不相关属性的出现概率及数量也会增加,最后导致数据空间中几乎不存在簇。其次,高维使得在低维中很有效的区分数据的标准在高维空间中失效了。如在高维空间中,数据点到最近邻点的距离与到其他点的距离没有多少分别,从而导致最近邻查询在高维空间中不稳定,此时若根据接近度来划分簇,结果是不可信的。 (8) 能够根据用户指定的约束条件进行聚类。 (9) 聚类结果具有可解释性和可用性。 上述的要求使目前聚类分析研究的热点集中在设计能够有效、高效地对大数据库进行聚类分析的方法上。相关的研究课题包括:聚类方法的可扩展性、复杂形状和复杂数据类型的聚类分析及其有效高效性、高维聚类技术,以及混合数值属性与符号属性数据库中的聚类分析方法等。 参考文献: 1. Jain A K, Murty M N, Flynn P J. Data Clustering: A Review. ACM Computing Surveys, 1999, 31(3): 264-323. 2. Xu Rui, Donald Wunsch Ⅱ, Survey of Clustering Algorithms, IEEE Transactions on Neural Networks, 2005, 16(3): 645-678. 3. Omran M G H, Engelbrecht A P, Salman A. An overview of clustering methods. Intelligent Data Analysis, 2007, 11, 583-605
个人分类: 科研笔记|15603 次阅读|9 个评论
数据挖掘与知识发现
郭崇慧 2009-2-1 19:03
数据每年都在成倍增长,但是有用的信息却好像在减少。在过去 20 年里出现的数据挖掘领域正致力于这个问题。它不仅是一个重要的研究领域,而且在现实世界中具有重大的潜在应用价值。 数据挖掘和数据库知识发现( Data Mining Knowledge Discovery in Database ,简称 DMKDD )是 20 世纪 90 年代兴起的一门信息技术领域的前沿技术,它是在数据和数据库急剧增长远远超过人们对数据处理和理解能力的背景下产生的,也是数据库、统计学、机器学习、最优化与计算技术等多学科发展融合的结果。 知识发现是从数据中识别有效的、新颖的、潜在有用的、最终可理解模式的一个复杂过程。数据挖掘是知识发现中通过特定的算法在可接受的计算效率限制内生成特定模式的一个步骤。知识发现是一个包括数据选择、数据预处理、数据变换、数据挖掘、模式评价等步骤,最终得到知识的全过程,而数据挖掘是其中的一个关键步骤。由于数据挖掘对于知识发现的重要性,目前,大多数知识发现的研究都集中在数据挖掘的算法和应用上,因此,很多研究者往往对数据挖掘与知识发现不作严格区分,把二者混淆使用。 目前数据挖掘研究和实践与 20 世纪 60 年代的数据库研究和实践的状态相似。当时应用程序员每次编写程序时,都必须建立一个完整的数据库环境。随着关系数据模型、查询处理和优化技术、事务管理策略和特定查询语言( SQL )与界面的发展,现在的环境已经迥然不同了。在未来几十年内,数据挖掘技术的发展可能会与数据库发展历程相似,就是使数据挖掘技术更易于使用和开发。 参考文献: 1.U. M. Fayyad, G. Piatetsky-Shapiro, P. Smyth, R. Uthurusamy. Advances in knowledge discovery and data mining. AAAI/MIT Press, 1996. 2. J. Han, M. Kamber. Data mining: concepts and techniques. Morgan Kaufmann Publishers, 2001. ( 2nd Edition, 2006 ) 3. M. H. Dunham. Data Mining: Introductory and Advanced Topics. Pearson Education, Inc., 2003. (郭崇慧,田凤占,靳晓明等译.数据挖掘教程 ( 世界著名计算机教材精选 ) .清华大学出版社, 2005 .)
个人分类: 科研笔记|9902 次阅读|0 个评论
统计学习理论与支持向量机
郭崇慧 2009-1-19 19:34
统计学习理论( Statistical Learning Theory , SLT )是一种专门研究有限样本情况下的统计理论 。该理论针对有限样本统计问题建立了一套新的理论体系,在这种体系下的统计推理规则不仅考虑了对渐近性能的要求,而且追求在现有有限信息的条件下得到最优结果。 V. Vapnik 等人从 20 世纪 70 年代开始致力于此方面研究,到 20 世纪 90 年代中期,随着其理论的不断发展和成熟,也由于神经网络等方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视。统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架。 同时,在统计学习理论基础上发展了一种新的通用预测方法支持向量机( Support Vector Machines , SVM ),已初步表现出很多优于已有方法的性能 ,它能将很多现有方法(比如多项式逼近、径向基函数方法、多层感知器网络)纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极值问题等)。 SLT 和 SVM 正在成为继神经网络研究之后新的研究热点,并将推动数据挖掘与机器学习理论和技术的重大发展 。 参考文献: 1. V. Vapnik. The nature of statistical learning theory. Springer-Verlag, 1995. 2. V. Vapnik. Statistical learning theory. John Wiley and Sons, Inc., 1998. 3. B. E. Boser, I. Guyon, V. Vapnik. A training algorithm for optimal margin classifiers. In: D. Haussler, Editor, Proceedings of the Fifth Annual ACM Workshop of Computational Learning Theory, 144-152, ACM Press, 1992. 4. C. Cortes, V. Vapnik. Support-vector networks. Machine Learning, 1995, 20, 273-297 5. J. C. Burges. A tutorial on support vector machines for pattern recognition. Data Mining and Knowledge Discovery, 1998, 2(2), 121-167
个人分类: 科研笔记|8130 次阅读|2 个评论
机器学习与人工智能学习资源
热度 3 xiangzr1969 2008-10-6 21:23
第一个是人工智能的历史(History of Artificial Intelligence), 顺着 AI 发展时间线娓娓道来,中间穿插无数牛人故事,且一波三折大气磅礴,可谓事实比想象更令人惊讶。人工智能始于哲学思辨,中间经历了一个没有心理学(尤其是认知神经科学的)的帮助的阶段,仅通过牛人对人类思维的外在表现的归纳、内省,以及数学工具进行探索,其间最令人激动的是 Herbert Simon (决策理论之父,诺奖,跨领域牛人)写的一个自动证明机,证明了罗素的数学原理中的二十几个定理,其中有一个定理比原书中的还要优雅,Simon 的程序用的是启发式搜索,因为公理系统中的证明可以简化为从条件到结论的树状搜索(但由于组合爆炸,所以必须使用启发式剪枝)。后来 Simon 又写了 GPS (General Problem Solver),据说能解决一些能良好形式化的问题,如汉诺塔。但说到底 Simon 的研究毕竟只触及了人类思维的一个很小很小的方面 Formal Logic,甚至更狭义一点 Deductive Reasoning (即不包含 Inductive Reasoning , Transductive Reasoning (俗称 analogic thinking)。还有诸多比如 Common Sense、Vision、尤其是最为复杂的 Language 、Consciousness 都还谜团未解。还有一个比较有趣的就是有人认为 AI 问题必须要以一个物理的 Body 为支撑,一个能够感受这个世界的物理规则的身体本身就是一个强大的信息来源,基于这个信息来源,人类能够自身与时俱进地总结所谓的 Common-Sense Knowledge (这个就是所谓的 Emboddied Mind 理论。 ),否则像一些老兄直接手动构建 Common-Sense Knowledge Base ,就很傻很天真了,须知人根据感知系统从自然界获取知识是一个动态的自动更新的系统,而手动构建常识库则无异于古老的 Expert System 的做法。当然,以上只总结了很小一部分个人觉得比较有趣或新颖的,每个人看到的有趣的地方不一样,比如里面相当详细地介绍了神经网络理论的兴衰。所以建议你看自己一遍,别忘了里面链接到其他地方的链接。 第二个则是人工智能(Artificial Intelligence)。当然,还有机器学习等等。从这些条目出发能够找到许多非常有用和靠谱的深入参考资料。 然后是一些书籍 书籍: 1. 《Programming Collective Intelligence》,近年出的入门好书,培养兴趣是最重要的一环,一上来看大部头很容易被吓走的:P 2. Peter Norvig 的《AI, Modern Approach 2nd》(无争议的领域经典)。 3. 《The Elements of Statistical Learning》,数学性比较强,可以做参考了。 4. 《Foundations of Statistical Natural Language Processing》,自然语言处理领域公认经典。 5. 《Data Mining, Concepts and Techniques》,华裔科学家写的书,相当深入浅出。 6. 《Managing Gigabytes》,信息检索好书。 7. 《Information Theory:Inference and Learning Algorithms》,参考书吧,比较深。 相关数学基础(参考书,不适合拿来通读): 1. 线性代数:这个参考书就不列了,很多。 2. 矩阵数学:《矩阵分析》,Roger Horn。矩阵分析领域无争议的经典。 3. 概率论与统计:《概率论及其应用》,威廉费勒。也是极牛的书,可数学味道太重,不适合做机器学习的。于是讨论组里的 Du Lei 同学推荐了《All Of Statistics》并说到 机器学习这个方向,统计学也一样非常重要。推荐All of statistics,这是CMU的一本很简洁的教科书,注重概念,简化计算,简化与Machine Learning无关的概念和统计内容,可以说是很好的快速入门材料。 4. 最优化方法:《Nonlinear Programming, 2nd》非线性规划的参考书。《Convex Optimization》凸优化的参考书。此外还有一些书可以参考 wikipedia 上的最优化方法条目。要深入理解机器学习方法的技术细节很多时候(如SVM)需要最优化方法作为铺垫。 推荐几本书: 《Machine Learning, Tom Michell》, 1997. 老书,牛人。现在看来内容并不算深,很多章节有点到为止的感觉,但是很适合新手(当然,不能新到连算法和概率都不知道)入门。比如决策树部分就很精彩,并且这几年没有特别大的进展,所以并不过时。另外,这本书算是对97年前数十年机器学习工作的大综述,参考文献列表极有价值。国内有翻译和影印版,不知道绝版否。 《Modern Information Retrieval, Ricardo Baeza-Yates et al》. 1999 老书,牛人。貌似第一本完整讲述IR的书。可惜IR这些年进展迅猛,这本书略有些过时了。翻翻做参考还是不错的。另外,Ricardo同学现在是Yahoo Research for Europe and Latin Ameria的头头。 《Pattern Classification (2ed)》, Richard O. Duda, Peter E. Hart, David G. Stork 大约也是01年左右的大块头,有影印版,彩色。没读完,但如果想深入学习ML和IR,前三章(介绍,贝叶斯学习,线性分类器)必修。 还有些经典与我只有一面之缘,没有资格评价。另外还有两本小册子,论文集性质的,倒是讲到了了不少前沿和细节,诸如索引如何压缩之类。可惜忘了名字,又被我压在箱底,下次搬家前怕是难见天日了。 (呵呵,想起来一本:《Mining the Web - Discovering Knowledge from Hypertext Data》 ) 说一本名气很大的书:《Data Mining: Practical Machine Learning Tools and Techniques》。Weka 的作者写的。可惜内容一般。理论部分太单薄,而实践部分也很脱离实际。DM的入门书已经不少,这一本应该可以不看了。如果要学习了解 Weka ,看文档就好。第二版已经出了,没读过,不清楚。 信息检索方面,Du Lei 同学再次推荐: 信息检索方面的书现在建议看Stanford的那本《Introduction to Information Retrieval》,这书刚刚正式出版,内容当然up to date。另外信息检索第一大牛Croft老爷也正在写教科书,应该很快就要面世了。据说是非常pratical的一本书。 对信息检索有兴趣的同学,强烈推荐翟成祥博士在北大的暑期学校课程,这里有全slides和阅读材料: http://net.pku.edu.cn/~course/cs410/schedule.html maximzhao 同学推荐了一本机器学习: 加一本书:Bishop, 《Pattern Recognition and Machine Learning》. 没有影印的,但是网上能下到。经典中的经典。Pattern Classification 和这本书是两本必读之书。《Pattern Recognition and Machine Learning》是很新(07年),深入浅出,手不释卷。 最后,关于人工智能方面(特别地,决策与判断),再推荐两本有意思的书, 一本是《Simple Heuristics that Makes Us Smart》 另一本是《Bounded Rationality: The Adaptive Toolbox》 不同于计算机学界所采用的统计机器学习方法,这两本书更多地着眼于人类实际上所采用的认知方式,以下是我在讨论组上写的简介: 这两本都是德国ABC研究小组(一个由计算机科学家、认知科学家、神经科学家、经济学家、数学家、统计学家等组成的跨学科研究团体)集体写的,都是引起领域内广泛关注的书,尤其是前一本,後一本则是对 Herbert Simon (决策科学之父,诺奖获得者)提出的人类理性模型的扩充研究),可以说是把什么是真正的人类智能这个问题提上了台面。核心思想是,我们的大脑根本不能做大量的统计计算,使用fancy的数学手法去解释和预测这个世界,而是通过简单而鲁棒的启发法来面对不确定的世界(比如第一本书中提到的两个后来非常著名的启发法:再认启发法(cognition heuristics)和选择最佳(Take the Best)。当然,这两本书并没有排斥统计方法就是了,数据量大的时候统计优势就出来了,而数据量小的时候统计方法就变得非常糟糕;人类简单的启发法则充分利用生态环境中的规律性(regularities),都做到计算复杂性小且鲁棒。 关于第二本书的简介: 1. 谁是 Herbert Simon 2. 什么是 Bounded Rationality 3. 这本书讲啥的: 我一直觉得人类的决策与判断是一个非常迷人的问题。这本书简单地说可以看作是《决策与判断》的更全面更理论的版本。系统且理论化地介绍人类决策与判断过程中的各种启发式方法(heuristics)及其利弊(为什么他们是最优化方法在信息不足情况下的快捷且鲁棒的逼近,以及为什么在一些情况下会带来糟糕的后果等,比如学过机器学习的都知道朴素贝叶斯方法在许多情况下往往并不比贝叶斯网络效果差,而且还速度快;比如多项式插值的维数越高越容易overfit,而基于低阶多项式的分段样条插值却被证明是一个非常鲁棒的方案)。 在此提一个书中提到的例子,非常有意思:两个团队被派去设计一个能够在场上接住抛过来的棒球的机器人。第一组做了详细的数学分析,建立了一个相当复杂的抛物线近似模型(因为还要考虑空气阻力之类的原因,所以并非严格抛物线),用于计算球的落点,以便正确地接到球。显然这个方案耗资巨大,而且实际运算也需要时间,大家都知道生物的神经网络中生物电流传输只有百米每秒之内,所以 computational complexity 对于生物来说是个宝贵资源,所以这个方案虽然可行,但不够好。第二组则采访了真正的运动员,听取他们总结自己到底是如何接球的感受,然后他们做了这样一个机器人:这个机器人在球抛出的一开始一半路程啥也不做,等到比较近了才开始跑动,并在跑动中一直保持眼睛于球之间的视角不变,后者就保证了机器人的跑动路线一定会和球的轨迹有交点;整个过程中这个机器人只做非常粗糙的轨迹估算。体会一下你接球的时候是不是眼睛一直都盯着球,然后根据视线角度来调整跑动方向?实际上人类就是这么干的,这就是 heuristics 的力量。 相对于偏向于心理学以及科普的《决策与判断》来说,这本书的理论性更强,引用文献也很多而经典,而且与人工智能和机器学习都有交叉,里面也有不少数学内容,全书由十几个章节构成,每个章节都是由不同的作者写的,类似于 paper 一样的,很严谨,也没啥废话,跟《Psychology of Problem Solving》类似。比较适合 geeks 阅读哈。 另外,对理论的技术细节看不下去的也建议看看《决策与判断》这类书(以及像《别做正常的傻瓜》这样的傻瓜科普读本),对自己在生活中做决策有莫大的好处。人类决策与判断中使用了很多的 heuristics ,很不幸的是,其中许多都是在适应几十万年前的社会环境中建立起来的,并不适合于现代社会,所以了解这些思维中的缺点、盲点,对自己成为一个良好的决策者有很大的好处,而且这本身也是一个非常有趣的领域。 统计学习理论与支持向量机 统计学习理论(Statistical Learning Theory,SLT)是一种专门研究有限样本情况下的统计理论 。该理论针对有限样本统计问题建立了一套新的理论体系,在这种体系下的统计推理规则不仅考虑了对渐近性能的要求,而且追求在现有有限信息的条件下得到最优结果。V. Vapnik等人从20世纪70年代开始致力于此方面研究,到20世纪90年代中期,随着其理论的不断发展和成熟,也由于神经网络等方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视。统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架。 同时,在统计学习理论基础上发展了一种新的通用预测方法支持向量机(Support Vector Machines,SVM),已初步表现出很多优于已有方法的性能 ,它能将很多现有方法(比如多项式逼近、径向基函数方法、多层感知器网络)纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极值问题等)。SLT和SVM正在成为继神经网络研究之后新的研究热点,并将推动数据挖掘与机器学习理论和技术的重大发展 。 参考文献: 1. V. Vapnik. The nature of statistical learning theory. Springer-Verlag, 1995. 2. V. Vapnik. Statistical learning theory. John Wiley and Sons, Inc., 1998. 3. B. E. Boser, I. Guyon, V. Vapnik. A training algorithm for optimal margin classifiers. In: D. Haussler, Editor, Proceedings of the Fifth Annual ACM Workshop of Computational Learning Theory, 144-152, ACM Press, 1992. 4. C. Cortes, V. Vapnik. Support-vector networks. Machine Learning, 1995, 20, 273-297 5. J. C. Burges. A tutorial on support vector machines for pattern recognition. Data Mining and Knowledge Discovery, 1998, 2(2), 121-167 http://www.support-vector-machines.org/SVM_soft.html SHOGUN - is a new machine learning toolbox with focus on large scale kernel methods and especially on Support Vector Machines (SVM) with focus to bioinformatics. It provides a generic SVM object interfacing to several different SVM implementations. Each of the SVMs can be combined with a variety of the many kernels implemented. It can deal with weighted linear combination of a number of sub-kernels, each of which not necessarily working on the same domain, where an optimal sub-kernel weighting can be learned using Multiple Kernel Learning. Apart from SVM 2-class classification and regression problems, a number of linear methods like Linear Discriminant Analysis (LDA), Linear Programming Machine (LPM), (Kernel) Perceptrons and also algorithms to train hidden markov models are implemented. The input feature-objects can be dense, sparse or strings and of type int/short/double/char and can be converted into different feature types. Chains of preprocessors (e.g. substracting the mean) can be attached to each feature object allowing for on-the-fly pre-processing. SHOGUN comes in different flavours, a stand-a-lone version and also with interfaces to Matlab(tm), R, Octave, Readline and Python. This is the R package.
个人分类: 学习论坛|10145 次阅读|3 个评论
机器学习与人工智能学习资源导引[zz]
timy 2008-9-16 18:00
转载于: http://bbs.byr.edu.cn/wForum/disparticle.php?boardName=PR_AIID=3229pos=12 我经常在 TopLanguage 讨论组上推荐一些书籍,也经常问里面的牛人们搜罗一些有关的资料,人工智能、机器学习、自然语言处理、知识发现(特别地,数据挖掘)、信息检索这些无疑是 CS 领域最好玩的分支了(也是互相紧密联系的),这里将最近有关机器学习和人工智能相关的一些学习资源归一个类: 首先是两个非常棒的 Wikipedia 条目,我也算是 wikipedia 的重度用户了,学习一门东西的时候常常发现是始于 wikipedia 中间经过若干次 google ,然后止于某一本或几本著作。 第一个是人工智能的历史(History of Artificial Intelligence),我在讨论组上写道: 而今天看到的这篇文章是我在 wikipedia 浏览至今觉得最好的。文章名为《人工智能的历史》,顺着 AI 发展时间线娓娓道来,中间穿插无数牛人故事,且一波三折大气磅礴,可谓事实比想象更令人惊讶。人工智能始于哲学思辨,中间经历了一个没有心理学(尤其是认知神经科学的)的帮助的阶段,仅通过牛人对人类思维的外在表现的归纳、内省,以及数学工具进行探索,其间最令人激动的是 Herbert Simon (决策理论之父,诺奖,跨领域牛人)写的一个自动证明机,证明了罗素的数学原理中的二十几个定理,其中有一个定理比原书中的还要优雅,Simon 的程序用的是启发式搜索,因为公理系统中的证明可以简化为从条件到结论的树状搜索(但由于组合爆炸,所以必须使用启发式剪枝)。后来 Simon 又写了 GPS (General Problem Solver),据说能解决一些能良好形式化的问题,如汉诺塔。但说到底 Simon 的研究毕竟只触及了人类思维的一个很小很小的方面 Formal Logic,甚至更狭义一点 Deductive Reasoning (即不包含 Inductive Reasoning , Transductive Reasoning (俗称 analogic thinking)。还有诸多比如 Common Sense、Vision、尤其是最为复杂的 Language 、Consciousness 都还谜团未解。还有一个比较有趣的就是有人认为 AI 问题必须要以一个物理的 Body 为支撑,一个能够感受这个世界的物理规则的身体本身就是一个强大的信息来源,基于这个信息来源,人类能够自身与时俱进地总结所谓的 Common-Sense Knowledge (这个就是所谓的 Emboddied Mind 理论。 ),否则像一些老兄直接手动构建 Common-Sense Knowledge Base ,就很傻很天真了,须知人根据感知系统从自然界获取知识是一个动态的自动更新的系统,而手动构建常识库则无异于古老的 Expert System 的做法。当然,以上只总结了很小一部分我个人觉得比较有趣或新颖的,每个人看到的有趣的地方不一样,比如里面相当详细地介绍了神经网络理论的兴衰。所以我强烈建议你看自己一遍,别忘了里面链接到其他地方的链接。 顺便一说,徐宥同学打算找时间把这个条目翻译出来,这是一个相当长的条目,看不动 E 文的等着看翻译吧:) 第二个则是人工智能(Artificial Intelligence)。当然,还有机器学习等等。从这些条目出发能够找到许多非常有用和靠谱的深入参考资料。 然后是一些书籍 书籍: 1. 《Programming Collective Intelligence》,近年出的入门好书,培养兴趣是最重要的一环,一上来看大部头很容易被吓走的:P 2. Peter Norvig 的《AI, Modern Approach 2nd》(无争议的领域经典)。 3. 《The Elements of Statistical Learning》,数学性比较强,可以做参考了。 4. 《Foundations of Statistical Natural Language Processing》,自然语言处理领域公认经典。 5. 《Data Mining, Concepts and Techniques》,华裔科学家写的书,相当深入浅出。 6. 《Managing Gigabytes》,信息检索好书。 7. 《Information Theory:Inference and Learning Algorithms》,参考书吧,比较深。 相关数学基础(参考书,不适合拿来通读): 1. 线性代数:这个参考书就不列了,很多。 2. 矩阵数学:《矩阵分析》,Roger Horn。矩阵分析领域无争议的经典。 3. 概率论与统计:《概率论及其应用》,威廉费勒。也是极牛的书,可数学味道太重,不适合做机器学习的。于是讨论组里的 Du Lei 同学推荐了《All Of Statistics》并说到 机器学习这个方向,统计学也一样非常重要。推荐All of statistics,这是CMU的一本很简洁的教科书,注重概念,简化计算,简化与Machine Learning无关的概念和统计内容,可以说是很好的快速入门材料。 4. 最优化方法:《Nonlinear Programming, 2nd》非线性规划的参考书。《Convex Optimization》凸优化的参考书。此外还有一些书可以参考 wikipedia 上的最优化方法条目。要深入理解机器学习方法的技术细节很多时候(如SVM)需要最优化方法作为铺垫。 王宁同学推荐了好几本书: 《Machine Learning, Tom Michell》, 1997. 老书,牛人。现在看来内容并不算深,很多章节有点到为止的感觉,但是很适合新手(当然,不能新到连算法和概率都不知道)入门。比如决策树部分就很精彩,并且这几年没有特别大的进展,所以并不过时。另外,这本书算是对97年前数十年机器学习工作的大综述,参考文献列表极有价值。国内有翻译和影印版,不知道绝版否。 《Modern Information Retrieval, Ricardo Baeza-Yates et al》. 1999 老书,牛人。貌似第一本完整讲述IR的书。可惜IR这些年进展迅猛,这本书略有些过时了。翻翻做参考还是不错的。另外,Ricardo同学现在是Yahoo Research for Europe and Latin Ameria的头头。 《Pattern Classification (2ed)》, Richard O. Duda, Peter E. Hart, David G. Stork 大约也是01年左右的大块头,有影印版,彩色。没读完,但如果想深入学习ML和IR,前三章(介绍,贝叶斯学习,线性分类器)必修。 还有些经典与我只有一面之缘,没有资格评价。另外还有两本小册子,论文集性质的,倒是讲到了了不少前沿和细节,诸如索引如何压缩之类。可惜忘了名字,又被我压在箱底,下次搬家前怕是难见天日了。 (呵呵,想起来一本:《Mining the Web - Discovering Knowledge from Hypertext Data》 ) 说一本名气很大的书:《Data Mining: Practical Machine Learning Tools and Techniques》。Weka 的作者写的。可惜内容一般。理论部分太单薄,而实践部分也很脱离实际。DM的入门书已经不少,这一本应该可以不看了。如果要学习了解 Weka ,看文档就好。第二版已经出了,没读过,不清楚。 信息检索方面,Du Lei 同学再次推荐: 信息检索方面的书现在建议看Stanford的那本《Introduction to Information Retrieval》,这书刚刚正式出版,内容当然up to date。另外信息检索第一大牛Croft老爷也正在写教科书,应该很快就要面世了。据说是非常pratical的一本书。 对信息检索有兴趣的同学,强烈推荐翟成祥博士在北大的暑期学校课程,这里有全slides和阅读材料: http://net.pku.edu.cn/~course/cs410/schedule.html maximzhao 同学推荐了一本机器学习: 加一本书:Bishop, 《Pattern Recognition and Machine Learning》. 没有影印的,但是网上能下到。经典中的经典。Pattern Classification 和这本书是两本必读之书。《Pattern Recognition and Machine Learning》是很新(07年),深入浅出,手不释卷。 最后,关于人工智能方面(特别地,决策与判断),再推荐两本有意思的书, 一本是《Simple Heuristics that Makes Us Smart》 另一本是《Bounded Rationality: The Adaptive Toolbox》 不同于计算机学界所采用的统计机器学习方法,这两本书更多地着眼于人类实际上所采用的认知方式,以下是我在讨论组上写的简介: 这两本都是德国ABC研究小组(一个由计算机科学家、认知科学家、神经科学家、经济学家、数学家、统计学家等组成的跨学科研究团体)集体写的,都是引起领域内广泛关注的书,尤其是前一本,後一本则是对 Herbert Simon (决策科学之父,诺奖获得者)提出的人类理性模型的扩充研究),可以说是把什么是真正的人类智能这个问题提上了台面。核心思想是,我们的大脑根本不能做大量的统计计算,使用fancy的数学手法去解释和预测这个世界,而是通过简单而鲁棒的启发法来面对不确定的世界(比如第一本书中提到的两个后来非常著名的启发法:再认启发法(cognition heuristics)和选择最佳(Take the Best)。当然,这两本书并没有排斥统计方法就是了,数据量大的时候统计优势就出来了,而数据量小的时候统计方法就变得非常糟糕;人类简单的启发法则充分利用生态环境中的规律性(regularities),都做到计算复杂性小且鲁棒。 关于第二本书的简介: 1. 谁是 Herbert Simon 2. 什么是 Bounded Rationality 3. 这本书讲啥的: 我一直觉得人类的决策与判断是一个非常迷人的问题。这本书简单地说可以看作是《决策与判断》的更全面更理论的版本。系统且理论化地介绍人类决策与判断过程中的各种启发式方法(heuristics)及其利弊(为什么他们是最优化方法在信息不足情况下的快捷且鲁棒的逼近,以及为什么在一些情况下会带来糟糕的后果等,比如学过机器学习的都知道朴素贝叶斯方法在许多情况下往往并不比贝叶斯网络效果差,而且还速度快;比如多项式插值的维数越高越容易overfit,而基于低阶多项式的分段样条插值却被证明是一个非常鲁棒的方案)。 在此提一个书中提到的例子,非常有意思:两个团队被派去设计一个能够在场上接住抛过来的棒球的机器人。第一组做了详细的数学分析,建立了一个相当复杂的抛物线近似模型(因为还要考虑空气阻力之类的原因,所以并非严格抛物线),用于计算球的落点,以便正确地接到球。显然这个方案耗资巨大,而且实际运算也需要时间,大家都知道生物的神经网络中生物电流传输只有百米每秒之内,所以 computational complexity 对于生物来说是个宝贵资源,所以这个方案虽然可行,但不够好。第二组则采访了真正的运动员,听取他们总结自己到底是如何接球的感受,然后他们做了这样一个机器人:这个机器人在球抛出的一开始一半路程啥也不做,等到比较近了才开始跑动,并在跑动中一直保持眼睛于球之间的视角不变,后者就保证了机器人的跑动路线一定会和球的轨迹有交点;整个过程中这个机器人只做非常粗糙的轨迹估算。体会一下你接球的时候是不是眼睛一直都盯着球,然后根据视线角度来调整跑动方向?实际上人类就是这么干的,这就是 heuristics 的力量。 相对于偏向于心理学以及科普的《决策与判断》来说,这本书的理论性更强,引用文献也很多而经典,而且与人工智能和机器学习都有交叉,里面也有不少数学内容,全书由十几个章节构成,每个章节都是由不同的作者写的,类似于 paper 一样的,很严谨,也没啥废话,跟《Psychology of Problem Solving》类似。比较适合 geeks 阅读哈。 另外,对理论的技术细节看不下去的也建议看看《决策与判断》这类书(以及像《别做正常的傻瓜》这样的傻瓜科普读本),对自己在生活中做决策有莫大的好处。人类决策与判断中使用了很多的 heuristics ,很不幸的是,其中许多都是在适应几十万年前的社会环境中建立起来的,并不适合于现代社会,所以了解这些思维中的缺点、盲点,对自己成为一个良好的决策者有很大的好处,而且这本身也是一个非常有趣的领域。 (完)
个人分类: 自然语言处理|5253 次阅读|1 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-23 11:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部