说到人工智能,就不得不提图灵测试。图灵测试是阿兰图灵在1950年提出的一个关于机器是否可以思考的著名实验,测试某机器是否能表现出与人等价或没法区分的智能。主要内容是:测试者与被测试者(一我的和一台机器)隔开的状况下,经过一些装置(如键盘)向被测试者随意提问。 进行屡次测试后,若是测试者不能肯定出被测试者是人仍是机器,那么这台机器就经过了测试,并被认为具备人类智能。python
一般咱们认为一个智能系统须要具备如下几个能力:算法
由此咱们能够看出,机器学习是人工智能的一个分支,它是人工智能研究发展到必定阶段的必然产物。网络
二十世纪五十年代到七十年代初,人工智能研究处于”推理期“,人们认为只要能赋予机器逻辑推理能力,机器就具备智能。框架
随着研究向前发展,人们逐渐认识到,仅仅具备逻辑推理能力是远远实现不了人工智能的。要使机器具备智能,必须设法使机器拥有知识。机器学习
二十世纪七十年代中期开始,人工智能研究进入了“知识期”,但人们又认识到,由人来把知识总结出来再教给计算机是很是困难的。有人想到,若是机器可以本身学习知识就行了。性能
二十世纪八十年代是机器学习成为一个独立的学科领域、各类机器学习技术百花初绽的时期。(实际上最先图灵在1950年图灵测试的文章中就曾提到机器学习的可能,五十年代到七十年代有一些机器学习的研究如基于神经网络的链接主义学习、感知机、基于逻辑表示的符号主义学习、以决策理论为基础的学习技术、强化学习等。但机器学习独立成为一个学科领域是在八十年代。)学习
这时候,人们把机器学习划分为“机械学习”,“示教学习”,“类比学习”,“概括学习”。测试
死记硬背式学习,把外界输入的信息所有记录下来,须要时原封不动地取出来使用,实际上没有真正的学习,仅仅在进行信息存储与检索。大数据
从指令中学习。人工智能
经过观察和发现学习。
从样例中学习,即从训练样例中概括出学习结果。概括学习是被研究最多,应用最广的,涵盖了监督学习、无监督学习等。
二十世纪八十年代,概括学习的主流是符号主义学习,其表明包括决策树学习和基于逻辑的学习。典型的决策树学习以信息论为基础,以信息熵的最小化为目标,直接模拟了人类对概念进行断定的树形流程。基于逻辑的学习的著名表明是概括逻辑程序设计,能够看做机器学习与逻辑程序设计的交叉,使用一阶逻辑来进行知识表示,经过修改和扩充逻辑表达式来完成对数据的概括。
二十世纪九十年代,概括学习的主流是基于神经网络的链接主义学习。
二十世纪九十年代中期,概括学习的主流是统计学习,其表明是支持向量机(SVM)以及更通常的“核方法(kernel methods)”。
二十一世纪初,链接主义学习又卷土重来,掀起以“深度学习”为名的热潮。深度学习是指深层神经网络,它在语音、图像等复杂对象的应用中表现很好,性能优越。深度学习的流行一是由于大数据的发展,数据多了;二是由于计算机硬件的发展,计算能力强了。
机器学习中,有个定理叫“没有免费午饭“定理(No Free Lunch Theorem,简称NFL定理)。内容是不管学习算法a多聪明,学习算法b多笨拙,它们的指望性能是相同的。简而言之,就是没有一个通用算法能够完美解决全部问题,咱们要根据具体问题来选择合适的算法。
根据训练数据是否带有标签(label)信息,把训练数据中带有标签信息的学习算法称为监督学习,训练数据中不带标签信息的学习算法称为无监督学习。
监督学习的表明是分类和回归,常见算法有线性回归、logistic回归、决策树、贝叶斯分类、支持向量机、神经网络等。
无监督学习的表明是聚类,常见算法有主成分分析(PCA)、K均值聚类(K-Means)等。
在后面的文章中会一一介绍这些算法和它们的代码实现,尽可能给出不调包只用python代码实现和使用流行的机器学习框架实现两种实现方案。由于前者能够更好地理解算法,后者能够更快更方便地使用算法。 固然除了这些算法,还有数据预处理、模型的性能度量、超参数的调整等等。