人工智能
人工智能即 AI(Artificial Intelligence),是指由人制造出来的机器所表现出来的智能。人工智能是一门多领域的学科,涉及计算机科学、心理学、语言学、数学、神经科学、哲学等多个学科。
机器学习
在机器学习中,计算机可以利用输入的数据,通过学习来自动改进自己的性能。机器学习是人工智能的一个分支,它使计算机具有学习的能力,而不需要人类干预。
一般地,机器学习有如下的流程:
- 将预期的输出数据(标签)和学习模型的计算结果进行比较
- 根据比较结果,调整模型的参数
- 重复上述过程,直到模型的输出结果与预期的输出数据相符
机器学习的类型
机器学习主要关注两类问题,一类是分类问题,另一类是回归问题。
- 分类问题:将输入数据划分到不同的类别中
- 回归问题:预测输入数据的输出值
举个例子,假设我们有一些关于房价的数据,包括房屋的面积、房间的数量、房屋的位置等信息。我们可以利用这些数据来训练一个模型,然后利用这个模型来预测房屋的价格。这就是一个回归问题。
而如果我们有一些关于垃圾邮件的数据,包括邮件的内容、发件人的地址等信息。我们可以利用这些数据来训练一个模型,然后利用这个模型来判断一封邮件是否是垃圾邮件。这就是一个分类问题。
深度学习
深度学习是机器学习的一个分支,它但是这种方法不需要为了增加模型的学习正确率而人为增加数据,而是学习模型自己提取特征。深度学习的核心是神经网络。
深度学习为何深? 原因是输入层和输出层之间的隐藏层的层数较多,这就是“深度”这个词的来源。
隐藏层是指将输入层接收到的信息通过各种组合传出,将信息变形为更有用的信息。隐藏层的层数越多,模型的表达能力就越强,但是训练的难度也就越大。
机器学习和深度学习的区别
传统的机器学习模型需要人工提取特征,然后利用这些特征来训练模型。而深度学习模型不需要人工提取特征,它可以自己提取特征。
例如我们希望识别语音转文字数据,传统的机器学习中我们需要提取出声音的频率、声音的强度等特征,然后利用这些特征来训练模型。并且受限于特征提取的能力,模型的表达能力也会受到限制。输入 "Hello" 的语音可能会被提取为 "Halo"。而深度学习模型可以自己提取特征,不需要人工干预,因此可以更好地识别语音。
谷歌的猫和神经网络
2012年,谷歌的研究人员利用深度学习的方法,训练了一个神经网络模型,然后利用这个模型来识别 YouTube 视频中的猫。
首先将图像裁剪成 200x200 的大小,经过了大概三天的深度学习,得到了对猫和人脸图像有区分能力的神经网络。
计算机是如何认出一只猫的?这个问题的答案是:计算机并不知道猫是什么,它只是知道一些特征,比如猫的眼睛、猫的耳朵等。计算机通过学习大量的猫的图像,然后自己提取出了这些特征。例如在神经网络的隐藏层中有对线产生反应的节点、有对人脸产生反应的节点等、有对猫产生反应的节点等。这些节点的组合就是计算机对猫的认知。
符号主义和连接主义
在提出人工智能的概念的达特茅斯会议上,人工智能的研究者们分成了两派,一派是符号主义,另一派是连接主义。
符号主义的观点是,人工智能的核心是符号的处理。人类的思考对象都可以符号化,通过逻辑性的操作,该符号可以再现人类的思维过程。具体来说就是,比如像要识别一个苹果,我们会告诉计算机,苹果是一个圆形的水果,表面是红色的,有一个茎,这样计算机就可以识别出苹果。然而,符号主义的方法在处理一些复杂的问题时,效果并不好。这是因为符号主义的方法需要人工提取特征,而且对于一些复杂的问题,人工提取特征的能力是有限的。
连接主义的观点是,人工智能的核心是神经网络。人类的思维是由神经元之间的连接所决定的。连接主义的方法不需要人工提取特征,而是通过学习来提取特征。这种方法的优势是可以处理一些复杂的问题,但是它的缺点是需要大量的数据和计算资源。
人工智能的三次浪潮
人工智能的发展经历了三次浪潮:
第一次浪潮:符号主义
上世纪 50 年代,符号主义是人工智能的主流。符号主义能够解决一些简单的问题,但是对于一些复杂的问题,符号主义的方法并不适用。最终,符号主义的方法被证明是不可行的。
第二次浪潮:知识库(专家系统)
上世纪 80 年代,知识库(专家系统)是人工智能的主流。知识库是一种将人类的知识转化为计算机可以理解的形式,然后利用这些知识来解决问题的方法。知识库的方法在一些特定的领域中取得了一些成功,但是它的缺点是需要大量的人工知识。例如想要搭建一个诊治疾病的专家系统,就需要大量的医学知识进行逐个判断。
if 症状1 == '头痛' and 症状2 == '发烧':
print('感冒')
第三次浪潮:深度学习
2010 年开始,以机器学习和深度学习为代表的方法成为了人工智能的主流。这股浪潮的背景是大数据技术的发展和计算资源的提升。深度学习的方法不需要人工提取特征,而是通过学习来提取特征。这种方法的优势是可以处理一些复杂的问题,但是它的缺点是需要大量的数据和计算资源。