03 在大数据与深度学习中蝶化的人工智能(第6/11页)

感知机好比在输入和输出之间只有一层的神经网络。当面对复杂一点的情况时就力不从心了,比如当“正确”和“错误”的球互相混合的时候,或者又有第三种球出现的时候,感知机就无法找到那个分类的界线。这使感知机很难在一些即使看似简单的问题上有所突破。

如今,不需要人类输入规则(编程),而是让机器自己寻找规则,这样看上去机器就有了自己的智能。今天的人工智能便是在机器学习的基础上发展起来的,只是成长速度受到硬件和方法的限制。

如果多台电脑、多个芯片联网进行机器学习,而且具备多个芯片网络层次,就进入了所谓的“深度学习”的范畴。在20世纪70年代末,Geoffrey Hinton教授等人已经发现,如果能实现多层的神经网络,就可以逐层递进找到模式中的模式,让计算机自己解决复杂的问题。那时他们就开发了“反向传播”算法神经网络。但是多层神经网络的复杂性也导致对其训练的难度大大增加,数据不足和硬件计算能力成为掣肘。

从20世纪60年代中期到20世纪70年代末,机器学习的发展步伐几乎处于停滞状态。这种情况一直到20世纪80年代才有所好转。随着计算机性能的突飞猛进和互联网的到来,人工智能研究终于如虎添翼,在20世纪90年代,现代机器学习初步成形。

互联网在20世纪90年代投入商用,使分布式计算方法获得长足发展。超级计算机造价昂贵,而分布式计算技术则发挥了“人多力量大”的优势,让多台普通计算机可以协同工作,各自承担计算任务的一部分,并把计算结果汇总,效率可以超过超级计算机,而且分布式的结构正好适应了日渐增多的数据量。

计算机神经网络生长与深度学习

由于传统人工智能一味依赖科学家输入的规则模型,导致它只有在解决一些规则比较清楚的问题时才比较有效,比如击败卡斯帕罗夫的“深蓝”就是这样一种“人工智能”。当面对识别一张图片这类人类在婴儿阶段就能学会的简单问题时,这类人工智能却无计可施,因为这种认知类问题只有一个模糊的概念,没有清楚简单的规则。而计算机神经网络的特点就是它不需要人类提前告知规则,它会自己从海量的基础数据里识别模式(规则)。

顾名思义,神经网络类似人类大脑,由一个个神经元组成,每个神经元和多个其他神经元连接,形成网状。单个神经元只会解决最简单的问题,但是组合成一个分层的整体,就可以解决复杂问题。

Geoffrey Hinton认为,传统的机器学习方法只利用了一层芯片网络,在遇到真正复杂的问题时,处理效率就会变得十分低下。深度学习的最核心理念是通过增加神经网络的层数来提升效率,将复杂的输入数据逐层抽象和简化。也就是说,将复杂的问题分段解决,每一层神经网络就解决每一层的问题,这一层的结果交给下一层去进行进一步处理。

有一层神经网络,就可以找到简单的模式;有多层神经网络,就可以找出模式中的模式。以人脸识别为例,神经网络的第一层只专注于边长几十个像素之类的图像区域,从中识别出一些形状(形状就是模式)——眼睛、鼻子、嘴巴等。再把这些已经识别出的形状交给下一层神经网络,下一层网络在已有的识别结果里,又发现了更大的模式——眼睛、鼻子、嘴巴可以组合成人脸。如果描述得更数学一点,当下流行的深度神经网络可分为应对具有空间性分布数据的CNN(卷积神经网络)和应对具有时间性分布数据的RNN(递归神经网络,又称循环神经网络)。

CNN往往用于图像识别,正如上文描述的,网络的第一层被训练成可以完成这样一个“小目标”——识别图像中局部的独立模块,如一个方块、一个三角形,或者一个眼睛。在这一层,人类输入大量图片数据,只为让该层神经可以辨别基本的局部图形“边缘”,即一个像素旁边没有任何东西。接下来的每一层都在前一层得出的信息中寻找更高层次的模式。这种方法模拟了人眼组合信息的方式,丢弃次要细节,优先识别出某种显著模式。如几个小块和一个圆圈合在一起成为一张脸,不论它出现在图像中的什么位置,人眼会首先注意这张脸,而不是平均注意图像的所有部分。

RNN则往往用于语音识别和自然语言处理。因为语音和语言是一种按照时间分布的数据,下一句的意义和上一句有关。RNN网络可以记住历史信息。假设我们需要开发一个语言模型,用前面的句子预测后面的词汇。给定“I was born in China in 1976. My college major is mathematics. I speak fluent_____”这句话的最后一个词显然是Chinese(汉语),这对人类很简单,计算机神经网络则需要能够调取到之前的“China”(中国)信息才能做到,这就需要有一种循环设计,使神经网络能够具有一种时间上的深度。