标签:
在介绍机器学习之前,我想先列几个关于机器学习的例子:
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,主要使用归纳、综合而不是演绎[2]
关于机器学习的定义有很多,一种经常被引用的英文定义是:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.[3]
上面的这个定义如何理解呢?想象一下有一个邮箱过滤程序接受到一封邮件,该程序如何判断这封邮件是不是垃圾邮件呢?首先这封邮件先观察你之前标记过是不是垃圾邮件的邮件,基于这个学习到的经验,该过滤程序为你过滤掉垃圾邮件了。在这个任务中:
从最广义的讲,任何涉及机器学习所用的方法,只要它利用了训练样本的信息,都可以认为运用了学习。实践中和有意义的机器学习都是如此困难,以至于根本无法实现猜测出一个最佳的分类判决。因此大部分的时间都运用与研究学习问题。实现一个机器学习算法设计:给定一般的模型或分类器的形式,利用训练样本去学习或评估模型的未知参数。这里的学习指用某种算法来降低训练样本的分类误差。一大类基于梯度下降的算法,能够调节分类器的参数,使它朝着能够降低误差的方向前进,目前已成为机器学习领域的主流学习算法。[4]
在一个机器学习的应用中,根据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最合适的算法来获得最好的结果。[5]
在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。监督式学习的常见应用场景如分类问题和回归问题。常见的算法有:逻辑回归,感知机,SVM支持向量机。
在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括:Apriori算法以及k-Means算法。
在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。
在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。常见的应用场景包括动态系统以及机器人控制等。常见算法包括Q-Learning以及时间差学习(Temporal difference learning)
在机器学习领域有很多的框架、库以及软件。比较出名的有:C++的opencv, shark等,java中weka、hadoop的mahout、spark的mllib,matlab中的LibSVM、caffe,python的scikit-learn、NLTK、theano、brain、caffe等。机器学习框架、库与软件列表
标签:
原文地址:http://blog.csdn.net/earl211/article/details/52353435