第18章 认知匹配
当系统已经知道“对象是什么”“对象具有什么”“对象正在发生什么”之后,真正的认知并不是简单地读取这些信息,而是将当前状态与已有知识、当前目标、历史经验以及可能行为进行动态匹配,从而形成对当前情境的判断。
前面的章节已经完成了认知系统最基础的几个层次。
我们知道:
- 对象是什么;
- 对象具有什么属性;
- 属性如何变化;
- 属性之间如何相互影响;
- 多个属性变化之后,对象处于什么动态状态。
但是,到这里仍然不能称为完整的认知。
因为:
知道一个对象的状态,不等于知道这个状态意味着什么。
例如,机器人通过触觉传感器得到:
压力:增加
摩擦:增加
滑移:减少
形变:轻微增加
这些只是当前对象和动作产生的数据变化。
系统还必须继续回答:
这种状态正常吗?
这种压力是否合适?
物体是否正在滑落?
是否存在损伤风险?
是否应该增加压力?
是否应该减少压力?
是否应该停止?
因此,认知真正发生的地方,不是“数据获得”的位置,而是:
当前状态进入匹配过程之后。
18.1 从状态到认知
可以把前面的过程表示为:
感觉
↓
感知
↓
感知元素
↓
对象
↓
对象属性
↓
属性变化
↓
属性关系
↓
对象动态状态
但这里还没有形成完整认知。
还需要:
对象动态状态
↓
匹配
↓
匹配结果
↓
认知
因此:
状态是认知匹配的输入,认知匹配是从状态走向认知的过程。
例如:
对象:鸡蛋
当前状态:
压力 = 0.8
摩擦 = 0.6
滑移 = 0.05
形变 = 0.02
这些数据本身并不能直接告诉机器人:
“现在可以继续抓。”
只有当系统将这些数据与已有的对象属性、历史变化、任务目标以及可能产生的结果进行比较之后,才可能得到:
当前抓取稳定
损伤风险较低
继续保持当前压力
这才开始进入认知。
18.2 什么是认知匹配
本书将认知匹配定义为:
认知匹配,是认知系统将当前感知到的对象、属性、状态及其变化,与已有知识、历史经验、目标状态和可能行为进行比较、关联、筛选和适应的动态过程。
这里有一个非常重要的词:
动态。
认知匹配不是一次性的:
输入 → 匹配 → 结束
而更接近:
当前状态
↓
匹配
↓
形成判断
↓
采取行为
↓
状态变化
↓
再次匹配
↓
修正判断
↓
再次行为
所以认知匹配实际上是一个连续过程。
18.3 匹配不是“寻找相同”
最简单的匹配可以理解为:
当前值 = 已知值
例如:
对象 = 鸡蛋
系统发现当前视觉信息与“鸡蛋”这个对象类别匹配,于是识别出:
这是鸡蛋。
但这种匹配只能解决:
“它是什么?”
却不能解决:
“现在应该怎么处理它?”
机器人抓取鸡蛋时,真正重要的不是找到一个“鸡蛋”标签,而是判断:
当前压力
是否适合当前鸡蛋?
当前摩擦
是否足以防止滑移?
当前形变
是否已经接近危险状态?
当前滑移
是否正在增加?
当前动作
是否会继续增加损伤?
因此,认知匹配不是简单寻找相同数据,而是寻找:
当前状态与目标状态、知识状态、行为结果之间的适配关系。
18.4 从“相同匹配”进入“适应匹配”
传统的数据匹配往往强调:
A = B
但现实世界中的认知很少完全满足这种条件。
例如,一个鸡蛋不可能每次都是:
重量 = 50g
摩擦 = 0.6
压力 = 0.8
形变 = 0.02
鸡蛋本身存在差异。
手指的位置存在差异。
接触面积存在差异。
环境湿度存在差异。
机器人运动速度也存在差异。
因此真正需要的不是:
寻找完全相同的数据
而是:
寻找当前状态下最合适的匹配关系。
也就是:
从相同匹配转向适应性匹配。
18.5 当前状态与目标状态的匹配
认知匹配首先需要知道:
系统希望达到什么状态?
例如抓取鸡蛋的目标不是:
压力越大越好
也不是:
压力越小越好
而是:
能够稳定抓取
+
尽可能减少滑移
+
尽可能减少损伤
于是系统需要建立目标状态:
Target State
例如:
稳定 = 是
滑移 = 最低
损伤 = 最低
任务完成 = 是
然后将当前状态:
Current State
与目标状态:
Target State
进行匹配。
形成:
Current State
↓
Match
↑
Target State
于是系统才能判断:
当前状态距离目标状态还有多远。
18.6 认知匹配不是单属性判断
这是本理论非常重要的一点。
如果机器人只观察压力:
Pressure = 0.8
它无法判断抓取是否安全。
因为:
压力 = 0.8
可能意味着:
- 抓得太松;
- 抓得刚好;
- 抓得太紧。
必须结合其他属性:
压力
+
摩擦
+
滑移
+
形变
+
接触面积
+
运动速度
因此:
认知匹配不是单一属性匹配,而是多属性协同匹配。
可以表示为:
Current Object State
│
├── Pressure
├── Friction
├── Slip
├── Deformation
├── Contact Area
└── Motion
↓
Dynamic Matching
↓
Cognitive State
这也解释了为什么前面的“对象属性”“动态属性”“属性之间的动态关系”必须存在。
如果没有这些结构,认知匹配就只能退化成简单的数值比较。
18.7 当前状态与历史状态的匹配
认知不能只看现在。
因为:
现在压力 = 1.0
本身没有完整意义。
还必须知道:
之前 = 0.6
现在 = 1.0
以及:
0.6 → 0.7 → 0.8 → 0.9 → 1.0
还是:
0.9 → 1.0
这两个过程虽然当前值相同,但认知意义完全不同。
因此系统需要进行:
Current State
↓
History State
↓
Change Matching
也就是说:
当前状态必须放在变化过程中理解。
这就是动态认知匹配与静态匹配的重要区别。
18.8 匹配变化,而不是只匹配结果
例如:
压力 ↑
形变 ↑
如果两个属性同时快速增加,系统应该产生一种认知:
风险正在增加。
而如果:
压力 ↑
滑移 ↓
形变 ≈ 0
则可能产生:
抓取稳定性正在提高。
所以真正需要匹配的是:
Value
+
State
+
Change
+
Rate
+
Trend
+
Relation
而不是单独的:
Value
因此可以形成一个更完整的认知匹配结构:
对象
↓
属性
↓
属性值
↓
属性状态
↓
属性变化
↓
变化速度
↓
变化趋势
↓
属性之间关系
↓
动态状态
↓
认知匹配
18.9 匹配知识
当前状态还需要与已有知识进行匹配。
例如系统过去已经形成:
鸡蛋
→ 易损伤
→ 表面较光滑
→ 抓取压力不能过高
→ 摩擦不足时容易滑移
那么当前检测到:
摩擦下降
+
滑移增加
系统就能够调用已有知识:
摩擦下降
↓
滑移风险增加
↓
当前抓取稳定性下降
这里发生的不是简单的:
数据 → 结果
而是:
当前状态
↓
已有知识
↓
关系匹配
↓
认知
18.10 匹配经验
知识解决的是:
系统已经知道什么。
经验解决的是:
系统过去实际经历过什么。
例如机器人过去抓取类似鸡蛋时发现:
压力增加 10%
虽然滑移减少,
但损伤概率明显增加。
这次再次遇到类似状态时,历史经验就会参与匹配。
于是:
当前状态
+
历史经验
↓
重新计算匹配关系
这意味着:
经验不是简单保存的数据,而是会影响后续认知匹配的数据。
18.11 匹配目标
认知匹配还受到目标影响。
同一个对象、同一个状态,在不同目标下可能得到不同的认知。
例如机器人处理一个玻璃杯。
如果目标是:
最大速度
系统可能允许一定程度的风险。
如果目标是:
最大安全
系统就会降低动作强度。
如果目标是:
最小损伤
系统则可能进一步降低压力。
因此:
Current State
+
Knowledge
+
Experience
+
Goal
↓
Matching
↓
Cognition
目标不是匹配之外的东西。
目标本身就是认知匹配的重要条件。
18.12 认知匹配产生的是“适应程度”
这里需要进一步区别:
匹配结果不一定是“是”或者“不是”。
现实中的认知通常存在程度。
例如:
当前状态非常适合
当前状态基本适合
当前状态勉强适合
当前状态不适合
当前状态高度危险
因此匹配结果可以形成一个连续的程度:
Match Degree
例如:
0.95 → 高度适合
0.75 → 较适合
0.50 → 一般
0.20 → 不适合
0.05 → 高风险
这里还没有进入下一章的完整概率认知。
当前阶段首先解决的是:
当前状态与候选认知之间具有多大匹配程度。
18.13 匹配结果不是最终行为
这一点非常重要。
认知匹配得到:
当前抓取压力可能过高
并不意味着机器人马上执行:
降低压力
中间还存在:
认知
↓
决策
↓
行为
本章主要讨论的是:
当前状态
↓
匹配
↓
认知
而不是完整的行为控制。
因此,本书必须严格区分:
匹配
认知
决策
行为
否则整个理论会重新混在一起。
18.14 认知匹配的动态闭环
虽然本章主要研究匹配,但匹配实际上天然存在反馈。
例如:
当前状态
↓
认知匹配
↓
判断压力过高
↓
调整压力
↓
对象状态改变
↓
重新感知
↓
重新匹配
于是形成:
┌──────────────┐
│ ↓
感知 → 当前状态 → 认知匹配
↑ ↓
│ 认知
│ ↓
│ 行为
│ ↓
└──────── 对象变化 ←┘
这意味着认知不是一个一次性函数。
它是:
随对象状态变化而不断重新计算的过程。
18.15 鸡蛋抓取中的认知匹配
现在回到最初的工程问题。
机器人手指接触鸡蛋。
第一时刻:
压力:低
摩擦:中
滑移:高
形变:低
系统产生:
当前抓取不稳定
于是动作发生变化。
压力略微增加。
第二时刻:
压力:中
摩擦:中
滑移:下降
形变:低
系统重新匹配:
稳定性提高
继续变化。
第三时刻:
压力:较高
摩擦:较高
滑移:极低
形变:开始增加
这时如果只看滑移:
滑移很好
可能得出错误结论:
继续增加压力
但如果进行多属性动态匹配:
压力 ↑
滑移 ↓
形变 ↑
系统会发现:
稳定性提高
但是损伤风险同时提高
于是认知发生改变:
当前状态已经不再需要继续增加压力。
这才是真正意义上的动态认知匹配。
18.16 “最小受损”为什么能够成为匹配条件
前面我们提出一个重要思想:
对象最小受损值的匹配。
它并不是简单规定:
压力 = 最小
因为压力过小可能导致:
滑移
滑移同样可能导致:
跌落
跌落又可能造成:
更大的损伤
因此真正的目标不是:
Pressure → MIN
而是:
Damage → MIN
同时满足:
Task Completion = TRUE
也就是说:
任务能够完成
+
对象能够保持稳定
+
对象损伤尽可能小
系统寻找的是:
满足任务要求的最小受损状态。
这就是一种更高级的认知匹配。
18.17 认知匹配的基本结构
经过本章讨论,可以建立:
当前感知
↓
当前状态
↓
┌───────────┼───────────┐
↓ ↓ ↓
对象属性 历史经验 已有知识
↓ ↓ ↓
└───────────┼───────────┘
↓
目标
↓
动态认知匹配
↓
匹配程度
↓
认知
↓
决策
↓
行为
↓
对象变化
↓
新状态
↓
再次匹配
这就是本书第一次真正建立:
感知 → 状态 → 匹配 → 认知
之间的完整关系。
18.18 认知匹配与传统“测试—修正”模式的区别
传统机器人系统经常采用:
测试
↓
失败
↓
调整参数
↓
再次测试
↓
失败
↓
再次调整
这种方式并不是完全错误,但它存在一个根本问题:
它往往把大量不同状态当成相互独立的测试样本。
当变量数量增加:
压力
摩擦
速度
位置
角度
接触面积
材料
温度
湿度
组合数量会快速增加。
如果完全依靠不断测试,就会产生巨大的数据量。
而认知匹配的思路不同:
对象
+
属性
+
变化
+
关系
+
历史
+
目标
↓
动态匹配
↓
当前最适应状态
它不是试遍所有可能性,而是利用对象自身的属性关系和动态变化进行判断。
因此:
认知匹配的目的不是消灭测试,而是减少无意义的测试。
18.19 从“测试所有可能”到“根据状态选择可能”
这也是本理论工程化的重要意义。
传统方式:
大量数据
↓
大量测试
↓
寻找可行参数
认知匹配方式:
对象模型
↓
属性模型
↓
动态关系
↓
当前状态
↓
匹配候选
↓
筛选可能状态
↓
选择适应状态
两者的区别在于:
前者主要依靠试验空间,后者主要依靠认知结构缩小搜索空间。
因此,理论建立得越完整,系统越不需要盲目尝试。
18.20 本章小结
本章建立了认知系统中的关键环节:
对象
↓
属性
↓
变化
↓
状态
↓
认知匹配
↓
认知
认知匹配不是简单的数据相等判断,也不是单属性比较。
它至少需要考虑:
对象
属性
属性值
属性状态
属性变化
属性关系
历史
知识
经验
目标
并且匹配过程必须能够随着对象状态变化而持续更新。
因此,本章形成一个核心认识:
认知不是“知道对象是什么”,而是理解对象当前状态与已有知识、经验、目标以及可能行为之间是否适应。
进一步说:
真正的认知匹配,不是在静态数据中寻找一个答案,而是在动态变化的对象状态中持续寻找当前最适合的认知解释。
而这也为下一章“静态匹配与动态匹配”奠定基础。
下一章将进一步回答:
如果对象和属性一直在变化,那么一次性的静态匹配为什么不足?动态匹配究竟多了什么?