机器学习简介
1. 应用
2. 历史
1952年,IBM的亚瑟·塞缪尔(Arthur Samuel)开发了一个西洋棋的程序,该程序能够通过棋子的位置学习一个隐式模型,为下一步棋提供比较好的走法。 塞缪尔与这个程序对局了很多次,并观察到这个程序在经过一段时间的学习后可以发挥得更好。
塞缪尔用这个程序驳倒了机器无法超越书面代码,并像人类一样学习模式的论断,创造并定义了“机器学习”:机器学习是一个能使计算机不用显示编程就能获得能力的研究领域(a field of study that gives computer the ability without being explicitly programmed)。
1956年的达特茅斯会议(Dartmouth Conferences)确认了人工智能这个术语。
机器学习是实现人工智能的一种方法,深度学习是实现机器学习的一种技术。
3. 定义
机器学习:假设用P来评估计算机程序在某类任务T上的性能,若一个程序通过利用经验E在任务T上获得了性能改善,则关于T和P,该程序对E进行了学习(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.)[Mitchell, 1997]。
现实世界本身对于人类来说是未知的或者不确定的,需要通过观察和测量来认识世界,但同时观察能力与测量手段是有局限性的,通常需要作出一些假设。机器学习把学习过程看做一个在所有假设空间中进行搜索的过程,搜索目标是找到与训练集匹配的假设。
机器学习关注的是使计算机程序能够像人一样根据经验的积累自动提高处理问题的性能,即模仿人类思维和学习过程,实现自主学习,以获取规律和知识,并作出判断与决策。
“经验”通常以“数据”的形式存在,机器学习的实质是从数据中产生模型(model),从数据中产生模型的过程称为“学习”(learning)或“训练”(training),主要研究产生模型的算法(algorithm)。
不同领域对机器学习有不同的定义:
(1) 模式识别
模式识别=机器学习。“模式识别源自工业界,而机器学习来自于计算机学科”(《Pattern Recognition And Machine Learning》,Christopher M. Bishop)。
(2) 数据挖掘
数据挖掘=机器学习+数据库。数据挖掘仅仅是一种思考方式,尝试从数据中挖掘出知识,大部分数据挖掘中的算法是机器学习的算法在数据库中的优化。
(3) 统计学习
统计学习近似等于机器学习。机器学习中的大多数方法来自统计学,如SVM。但在某种程度上两者是有分别的:统计学习者重点关注的是统计模型的发展与优化,偏数学;而机器学习者更关注的是能够解决问题,偏实践。因此机器学习重点研究学习算法在计算机上执行的效率与准确性的提升。
(4) 计算机视觉
计算机视觉=图像处理+机器学习。图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责从图像中识别出相关的模式。计算机视觉相关的应用非常的多,例如手写字符识别、人脸识别、车牌识别等等应用。
(5) 语音识别
语音识别=语音处理+机器学习。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果的语音助手siri等。
(6) 自然语言处理
自然语言处理=文本处理+机器学习。自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向
4. 算法分类
机器学习算法根据学习方式分为监督学习(Supervised Learning)与非监督学习(Unsupervised Learning)。
(1) 监督学习
在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。监督式学习的常见应用场景如分类问题(预测类标号)和回归问题(预测连续数值或有序值)。
(2) 非监督学习
在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的算法包括关联规则学习、聚类、降维等。