近几年,机器学习成为一个非常火爆的词语,几乎所有的人,或多或少都听说过它,但很多人对机器学习的理解似是而非。机器学习是人工智能吗?机器学习与大数据、云计算有什么关系?机器学习是不是就是数据挖掘?机器学习是不是就是算法,就是统计学?深度学习是不是机器学习的升级版?在这一系列文章中或许你能找到答案。
同时,机器学习的应用范围越来越广,已经深入到各行各业中。因此,即使你不是互联网从业人员,了解和掌握机器学习也是必要的,只有这样,才能灵活运用机器学习于自身行业的应用场景中。
所以,这一系列文章的目的是让所有对机器学习感兴趣的人都能了解机器学习,面向的是一般性读者。
那么,什么是机器学习?
首先,我们要搞清楚“机器学习”中的“机器”是什么意思。机器学习是英文“Machine Learning”的翻译。Machine的含义很广,在英文中可以代表:机器,机械装置,机动车辆甚至飞机。但Machine Learning是起源于计算机科学的,而在计算机科学领域,Machine指的就是“计算机”。为什么?因为最早的计算机ENIAC诞生于1946年,占地160平方米,重达30吨,可不就是个机械装置嘛,看看下图感受下。
因此,“机器学习”就是“计算机学习”,不是工厂中的机器或机械装置在学习,而是计算机在学习。所以,Machine Learning的正确翻译是“计算机学习”,但机器学习这个词已经流传甚广,约定俗称,所以我们也不用纠结什么名字好,知道它的本意就行。
对机器学习的概念,最正统的、也最晦涩难懂的定义是1997年Mitchell给出的:假设用P来评估计算机程序在任务T上的性能,若一个程序通过利用经验E使得在任务T上获得了性能改善,则我们就说关于T和P,该程序对E进行了学习。
这个定义很严谨,但很容易把人搞晕。很多人看了后,还是云山雾罩。我们换一个角度,不是从“机器学习是什么”来理解,而是从“为什么需要机器学习”这个角度来理解。
众所周知,我们生活在一个人类和计算机共存的世界,计算机拥有很多远远超过人类的能力,比如记忆容量、记忆速度、计算速度、批量处理。而人类相比计算机的一大优势是,人类能从过去的经验中学习。
举个例子,你住在北京南4环以外,明天早上9点需要在北4环的中关村开会,根据你以往的经验,早上开车去中关村堵车非常严重,而且明天又是个周一,堵车会更严重,你基于这些经验,开始决策是7点30分出发,还是7点出发。
而计算机只能执行指令,需要被编程。懂一门编程语言的都知道,计算机实际执行的是人类编写好的if else, for等语句,是非常死板的。
现在的问题是:我们能让计算机从经验中学习吗?还是上面中关村开会的例子,你给计算机输入出发地点,开会时间和开会地点,计算机根据过往的堵车数据,自动计算输出:几点几分出发。
这就是机器学习,简单说机器学习就是计算机学会利用过往的经验完成指定任务。当然,对于计算机来说,过往的经验就是被记录的数据。在这个例子中,周一到周日每个时间段北京各条道路的堵车指数就是过往的经验,就是被计算机记录的数据。
这里,隐含了机器学习的3个关键信息:1个前提,2个动作。
1个前提是:必须有过往的经验,或者说有过往的数据。
没有这个前提,就不是机器学习。例如我们如果没有过往的周一到周日每个时间段北京各条道路的堵车指数数据,只是考虑可能的行车速度、起点到终点的道路距离,从而大致计算出提前出发的时间,这就不是机器学习。
2个动作是:学习经验,完成指定任务。
这2个动作是有顺序的,即计算机必须先学习经验,然后才能完成指定任务。这2个动作在机器学习中有专门的名称:训练和预测。
最后,总结成一句话:
机器学习就是计算机学习,是让计算机学会利用过往的经验完成指定任务。
转自:CSDN - saltriver