机器学习
机器学习这个概念你可能听说过,它与另外一个经常被人们提及的词——人工智能(AI)有关。人工智能经常被描述为即将实现的科幻噩梦,但它与人类已知的最强大的计算机(你脑袋里的那个计算机)比起来,只不过是沧海一粟。大脑的有意识思考、直觉与想象力让它远远超过任何目前人为设计的计算机程序。在处理大量数据并识别其程序所要查找的趋势与模式方面,算法具有极其强大的能力,但它也有着令人痛苦的局限性。
机器学习是人工智能领域的一个分支。作为一个概念,它很简单:你将大量数据输入算法中,该算法可以学习或发现其中的模式,然后将这些模式应用于它遇到的所有新信息。从理论上讲,你输入的数据越多,算法就能越好地理解和解释未来出现的等效情境。
机器学习可以让计算机分辨猫和狗的区别,研究疾病的性质,或者估算出一个家庭(甚至整个国家电网)在一定时期内所需要的电量。更不用提它在智力上超越专业国际象棋与围棋棋手方面的成就了。
这些算法就在我们身边,它们负责处理海量数据,做出所有决策,从奈飞(Netflix)接下来会为你推荐什么电影,到银行何时认为你受到了诈骗,以及哪些邮件会进入你的垃圾邮件文件夹。
尽管这些基本的计算机程序远远不及人脑,但它们也能教我们如何更有效地使用我们的心智计算机。为了理解这一点,让我们来看看机器学习中最常见的两种技术:监督学习与无监督学习。
监督学习
监督学习是指,你在头脑中有一个特定的结果,然后编写算法来实现这个结果。这有点像数学课本,你可以在课本后面找到答案,但棘手的是如何找到答案。这个学习是有监督的,因为作为程序员,你知道答案是什么。你面临的挑战是如何确保算法从各种各样潜在的输入信息中总能找出正确答案。
例如,你该如何确保自动驾驶汽车上的算法始终能够识别交通信号灯的红色和绿色,或者识别路上的行人?你如何确保用于协助诊断和排查癌症的算法能够正确地识别肿瘤?
这就是分类(classification),监督学习的主要用途之一。在这个过程中,你基本上是在尝试让算法正确地标注某个事物,并证明算法能够在各种现实环境中可靠地执行这项任务(并且随着时间的推移而改进算法)。监督学习产生的算法可以高效运行,并能运用于各种各样的情境,但本质上,这些算法不过是高速运转的分类与标注机器,你用得越多,它们就越有效。
无监督学习
相比之下,无监督学习中并不存在对于结果的任何设想。我们并没有让算法寻求任何正确答案。相反,我们为算法编程是让它处理数据并识别其中的固有模式。比如,如果你有一组关于选民或客户的特定数据,希望了解他们的动机,那么你可以使用无监督学习来检测并呈现那些有助于解释他们行为的数据趋势。某个年龄段的人会在一定的时间、地点购物吗?什么因素让这个地区投票给那个政党的人团结在一起?
我的工作是探索免疫系统的细胞结构。我在工作中使用无监督学习来识别细胞群体中的模式。我一直在寻找模式,但不知道模式是什么、在哪里,因此采用无监督的方法。
这就是聚类(clustering),也就是根据共同的特性与主题将数据分组,而不必按照原本的A类、B类或C类来为数据归类。当你知道自己想要探索哪些广阔的领域,但不知道如何实现自己的目标,甚至不知道在大量可用数据中寻找什么的时候,这种方法是很有用的。当你想让数据显示自己的结论,而不强加预定的结论时,也适合采用聚类的方法。