第一篇 理论工程总论
第1章 为什么研究模拟人的感知与认知
1.1 从“人工智能”重新思考机器认知
人工智能长期以来主要围绕一个问题发展:
如何让机器表现出类似智能的能力?
围绕这个问题,产生了机器学习、深度学习、神经网络、大语言模型、计算机视觉、语音识别、机器人控制等大量技术。
这些技术已经能够使机器完成许多过去只有人才能完成的任务。
但是,如果把问题进一步向前追问,就会出现一个更加基础的问题:
机器究竟是如何形成对现实世界的认识的?
一个机器人能够抓取一个鸡蛋,并不意味着机器人真正“理解”了鸡蛋。
机器人可能只是执行:
目标位置
↓
机械臂轨迹
↓
夹爪闭合
↓
压力控制
如果这个过程主要依靠大量预先采集的数据、固定参数和不断试错,那么机器人完成的实际上是:
控制动作。
而我们真正希望研究的是:
机器如何根据当前感觉到的对象状态,动态形成认知,并根据认知调整自己的行为。
这两个问题看起来相似,实际上属于不同层次。
前者主要研究:
如何完成动作?
后者研究:
为什么执行这个动作?
当前对象是什么状态?
当前动作是否合适?
如果不合适,应该如何调整?
因此,本书研究的不是简单的“机器人控制”,而是更加基础的:
模拟人的感知与认知过程。
1.2 感知是认知的起点
人在面对一个物体时,并不是直接得到一个完整的“答案”。
例如,一个人伸手拿起一个鸡蛋。
人的认知过程并不是:
看到鸡蛋
↓
数据库查询
↓
输出“鸡蛋”
↓
执行抓取
真实的人类行为更加复杂。
人在接触鸡蛋之前,已经通过视觉获得了一系列感觉信息:
形状
大小
颜色
位置
方向
距离
手指接触鸡蛋之后,又会获得新的信息:
接触
压力
摩擦
滑移
温度
表面状态
随着手指压力变化,还会继续获得:
是否稳定
是否滑动
是否发生形变
是否可能破裂
也就是说:
人的认知不是一次性产生的,而是在感觉和感知不断变化的过程中形成的。
因此,本书首先不把“认知”作为一个孤立模块,而是从人的感觉和感知开始研究。
其基本方向是:
感觉
↓
感知
↓
感知元素
↓
对象
↓
属性
↓
认知
这里的“感知元素”非常重要。
因为现实世界是连续的、复杂的,而机器工程系统需要处理的是可以表示、计算和比较的信息。
所以需要研究:
连续现实如何被转化为机器可以处理的认知元素。
这也是本书后续理论工程化的第一个基础。
1.3 人并不是直接认识“世界”,而是在匹配世界
进一步观察人的认知,可以发现一个非常重要的现象。
当人看到一个陌生物体时,大脑并不是简单地把这个物体复制进去。
而是在进行比较。
例如:
当前感觉
↓
与已有经验比较
↓
与已有对象比较
↓
与对象属性比较
↓
产生匹配结果
↓
形成判断
如果一个人看到一个物体具有:
圆形
白色
椭圆
较小
位于餐桌上
那么这些信息会与过去的经验产生匹配。
如果后来手接触到这个物体,又发现:
表面光滑
压力较小
容易滑动
内部可能脆弱
原来的认知还会继续变化。
所以,我们可以提出本书一个非常重要的研究方向:
认知不是信息的简单存储,而是信息之间持续进行匹配的过程。
这就是后续“认知匹配理论”的基础。
本章暂时不对认知匹配进行完整定义,因为那属于第五篇的核心理论。
这里只建立一个基本认识:
感觉
↓
感知元素
↓
对象
↓
属性
↓
匹配
↓
认知
1.4 为什么必须研究动态认知
传统工程系统很容易采用静态参数。
例如,可以给机器人规定:
抓取压力 = 10N
机器人按照这个值执行。
但现实世界并不是静态的。
同样一个鸡蛋:
- 不同位置,摩擦不同;
- 不同角度,受力不同;
- 不同接触面积,压力不同;
- 手指位置不同,稳定性不同;
- 鸡蛋本身的强度也可能存在差异。
因此:
压力 = 固定值
并不能充分描述抓取。
更加合理的过程应该是:
当前压力
+
当前摩擦
+
当前滑移
+
当前形变
+
当前对象状态
↓
动态匹配
↓
判断当前抓取是否合适
↓
调整压力
↓
再次感知
↓
再次匹配
这说明:
认知不是静态匹配,而是动态匹配。
机器真正需要的不是一组永远不变的“正确数据”,而是能够根据当前状态不断调整匹配关系的认知机制。
这也是本书与传统静态规则系统的重要区别之一。
1.5 从“不断测试”转向“认知匹配”
目前许多机器人系统的工程实践中,仍然大量依赖:
测试
↓
失败
↓
修改参数
↓
再次测试
↓
失败
↓
再次修改
这种方法当然具有工程价值。
因为机器人系统非常复杂,实际环境又具有不确定性,所以测试不可避免。
但是,如果把“不断测试”作为主要认知方式,就会产生一个问题:
机器是否必须通过大量失败才能知道什么是合适的行为?
如果一个机器人需要通过大量抓取实验才能找到一个合适的压力范围,那么训练数据和测试次数可能非常庞大。
而人的行为并不完全依赖这种方式。
人看到一个脆弱物体时,通常不会先用很大的力量抓一下:
抓坏
↓
记录
↓
再小一点
↓
再抓
而是会根据:
物体
+
视觉
+
触觉
+
经验
+
对象属性
+
当前状态
直接形成一个较合理的行为判断。
因此,本书提出的工程研究方向不是:
完全取消测试。
而是:
让测试从“盲目试错”转变为“认知匹配驱动的动态调整”。
也就是说,测试成为认知系统获得反馈的一种手段,而不是整个认知系统本身。
1.6 机器认知需要从数据进入属性
如果机器人只是获得大量原始数据:
压力:……
摩擦:……
位置:……
速度:……
时间:……
这些数据本身还不能自动形成认知。
机器需要进一步知道:
这些数据属于什么对象?
它们是什么属性?
这些属性之间有什么关系?
这些属性当前处于什么状态?
它们正在发生什么变化?
因此,本书建立:
数据
↓
元素
↓
对象
↓
属性
↓
状态
↓
变化
↓
关系
这一步是从“数据处理”进入“认知处理”的重要转换。
例如:
压力 = 2.1
摩擦 = 0.72
滑移速度 = 0.01
形变 = 0
只是数据。
但是如果把它们组织起来:
对象:鸡蛋
属性:
压力
摩擦
滑移
形变
状态:
稳定
变化:
滑移正在下降
机器就开始具备对对象状态进行认知的结构基础。
1.7 认知不是单一属性的判断
一个非常重要的工程问题是:
一个认知结果往往不是由一个数据决定的。
例如机器人判断“当前抓取是否安全”,不能简单地规定:
压力 < X
因为压力小,并不一定意味着安全。
压力太小可能导致:
摩擦不足
↓
发生滑移
↓
对象掉落
压力太大又可能导致:
压力增加
↓
对象受损
因此真正需要寻找的并不是:
一个固定的最佳压力。
而是:
多个对象属性之间的动态协同匹配关系。
例如:
压力
+
摩擦
+
滑移
+
形变
+
对象承受能力
+
抓取稳定性
共同参与认知。
最终可能得到:
任务完成
+
抓取稳定
+
对象损伤最小
这比简单寻找“最佳压力值”更加接近人的认知方式。
1.8 “最小受损”是一个重要的认知目标
在鸡蛋抓取案例中,我们真正关心的并不是:
机器人使用了多少压力。
而是:
在完成抓取任务的条件下,对象受到的损伤是否最小。
于是工程目标可以表达为:
完成任务
+
保持稳定
+
避免滑落
+
避免损伤
进一步形成:
Damage → MIN
也就是:
在满足行为目标的约束下,使对象受损程度尽可能小。
这里产生了一个非常重要的理论转变:
传统控制可能寻找:
最佳动作参数
而认知工程寻找的是:
目标
↓
对象属性
↓
当前状态
↓
动态匹配
↓
行为结果
↓
损伤反馈
↓
调整匹配
所以“最小受损”不是一个固定参数,而可以成为认知匹配过程中的目标约束。
1.9 为什么需要个体认知
如果只研究机器人对外部世界的认知,还不足以模拟人的认知。
因为不同的人面对同一个对象,可能产生不同的判断。
例如同样看到一个物体:
A:认为危险
B:认为普通
C:认为值得尝试
为什么?
因为每个人拥有不同的:
经验
记忆
先验
目标
认知偏差
这些因素会改变人的匹配过程。
因此,本书最终研究的不是一个抽象的“统一认知”。
而是:
个体如何利用自己的经验、记忆、先验、目标和偏差,对当前感知信息进行匹配,并形成自己的认知。
于是:
相同感觉
↓
相同对象
↓
相同属性
↓
不同个体
↓
不同匹配参数
↓
不同概率
↓
不同认知
“个体认知”因此成为模拟人的感知与认知理论不可缺少的部分。
1.10 从认知理论走向理论工程
如果本书只停留在:
人是如何认知的?
那么它仍然属于理论研究。
但本书研究的是:
理论工程
因此还必须继续追问:
这种认知理论能不能被机器实现?
如果可以,那么必须能够继续向下定义:
认知概念
↓
认知对象
↓
数据结构
↓
匹配算法
↓
逻辑规则
↓
Method
↓
Class
↓
功能模块
↓
Engine
例如“对象”不能只停留在概念定义上,而应该最终能够形成工程结构。
“属性”不能只是文字描述,而应该能够表示:
名称
类型
数值
单位
状态
时间
变化率
“匹配”也不能只是说“进行比较”,而应该最终能够形成:
输入
+
匹配对象
+
匹配属性
+
权重
+
当前状态
+
目标
↓
匹配结果
这就是本书所说的:
理论必须具备工程实现能力。
1.11 本书的研究边界
本书并不是试图重新解释全部的人类心理学,也不是要建立一个完全等同于人脑神经系统的生物学模型。
本书采用的是一种工程认知研究方法:
从可以观察、表示、计算和实现的认知元素出发,建立机器可以执行的感知与认知模型。
因此,本书更关注:
什么可以表示?
什么可以测量?
什么可以匹配?
什么可以计算?
什么可以形成状态?
什么可以形成概率?
什么可以形成决策?
什么可以工程实现?
而不是试图回答所有哲学意义上的:
“意识究竟是什么?”
这一区分非常重要。
因为本书的目标不是建立一个无法验证的哲学体系,而是建立:
能够逐步实验、逐步验证、逐步实现的认知理论工程。
1.12 本书的基本研究路线
本书从最基础的“感觉”开始,逐步建立完整体系。
第一层:
感觉
↓
感知
↓
感知元素
第二层:
感知元素
↓
认知元素
↓
对象
↓
属性
↓
关系
第三层:
对象
+
属性
+
状态
+
变化
↓
动态认知匹配
第四层:
匹配
↓
匹配强度
↓
匹配权重
↓
概率
↓
认知
第五层:
个体
+
经验
+
记忆
+
先验
+
偏差
+
目标
↓
个体匹配
↓
个体认知
第六层:
个体认知
↓
决策
↓
行为
↓
环境变化
↓
反馈
↓
再次感知
第七层:
认知理论
↓
Cognitive Class
↓
Cognitive Method
↓
算法
↓
数据结构
↓
模块
↓
Engine
↓
理论工程
最终形成:
模拟人的感知与认知的工程理论体系。
1.13 本章小结
本章没有试图解决所有认知问题,而只是确定本书为什么需要建立这套理论。
机器要真正模拟人的认知,不能只从语言或者最终答案出发,而需要回到认知形成的起点:
感觉
↓
感知
↓
元素
然后继续研究:
对象
↓
属性
↓
状态
↓
变化
↓
关系
↓
动态匹配
认知不是静态数据库查询,也不是单一参数判断,而是对当前感知信息与已有认知结构进行持续匹配的过程。
而人的认知又具有明显的个体性:
经验
记忆
先验
目标
偏差
会改变匹配过程,并最终造成不同的认知和行为。