Machine Learning: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.
一、什么是机器学习?(What)
上面的概念难免有些抽象,要理解什么是机器学习,其实可以类比于人类的学习。假设一个场景:父母教三岁大的孩子认识什么是西瓜。首先父母要给孩子看西瓜,然后告诉孩子这个是西瓜。这个过程抽象成下面这张流程图:
孩子的学习过程是通过一些观察,然后加上自我总结,就逐渐拥有了识别什么是西瓜的技能。
与之相类似,机器学习就是通过对数据的“学习”,从而拥有某些特定技能的过程。(那技能是什么呢?技能是某种表现的增进,例如我通过天天练习投篮,逐渐命中率达到一定水准,我就拥有了投篮技能。)
二、为什么要使用机器学习?(Why)
对于不同的问题,我们选择机器学习的原因不同,这些问题按照对于人类的难易来说,可以分为两类:
1.很简单的问题:
例如:识别手写的数字是几,这对于人类来说是一个极易的问题,那为什么我们还要使用机器学习呢?因为通过机器学习的方式,我们可以让机器来帮我们做这些“单调乏味”的工作,让机器掌握识别手写数字的技能之后,我们就能让他们帮我们来分拣信件。如果把这项技能再进一步,让机器掌握识别并理解地址信息,我们甚至可以用机器来分拣快递。
2.很复杂的问题:
例如:根据用户信息,给不同的用户推荐不同的广告。对于人类来说,这几乎是不可能的问题,因为不同的用户有不同的特征,怎么从这些海量的特征中判断每一个用户的喜好是什么呢?并且用户的喜好可能还在发生变化,举个通俗一点的例子,比如某些用户去年还喜欢吃西瓜,今年就讨厌西瓜了。因此,从海量的数据中去人为的总结规律有很大的局限性,而使用机器学习的方式使得这类问题变得简单。
三、什么时候可以使用机器学习?(When)
1.存在某些隐含的模式(underlying pattern)可以被学习到。
举一个反例:预测某个婴儿下一次哭是奇数分钟哭,还是偶数分钟哭。这几乎是一个随机事件,所以不存在任何隐含的模式,因此也就不能使用机器学习的方式来解答。
2.不是很容易总结规律的问题。
如果规律很容易总结,那当然就不用使用机器学习了,直接代码实现即可。
3.有相关的数据。
举一个反例:预测世界末日什么时候到来。显然,因为我们没有世界末日发生的相关数据,所以这个问题也无法用机器学习的方式来解答。
四、机器学习的组成
上图可以看作是整个机器学习过程的组成。
首先从我们的数据出发,它们的具体形式是x到y的映射,比如我们的问题是预测某套房子的房价。那么我的X包括房子面积、房子楼层、是否是电梯房等等特征,Y就是房子的价格。正因为存在某种规律,才使得我们获得的数据按照训练集的每一个x对应唯一一个y。我们用 f 来表示这个X到Y的映射关系(即隐含规律)。
那么如何去求得这个 f 呢?一般地,我们首先会把范围扩大到一个假设集合(称作 H ),比如我们假设房子价格与它的所有特征都是呈线性关系,那么这个假设集合就是一个线性假设集,那如何在这个无限大的假设集 H 中找到我们想要得到的 f 呢,那就需要通过机器学习演算法来实现,我们用 A 表示这个算法。
那这样我们就能求得 f 了吗?答案是否定的,因为很多时候由于数据噪声等原因,我们无法获得一个精确的 f ,而只能获得某一个映射关系 g ,使得 g 最接近这个 f,我们把这个 g 称为最终预测。
一般地,机器学习为了求得隐含的规律,在假设集合上通过演算法对训练集进行“训练”,使求得的预测规律最接近隐含规律。
五、机器学习、数据挖掘、人工智能、统计学的关系
机器学习:
利用数据计算出一个近似隐含规律的预测规律。
数据挖掘:
利用海量的数据去寻找一些有意思的数据特征、规律。
机器学习与数据挖掘的关系:
如果数据挖掘的目标是去寻找数据间的隐含规律,那么数据挖掘和机器学习做的事情是一样的。但是传统的数据挖掘总是着眼于大数据的高效计算。(比如分布式计算框架)
人工智能:
让计算机做(模拟)一些像人一样的智能行为。
机器学习与人工智能的关系:
机器学习是实现人工智能的一种途径,除此之外,还有一些其他的方式可以实现人工智能。
统计学:
利用数据对一些未知的过程做预测。
机器学习与统计学的关系:
统计学的很多知识都可以被借鉴到机器学习中,但是机器学习中也有很多算法不是基于统计学的规律的。