3.1 机器学习的发展现状

对于机器学习,至今很多人都存有一个误区—把深度学习和机器学习等同了起来。实际上,深度学习是机器学习的一种方法。深度学习于 2006年被提出,2010年得到迅速发展。而很多之前的机器学习方法,比如统计学习方法,也都一直存在着。很多人之所以对机器学习存有这样的误区,主要原因在于:当今机器学习的主要思维方式是在大数据和大算力的基础上构造复杂模型,而这又和深度学习的研究方式相吻合,且这个思路在解决很多实际问题时,也产生了很好的效果。

2010年,ImageNet大型图像数据集出现,在最开始的ImageNet图像识别挑战赛上,参赛队伍使用的都是浅度学习的方法。而真正推动了深度学习迅速发展的一个标志性事件是,2012年深度学习模型AlexNet首次参加该比赛就获得了冠军。和其他模型相比,它在这个数据集上的分类错误率下降了更多。另外,深度学习也需要较大的算力,有研究者开始结合GPU训练深度模型,这一理念已经融入了现在的研究方式中,很多研究者都可以通过机器学习的标准数据集做各种实验,并通过各种方法的比较推进研究进程。其中,ImageNet应该是最有影响力的数据集之一了,它有效地推进了深度学习模型的发展。另外,除ImageNet数据集之外,还有很多其他数据集,很多研究者也基于这些数据集提出了新的问题,它们也同样推进了相关研究的发展。

ImageNet数据集除了支持图像分类任务,由于其数据量足够大,覆盖范围足够广,在其上训练的模型也可以有效地迁移到其他任务场景中。比如,它可以把一张图转变成一个能够被计算机有效使用的特征向量,然后通过特征向量去做后续任务,我们把这种方式称为表示学习。同样的数据所带来的不同表示方式,直接决定了后续任务的效果。因此,找到针对各种数据的好的表示方式,往往是机器学习的核心任务。

“大数据+大算力”的方法让机器学习解决了很多困难和问题。一个比较著名的例子是AlphaGo,它是通过生成大量数据,并通过自对弈来学习下围棋的模型。当年,AlphaGo战胜了人类围棋世界冠军,引起了全世界的轰动。因为人们觉得下围棋是一件很难的事情,而计算机程序的水平在当时又离人类最高水平差得很远。但是AlphaGo的成功说明,当我们有了足够大的算力投入及很好的算法后,计算机就能够取得超出我们预期的、更好的效果。后来,又有研究者把这个思想继续向前推进,比如,DeepMind 和 OpenAI 这些公司,它们会基于一些虚拟场景并利用生成的大数据来完成一些更加复杂的游戏。

现阶段,“大数据+大算力”可以在以下几方面发挥重要的作用。

(1)通过训练,我们能得到更加复杂的模型,以此提升模型在测试阶段的性能,也就是泛化能力。

(2)基于大数据训练的向量表示得到了广泛的应用。向量表示是指将一个数据(如图像、文本)用向量表示出来,其优势是能为模型的后续计算带来方便。同时,向量表示也可以迁移到其他场景中,并且在很多场景中都已得到了应用。

(3)大算力使自动化的机器学习成为可能。当算力足够大的时候,人类之前的一些工作就可以由机器代替,并通过机器学习的方法来实现。在未来,当算力变得更大的时候,很多新模型就可以由机器设计出来了。

(4)这个方法还可以有效地应用于强化学习,在虚拟世界里自动生成大量的数据,使得大数据思维在虚拟世界里能得到非常好的实现。我们可以通过定义场景,并在虚拟世界中最大化地利用数据,从而在简单的场景里开发更多有效的算法和模型。

但是除此之外,机器学习还存在着几个方面的困境。

第一个困境是鲁棒性不强,比如存在对抗样本(Adversarial Example)。实际上,这也说明我们现在的模型训练方法和模型本身的构造都存在一些问题。

第二个困境是模型的自适应性不强。如果我们将在一个数据集上训练出来的模型用到另外一个数据集上,其效果就会减弱。比如,如果训练图像是在室内拍摄的,那么当我们把训练出的模型应用于室外图像分类任务时,就可能出现很多错误。而在实际任务中(比如图像分类任务),人对不确定性的适应能力会明显高于机器。现在,很多复杂应用场景都具有不确定性,这就让AI能力受到了限制。如果对于不同的特定场景,我们建立了定制化的训练数据集来训练模型,那么模型在通用性方面的效果则是比较差的。

第三个困境是任务可扩展性不强。比如,从一个任务“会下围棋”到另一个任务“会打Dota游戏”,两者之间存在着一个很大的鸿沟,机器不能用相似的模型和方法把整个过程全都代替。对人而言,我们可以想象人脑是一个通用模型,只要有足够多的训练时间,它就能处理非常多的不同的任务。但是对于机器来说,这是不可行的。

我们相信,现在的很多问题在未来都会慢慢得到解决。比如,复杂场景中的简单任务问题,它可能需要向量表示与多元数据相融合的技术,以及从虚拟到现实的迁移能力。这样一些比较复杂的场景,比如让无人汽车或机器人在一些特定环境中执行任务,就可能会变得更加容易实现。这些任务需要我们在给定一些复杂输入信号时做简单的输出。无人汽车融合不同传感器的输入,输入信号相对复杂,但是输出只是方向盘的角度和刹车力度,这就是在复杂场景中执行简单任务的例子。无人汽车的复杂场景输入限制了目前机器学习的效果,特别是处理罕见情况的能力不足,同时,也存在小数据学习的问题,目前也有人在研究这方面的问题,但是研究还处于早期阶段,我们相信未来会有越来越有效的方法出现。现在也有一些研究人员尝试从理论上分析这些问题,如果有了理论指导,今后我们就可以更好地解决这些问题。

第四个困境是,无法构造出可以“理解”世界的模型,比如,构造通用自然语言处理(Natural Language Processing,NLP)的能力。虽然无人汽车的应用场景比较复杂,但是无人汽车是在执行一个可以清晰定义的单一任务。而构造可以“理解”世界的模型,需要具有能执行不确定任务的能力,所以这是更加困难的任务。目前,对于这种能力,业界并没有好的解决方案,我们也只能期待在不远的将来会有可能实现。

综上所述,机器学习发展到现在,其实还远不能解决所有的问题。我们还有很多新的问题要去解决,还有很多新的方向有待探索。只有不断提出新的方法,并积极解决上述问题,我们才能够真正扩大机器学习的适用范围。