人工智能 又被称为机器智能,是一种综合计算机科学、统计学、语言学等多种学科,使机器 模仿、展现 人类智能的 技术。
说到人工智能我们不得不提到图灵测试,那么什么是图灵测试呢?
计算机科学家 艾伦·图灵 在 1950 年发表了一篇论文,文中提出了一项思想实验:我们委托一名人类测试员,使用测试对象能够理解的语言,分别和身处密室中的一台机器、一名人类自由地进行对话。假如经过若干轮对话后,测试员依然无法分辨出谁是机器、谁是人类,则说明该机器通过测试,是具有智能的。
人工智能的应用也可分为四大主要组成部分:
例如在生活中我们常见的图书馆或者小区的门禁(用人脸解锁的那种)就体现了计算机视觉方面的智能,还有手机的语音助手,小爱,小艺,小度,siri等他们则体现了自然语言处理方面的智能。
人工智能的实现方法主要有三种:
其核心思想就是通过事实和规则,自动分析其中的逻辑关系,最终得出结论。
我们可以举一个例子:
以下有三条事实和规则:
由此可以得出结论:小明与小红之间是朋友关系。
这一套逻辑在 Prolog 编程语言中,可以这样表达:
human(xiaoming). # 小明是人类
human(xiaohong). # 小红是人类
like(xiaoming, xiaohong). # 小明对小红有好感
like(xiaohong, xiaoming). # 小红对小明有好感
# 对于朋友关系的定义:
# 当 X、Y 都是人类,并且 X 对 Y 有好感、Y 对 X 也有好感,
# 则 X 和 Y 之间是朋友关系
friend(X, Y) :- human(X), human(Y), like(X, Y), like(Y, X).
# 小明和小红之间是朋友关系吗?
?- friend(xiaoming, xiaohong).
# 输出:true.
Prolog 是一种逻辑编程语言,专门用来解决逻辑问题。(并非重点,自行了解)
上个世纪逻辑编程大放异彩。众多计算机科学家采用这一思路编写“人工智能”程序解决复杂代数应用题、证明几何定理,开发出了世界上第一款聊天机器人——ELIZA。
实际上,ELIZA 的底层逻辑十分简单。
它由若干条规则构成,当检测到患者的输入中含有模糊的定义时,会引导他举一个具体的例子(think of a specific example);当检测到患者表达了伤心、难过的情绪时,会及时地反馈“I am sorry to hear that …”;此外的大多数时候,ELIZA 只是单纯地变换主语,然后复述患者的话。
逻辑编程实现人工智能的缺点:
在一些 边界模糊、无法用简明逻辑描述 的任务面前(例如图像识别,自然语言处理等方面)逻辑编程显得力不从心。这归根结底是因为逻辑编程方法的核心思路,是 表示知识(事实)和规则,此时计算机的智能完全依赖于人类的智能,也就是编写程序的我们。
那么如何改进呢:
让机器自己学会思考,学会根据 已有的经验 应对 不确定的未来。
在经历了长达数十年的摸索后,计算机科学家们终于找到了人工智能的突破口。现代化的人工智能技术,发扬了机器 计算能力强、擅长处理大量数据 的特点,让机器在海量数据中学习解决问题的方法。
这便是使人工智能真正具备应用可能的划时代技术——机器学习。
机器学习 的核心目标,是教会计算机学习知识的方法。而这个“方法”,就是 机器学习算法。
就像我们在学习写作时,会先学习简单词句,再进行写作的练习,并且会参加大大小小的考试,检测学习成果。机器在学习时也是一样:
机器学习的核心在于 学习,也就是 生成模型 的过程。在传统机器学习算法中,我们需要人工地从数据中 提取特征,再让机器学习这些特征之间的个性与共性。整体的流程是这样的:
那什么是 特征 呢?
特征,是能够表示某类知识的 最小单位。文本类信息有文本的特征,语音类信息有语音的特征,图像信息有图像的特征。
以文本类信息为例。一篇文章由若干句子构成,每个句子里,若干词语按顺序排列好。同样的词语,因为出现位置的不同,代表的含义可能完全不同。词语出现的次数,又极有可能反映出一句话或一段话的主旨与情感。所以文本的特征,是词语出现的 次数 与 位置。
机器学习实现人工智能的缺点:
①想要准确描述图像的特征依然太难,这就造成了图像识别的正确率并不是很高。
②机器在应对不同任务时,所需要的方法也是有差异的。这就与科学家所追寻的大道至简的思想背道而驰。
经过广泛研究,科学家们在 机器学习 基础上提出了一套更简练、更触达“智能”本质的技术——深度学习。
深度学习 是一种 端到端 的机器学习方法,运用类似人脑神经元的 神经网络 结构,赋予机器思考的能力。
人们不再需要人工地提取数据的特征,只需要把这些数据原封不动地喂给 神经网络,机器就能在不断探索的过程中,自动地提取数据中的特征,完成模型的训练。
著名计算机研究学者 李开复 曾经举过这样一个形象的例子:假设深度学习要处理的数据是信息的“水流”。神经网络就像是一张巨大的水管网络,网络由若干层构成,每层都有许多能够控制水流流向与流量的 调节阀。根据不同任务的需要,水管网络的层数、每层的调节阀数,可以有不同组合。
就像:
这张巨大网络的入口,是等待处理的数据;出口则是若干个牌子,每个牌子对应着一个识别结果。神经网络的目的是让每个输入都匹配到正确的结果。
比如在 人脸识别 任务中,训练集由若干名人类的面部照片构成,每个人可能有许多张不同光线、角度、姿势的照片。因此水管网络的入口是 抹去姓名的照片,出口是这些人的 姓名。机器的任务,就是调节阀门,让照片与人名对应起来。
例如我们将人物A对应的照片喂给水管网络,图片被解析成字节构成的水流,在水管网络中流淌。等水流流过整个水管网络,机器会跑到出口位置观察:是不是人物A这个出口的牌子流出的水多。
一来二去经过一个数量庞大的训练集的训练,整张网络变成了经验丰富的摆渡人,能顺利地将每个输入结果对应到指定输出。我们就可以宣布,一个深度学习人工智能程序 训练 完成了。
深度学习是机器学习的一种特殊算法,而机器学习是实现人工智能的一种方式。很多同学在刚接触这些概念时,会把深度学习和机器学习搞混,认为它们是同一层级的技术。这是不对的。
相比于传统机器学习算法,深度学习的实现过程像是一个巨大的黑盒。我们无需关心黑盒子内部的实现原理,只要在最开始告诉程序若干对 输入-输出 结果对,“对于输入 A,我希望得到结果 a;对于输入 B,我希望得到结果 b……”,程序便会自动地分析每个输入的特征,找到一种合适的方式达到目标结果。
科学家们按照人工智能与人类智能之间的关系,将人工智能分为三类: