人工智能大体经历了三个发展阶段,如图1-3所示。
图1-3 人工智能的发展阶段
这是人工智能发展的第一个阶段,以感知机(第一代神经网络)、专家系统为典型代表。
1950年,图灵提出了“图灵测试”,用于判断机器是否具有智能。
1952年,阿瑟·萨缪尔(Arthur Samuel,1901—1990)研制出了一个西洋跳棋程序。这个程序具有自学习能力,可通过对大量棋局的分析,逐渐学会辨识当前局面下的“好棋”和“坏棋”,从而不断提高自身弈棋水平。这个程序很快就下赢了萨缪尔自己。不久之后,萨缪尔在他的论文中提出了“Machine Learning”(机器学习)一词。1956年,萨缪尔应约翰·麦卡锡(John McCarthy,人工智能之父,1971年图灵奖得主)之邀,在标志着人工智能学科诞生的达特茅斯会议上介绍了机器学习的相关研究工作。
1957年,罗森·布拉特设计出了第一个计算机神经网络——感知机(Perceptron),它可以模拟人脑的工作方式。这为随后其他科学家发明线性分类器和最邻近法奠定了基础。
1969年,美国数学家及人工智能先驱明斯基(Minsky)在其著作中证明了感知机本质上是一种线性模型,只能处理线性分类问题,就连最简单的XOR(异或)问题都无法正确分类。这等于直接宣判了感知机的“死刑”。自此,对神经网络的研究陷入了近20年的“寒冬”,直到1980年才复苏。
1980—2005年是第二代神经网络的发展时期和统计学习方法的“春天”。在这一阶段,具有代表意义的新闻事件是1997年IBM超级计算机“深蓝”击败人类国际象棋冠军卡斯帕罗夫。这一阶段的典型应用是基于统计学贝叶斯算法的垃圾邮件分类。
机器学习源于Geoffrey Hinton,其在1986年发明了适用于多层感知机(MLP)的BP算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题。该方法引起了神经网络的第二次热潮。
机器学习是计算机根据已有的数据(经验)得出某种模型(规律),并利用此模型预测未来(会出现哪种结果)的一种方法。
在机器学习流行的初期,人们通常根据一些领域知识或者经验来提取合适的特征(Feature)。例如,与泰坦尼克号乘客逃生成功率相关的特征包括性别、年龄、家庭成员、舱位级别等。又如,对简单图片进行分类时,可以利用轮廓、不变矩、外接矩形等一系列特征。特征提取的好坏往往决定了机器学习算法的成败。
而对于语音或者复杂图像来说,往往很难描述怎样提取特征。例如,识别图1-4中的动物是不是猫,人们通常认为猫体型较小,毛茸茸的,有一个圆脑袋、一对耳朵、四只爪子,还有一条长长的尾巴。用传统的机器学习方法对猫的图片进行特征提取面临很多困难,如区分不同的部位、提取边缘轮廓等。
图1-4 猫的图片
可是人类只要多看几张猫的图片,就能知道什么是猫,并能说出猫有什么特征。人类似乎能自动“学习”特征。
于是,科学家们开始想办法让人工神经网络具备学习特征的能力,把人们从特征提取的桎梏中解脱出来。由此,人工智能进入了下一个发展阶段。
深度学习出现于2006年,并于2012年迎来了爆发期。在这一阶段,具有代表意义的新闻事件是2016年3月,谷歌旗下的围棋人工智能程序AlphaGo以总比分4∶1战胜了韩国著名围棋棋手李世石;2017年5月,AlphaGo以总比分3∶0战胜了中国著名围棋棋手柯洁。
2006年,Hinton提出了深层网络训练中梯度消失问题的解决方案。
2012年,Hinton课题组为了证明深度学习的潜力,首次参加了ImageNet图像识别比赛,并凭借自己构建的卷积神经网络(CNN)AlexNet一举夺得冠军,该方法在性能上碾压排在第二名的SVM方法。也正是由于这次比赛,CNN引起了众多研究者的注意。CNN可以代替人工提取特征,用于动物图像分类识别。
与此相似,在语音识别领域,长短记忆(LSTM)神经网络也可以代替人工完成很多工作。
深度学习火热发展的重要原因之一就是,人们把提取特征的工作交给了人工神经网络。
在机器学习阶段,人们需要利用各种经验或算法提取特征,然后调整一些参数,目的是防止过拟合。而在深度学习阶段,除了实现CNN或者LSTM神经网络,人们似乎什么也不用干。也就是说,人们可以把特征提取这样的麻烦事交给CNN或者LSTM神经网络去做。因此,人们需要一个机器学习框架来实现CNN等人工神经网络,完成人工智能应用开发。