1.1 什么是机器学习
前几天我把自己最喜欢的电影《谍中谍6》又看了一遍,这部电影实在是太精彩了,可以称为“最好看的谍战片”,《碟中谍》系列电影的前5部系列在豆瓣上评分都是8分以上。每当我在豆瓣上打开这部电影,豆瓣都会推荐我可能喜欢的其他电影。这些推荐的电影还真符合我的“口味”,比如推荐的电影《生死时速》、《飓风营救》也是我喜欢看的。那么豆瓣是如何知道用户的喜好,这些推荐背后的秘密是什么呢?
像豆瓣、淘宝、QQ音乐这些推荐系统,背后的秘密武器正是机器学习。下面我们用最通俗易懂的大白话来聊聊,到底什么是机器学习?
机器学习有点像人类的思考过程,假设我们去买苹果,苹果是一种营养成分高的水果,国外谚语“每天一个苹果,医生远离我”。我们想挑又脆又甜的苹果,怎么挑呢?记得妈妈说过,苹果的表面要光滑,没有虫眼,没有干枯。所以我们有了一个简单的判断标准:只挑表面要光滑的。
如果用计算机程序来帮我们挑选苹果,则可写下这样的规则:
if (表面光滑) then 苹果是甜的 else 苹果不甜
我们会用这些规则来挑选苹果。如果在我们的苹果实验中有了新的发现,比如在我们买回的苹果中有些是不好吃的,经过品尝各种不同类型的苹果,我们发现如果带着蒂的话那一定要选蒂比较绿的,枯黄的话就说明苹果已经不新鲜了。
所以我们修改了规则:
if(表面光滑 and 蒂比较绿 ): 苹果是甜的 else: 苹果不甜
我们会发现这个普通的计算机算法有个缺点,那就是:我们得搞清楚影响苹果甜度的所有因素的错综复杂的细节,比如又发现了自然熟透了的苹果都是黄里透红,苹果越重说明含水量越充足,等等。如果问题越来越复杂,我们就要针对所有的苹果类型建立规则,手动地制定挑选规则就变得非常困难。
那如何解决克服这个缺点呢?机器学习算法可以解决这个问题。机器学习算法是由前面的普通算法演化而来的。通过自动地从提供的数据中学习,它会让我们的程序变得更“聪明”。
我们从市场上的苹果里随机地抽取一定的样品(在机器学习里叫作训练数据),制作成下面的一张表格,上面记着每个苹果的物理属性,比如颜色、大小、产地等。(这些苹果的属性称之为特征)。还记录下这个苹果甜不甜(这叫作标签)。
我们将这个训练数据提供给一个机器学习算法,然后它就会学习出一个关于苹果的特征和它是否甜之间关系的模型。下次我们再去市场买苹果,面对新的苹果(测试数据),然后将新的苹果输入这个训练好的模型,模型会直接输出这个苹果是甜的,还是不甜的。有了这个模型,我们现在可以满怀自信地去买苹果了,根本不用考虑那些挑选苹果的细节。只需要将苹果的物理属性输入这个模型,就直接可以知道苹果是不是甜的。
更重要的是,我们可以让这个模型随着时间越变越好(增强学习),当这个模型读进更多的训练数据,它就会更加准确,并且在做了错误的预测之后进行自我修正。这还不是最棒的地方,最棒的地方在于,我们可以用同样的机器学习算法去训练不同的模型,比如我们可以使用同样的机器算法来预测橘子、西瓜的模型。这是常规计算机传统程序办不到的,这就是机器学习的专属优势。
总结一下,机器学习是用机器学习算法来建立模型,当有新的数据过来时,可以通过模型来进行预测。机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。