人工智能旨在构建自主机器——无须人为干预就能完成复杂任务的机器。今天的科学幻想,可能就是明天的现实。
人工智能(artificial intelligence):设法构建自主机器——无须人为干预就能完成复杂任务的机器。它与心理学、神经学、数学、语言学、机电工程相融合。本章主线:感知(理解输入)→ 推理(搜索状态图)→ 行动(执行器响应)。
智能体 agent:能对环境的刺激做出响应的"设备"——可以是机器人、无人驾驶飞机、游戏角色,也可以是通过网络通信的客户机/服务器进程。两大部分:传感器 sensor(麦克风、照相机、距离传感器——接收内外部数据)与执行器 actuator(语音合成器、夹子、车轮——对环境做出响应)。
① 反射动作 reflex action:对输入的预定响应(碰到烫就缩手);② 更"智能"的行为:以目标为导向,周密考虑、制定行动计划、在各选项中选最优——执行器的动作必须是对传感器数据的合理响应;③ 介于两者之间的各种层次。
程序性知识 procedural knowledge = 学习"怎样"。通常通过反复试验:出错受罚、正确受奖,智能体逐渐学会恰当的动作。例:学骑自行车、训练机器人走迷宫。
陈述性知识 declarative knowledge = 学习"什么"。形式是扩充或变更知识库中的"事实",再据此确定对未来事件的合理响应。例:记住"红灯停"、把新单词加入词汇表。
试图开发展现智能行为的系统——根本目标是生产符合功能目的的产品,产生面向性能的方法论。例:下棋程序只要能赢就好,不必像人那样思考。
从计算的角度研究动物(尤其是人类)的智能——根本目标是增进对计算智能的理解,关注底层过程而非外在性能。例:研究神经元如何协作,再照它造模型。
智能体要智能地响应传感器的输入,就必须理解那些输入——即"感知"。最具挑战性的两个领域:理解图像与理解语言。
图像处理 image processing:识别图像的特征。① 轮廓增强:用数学技术使各区域的边界更清晰;② 平滑处理 smoothing:去除图像缺陷(可防错误干扰后续步骤,但过度平滑会丢失重要信息)。
图像分析 image analysis:理解这些特征所代表的含义。手段之一是区域发现:识别图像中具有共同属性(亮度、颜色、纹理)的那些区域。平滑、轮廓增强、区域发现合起来,就是在识别图像的各个组成部分。
对句子的主要成分进行语法分析——主谓宾各是谁,结构是否合法。
标识句子中每个词在语法中的作用,进而理解词与词的意义关系。
把句子的上下文引入理解过程——同一句话在不同场景下意思不同。例:"他真行。"可以是夸奖,也可以是反讽。
信息检索 information retrieval——标识与当前主题相关的文档。例:搜索引擎按关键词找出相关网页。
信息抽取 information extraction——从检索到的文档中把所需信息提取出来。例:从新闻中自动抽出事件的时间、地点、人物。
产生式系统 production system:解决一类具有共同特征的推理问题的抽象实体——把"问题"变成"在状态之间找路"。例:八数码游戏,把打乱的 8 个方块移回初始位置。
状态 state:应用环境中存在的情形。开始状态 start state = 现状;目标状态 goal state = 期望实现的情形。例:八数码中每个方块摆法都是一个状态。
产生式 production:让系统从一种状态转换到另一种状态的操作(规则/步骤),每个产生式关联先决条件——条件不满足就不能用。例:只有空格旁边的方块才能移动。
控制系统 control system:根据当前状态,从产生式集合中选出下一个该用哪一个,以最终到达目标状态——即"搜索"。
问题空间 problem space = 状态集合 + 产生式集合 + 控制系统的总和,常用状态图 state graph 表示:节点是状态,箭头是产生式。它是概念化问题的方法,但表示不了全部内容。
控制系统遍历状态图找从开始到目标的路径:逐层记录可达状态,直到目标出现——这个过程实际构建了一棵搜索树 search tree:根 = 开始状态,孩子是应用一个产生式可达的状态,每条边 = 一次产生式应用。
| 搜索策略 | 做法 | 特点 |
|---|---|---|
| 广度优先 breadth-first | 一层层构建搜索树 | 彻底但太慢,复杂问题吃不消 |
| 深度优先 depth-first | 沿纵向路径深入,碰壁再回溯 | 省空间,但可能一头扎进死胡同 |
| 最佳优先 best-first | 被选中深入的纵向路径,是"看起来最优"的那条 | 常用折中方案,配合启发式使用 |
启发式 heuristic:与每个状态相关的数值,衡量该状态与最近目标之间的"距离"——是规划代价的量度。两个选项中,启发值较小的状态代表应该追求的方向。例:八数码中用"还有多少方块不在位"来估价。
到达相关状态时,启发式必须对解决方案的剩余工作量有合理估计——在多个选项中能提供有意义的信息;估计越准,据此做的决定越好。
启发式应有益于搜索而非成为负担——如果计算它非常复杂,还不如把时间花在广度优先搜索上。
知识处理、学习、处理复杂问题——对人脑轻而易举,对机器却负担沉重。
现代计算机擅长存储和检索任何可离散化、数学化为 0 和 1 的数据;软件工具借助 AI、机器学习和统计技术,能发现大型数据集中以往看不见的模式和连接。但真实世界的知识庞杂多元,知识的应用需要依环境得到恰当的含义与范围——这为知识的表达和应用处理带来巨大挑战。
模仿 imitation:人直接演示任务的步骤(执行计算机操作或移动机器人做动作),计算机只需记录这些步骤。
监督训练 supervised training:人对一连串示例(训练集 training set)做出正确反应,智能体对示例归纳,开发出适用于新案例的算法。
强化 reinforcement:智能体通过反复试验积累成功与失败的经验,得到一般规则,进而指导自己的判断。
A* 算法能找到许多搜索问题的最优解,但有些问题复杂到无法用搜索技术求解——这时可以模拟进化,让试探解"繁殖"出更好的后代。遗传算法 genetic algorithm:把随机行为与繁殖理论、自然选择的进化过程相结合来发现解。先生成试探解的随机池——每个解都只是一种猜测;每个试探解叫染色体 chromosome,构成它的独立个体叫基因 gene。
新染色体池的每条染色体是前代两条染色体(双亲)的后代,双亲从池中随机选择,但概率性优先选择更可能生成解的染色体——模拟适者生存;后代是双亲基因随机组合的产物,偶尔还以随机方式变异。
反复多代,期望演变出越来越好的试探解——找到的虽不是最佳,但非常好。局限:遗传算法并不保证最终一定找到解;研究表明它能有效解决种类繁多的复杂问题。
进化规划 evolutionary programming:把遗传算法用于程序开发任务——不直接编写程序,而是模拟进化过程开发程序。做法:建立包含各式函数的程序集合作为"基因池",逐代用上一代的最佳组合生成新的一代,让解逐步演进。函数式语言的程序由嵌套函数构成,天然适合这种基因重组。
理论路线的代表成果:不手写规则,而是模仿大脑的硬件结构,让机器自己"学"出模式。
神经元(neuron)通过树突 dendrites 接收信号,经轴突 axon 传出;细胞间靠突触 synapses 连接,一个神经元可与上万个细胞相连。人脑约有 1011 个神经元,每个神经元平均有约 104 个突触。
每个输入乘权重 weight 后求和:v₁w₁ + v₂w₂ + …;总和超过阈值 threshold value 就输出 1(兴奋),否则输出 0(抑制)。调整权重就能改变"触发条件"。
典型结构:输入层 input layer 的每个神经元与下一层每个神经元全连接,中间可有多层隐藏层 hidden layers,最后到输出层 output layer。分层、全连接、同层不互连。
监督式训练:给网络看已知答案的样本,输出错了就把相关权重调小一点、对了调大一点;反复成千上万次后,权重组合"学会"了模式——没有人手写规则。
机器人学研究"有身体的智能体"——把感知、推理、行动装进真实物理设备,因此几乎涵盖人工智能的全部领域,还要结合机械与电子工程。
最早的"机器人"是固定在生产线上重复动作的机械臂,如汽车焊接、喷漆。它们位置固定、任务单一,智能含量低,但精度与耐力远超人类。
移动机器人 mobile robots 要在变化环境中自行导航;自主机器人 autonomous robots 进一步独立决策,如仓储分拣机器人、自动驾驶汽车、火星车。
不建复杂内部模型,而是"看到就反应":用简单规则直接响应传感器输入,在动态环境中更鲁棒,成本也更低。
把进化计算用于机器人本身:让控制程序甚至身体结构在仿真中"进化",筛选出适应任务的设计。
同一场革命,两种叙事——学习本章的意义之一,是作为未来的决策者,提前形成自己的判断。
乐观者视 AI 为人类的礼物,把人从劳作中解放;悲观者担心大规模失业、财富与权力向技术拥有者集中。教材并列呈现两种立场,尚无定论。
历史上每次科学革命都动摇人类的特殊地位;若机器在智能上超越人类,"人何以为人"将成为绕不开的哲学问题。
自主系统出错时责任归谁——设计者、使用者还是机器?法律与伦理框架明显滞后于技术,自动驾驶事故已在倒逼规则重建。
深度依赖会削弱人自身的能力;AI 也可能被滥用于监控、操纵与武器化。技术中性,使用有向。