第19章 静态匹配与动态匹配
人的认知不是一次完成的匹配,而是在对象、属性、状态和环境持续变化的过程中不断重新匹配。
第18章建立了“认知匹配”的基本概念。
系统已经能够知道:
- 对象是什么;
- 对象具有什么属性;
- 属性当前处于什么状态;
- 属性正在发生什么变化;
- 不同属性之间如何协同变化。
但是,仅仅拥有这些信息,还不能形成真正的认知。
因为认知并不是简单地“知道”。
一个机器人看到一个鸡蛋,知道它是鸡蛋,知道它是椭圆形、表面光滑、质量较轻,这仍然只是对象信息。
当机器人准备抓取它时,真正需要解决的问题变成:
当前这个鸡蛋的状态,与过去形成的知识、当前任务、可执行行为之间是否匹配?
更重要的是,这种匹配不能只发生一次。
鸡蛋没有变化时,匹配可能稳定。
但是,当机械手逐渐增加压力,鸡蛋发生轻微形变,接触面积发生变化,摩擦状态发生变化,鸡蛋开始产生滑移趋势时,原来的匹配就已经不再完全适用。
因此:
认知匹配必须从静态匹配进一步发展为动态匹配。
19.1 静态匹配
静态匹配是最容易理解的一种匹配方式。
它假定:
对象、属性和状态在当前认知时刻基本稳定,因此可以使用当前数据与已有知识进行一次匹配。
例如系统得到:
对象:鸡蛋
颜色:白色
形状:椭圆
重量:50g
表面:光滑
状态:静止
系统可以进行:
当前对象
↓
已有对象知识
↓
匹配
↓
鸡蛋
这就是最基本的静态认知匹配。
19.1.1 静态匹配的基本结构
可以表示为:
Current Object
↓
Object Attributes
↓
Knowledge
↓
Matching
↓
Recognition
例如:
当前对象:
形状 = 椭圆
颜色 = 白色
尺寸 = 小
表面 = 光滑
↓
知识:
鸡蛋:
形状 = 椭圆
颜色 = 白色
尺寸 = 小
表面 = 光滑
↓
匹配
↓
对象 = 鸡蛋
这里的核心是:
当前状态与已有对象描述之间的相似性或一致性。
19.1.2 静态匹配适合什么问题
静态匹配并不是错误的。
它适用于大量稳定场景,例如:
- 物体分类;
- 静态图像识别;
- 属性识别;
- 对象名称判断;
- 基础知识检索;
- 稳定状态判断。
例如:
桌面上有一个红色杯子
如果杯子没有移动、没有受到作用、没有发生状态变化,那么系统可以使用一次匹配得到:
Object = Cup
Color = Red
State = Static
在这种情况下,静态匹配已经足够。
19.1.3 静态匹配的局限
问题出现在:
现实世界并不是静态的。
对象会移动。
属性会变化。
环境会变化。
对象之间会相互作用。
行为本身还会进一步改变对象状态。
因此,如果系统始终使用:
当前数据
↓
一次匹配
↓
固定结果
那么它只能认识一个“瞬间”。
它无法真正认识:
正在发生什么。
例如机器人抓取鸡蛋。
第一次检测:
压力 = 0
摩擦 = 0
滑移 = 0
形变 = 0
系统判断:
鸡蛋处于安全静止状态
随后机械手开始接触鸡蛋:
压力 = 1
摩擦 = 1
滑移 = 0
形变 = 0
再之后:
压力 = 2
摩擦 = 2
滑移 = 0.1
形变 = 0.1
继续增加:
压力 = 3
摩擦 = 2
滑移 = 0.5
形变 = 0.4
如果系统仍然使用第一次匹配结果:
鸡蛋 = 安全
那么这个“认知”实际上已经失效。
因为:
对象没有改变身份,但对象的状态已经改变。
这正是静态匹配无法解决的问题。
19.2 动态匹配
动态匹配建立在一个更重要的认识上:
对象不是只有一个固定状态,而是一个随时间不断变化的状态过程。
因此,认知系统不能只问:
“它是什么?”
还必须不断问:
“它现在是什么状态?”
以及:
“它正在向什么方向变化?”
19.2.1 动态匹配的基本结构
动态匹配可以表示为:
t1
↓
当前状态
↓
匹配
↓
认知状态
t2
↓
新状态
↓
重新匹配
↓
新的认知状态
t3
↓
再次变化
↓
再次匹配
↓
再次更新认知
因此:
Recognition(t)
=
Matching(State(t), Knowledge, Goal, Context)
这里最重要的是:
t
认知不再只是一个静态结果,而成为一个随时间变化的过程。
19.2.2 动态匹配不是“不断重新测试”
这里需要特别区分两个概念。
传统机器人系统很容易采用:
测试
↓
失败
↓
调整参数
↓
再次测试
↓
失败
↓
再次调整
这种方式本质上是:
通过大量试错寻找一个可行参数。
动态认知匹配并不是简单地把测试次数增加。
它的核心是:
感知
↓
当前状态
↓
属性变化
↓
变化关系
↓
匹配
↓
预测
↓
调整
↓
再次感知
也就是说:
系统不是盲目测试,而是在行为过程中持续读取对象状态,并根据状态变化实时调整匹配关系。
这两者有本质区别。
19.2.3 从“测试结果”转向“状态反馈”
传统方式:
抓取
↓
成功 / 失败
动态认知方式:
抓取
↓
压力变化
↓
摩擦变化
↓
滑移变化
↓
形变变化
↓
状态判断
↓
调整抓取
所以,系统不需要等到:
鸡蛋破了
才知道抓取错误。
只要检测到:
压力持续增加
+
形变增加
+
滑移没有改善
就可以形成新的认知:
当前抓取策略正在增加对象损伤风险
于是系统可以提前调整。
这就是动态认知的价值。
19.3 连续匹配
动态匹配进一步发展,就是连续匹配。
连续匹配的核心不是:
每隔一段时间重新执行一次完全独立的匹配。
而是:
当前匹配结果与上一时刻的匹配状态保持连续关系。
也就是说:
M(t1)
↓
M(t2)
↓
M(t3)
↓
M(t4)
这些不是四个互相独立的结果。
而是:
M(t1) → M(t2) → M(t3) → M(t4)
形成一个连续认知过程。
19.3.1 为什么需要连续匹配
例如一个物体正在向右移动。
系统在:
t1
发现:
位置 = 100
在:
t2
发现:
位置 = 105
在:
t3
发现:
位置 = 111
如果系统只进行静态匹配,那么它得到的是:
t1:位置100
t2:位置105
t3:位置111
但是连续匹配会进一步形成:
位置:
100 → 105 → 111
从而产生:
对象正在向右移动
进一步还可以计算:
变化量
变化速度
变化方向
变化趋势
所以:
连续匹配使系统开始认识“变化本身”。
19.3.2 连续匹配中的历史信息
连续匹配必须保留一定的历史。
因此认知系统至少需要:
Current State
Previous State
Change
Trend
例如:
Pressure(t)
Pressure(t-1)
得到:
ΔPressure
再进一步:
ΔPressure / Δt
得到压力变化率。
于是系统不再只知道:
压力 = 3
而知道:
压力正在快速增加
这两个信息具有完全不同的认知意义。
19.4 时序匹配
连续变化还会形成更复杂的时序关系。
因为很多行为不是一个瞬间完成的,而是由多个状态按照一定顺序发生。
例如抓取过程:
接近
↓
接触
↓
施加压力
↓
建立摩擦
↓
稳定
↓
抬升
↓
移动
↓
放置
↓
释放
如果系统只看当前状态:
压力 = 2
那么它并不知道这个压力意味着什么。
因为:
接触阶段的压力 = 2
和:
抬升阶段的压力 = 2
其认知意义可能完全不同。
所以:
属性值必须放入时间序列和行为阶段中理解。
19.4.1 时序关系
可以表示为:
State1
↓
State2
↓
State3
↓
State4
例如:
未接触
↓
接触
↓
受力
↓
稳定
如果实际观察到:
未接触
↓
接触
↓
受力
↓
滑移
那么系统就可以判断:
当前行为没有进入预期的稳定状态。
这已经不是简单的对象识别。
而是:
对对象状态演化过程进行认知。
19.4.2 时序匹配与行为判断
假设系统拥有一个目标行为序列:
接触
↓
稳定
↓
抓起
实际观察到:
接触
↓
滑移
↓
压力增加
系统就会发现:
Expected State Sequence
≠
Observed State Sequence
于是产生:
状态偏差
进一步形成:
行为风险
因此,时序匹配能够让系统判断:
当前行为是否按照预期状态演化。
19.5 状态匹配
动态匹配的最终目标之一,是判断:
对象当前究竟处于什么状态。
这里的状态不能简单等同于某一个属性。
例如:
压力 = 3
不能直接定义:
对象状态 = 安全
因为状态往往由多个属性共同决定。
19.5.1 多属性共同决定状态
例如鸡蛋抓取:
Pressure
Friction
Slip
Deformation
Position
Motion
这些属性共同构成:
Object State
可以抽象为:
State(t)
=
F(
Pressure(t),
Friction(t),
Slip(t),
Deformation(t),
Position(t),
Motion(t)
)
这里的 F 并不一定必须是传统数学意义上的固定函数。
它也可以是:
规则
匹配
权重
经验
条件组合
状态转换
但核心思想不变:
对象状态来自多个动态属性的协同,而不是来自单一数据。
19.5.2 状态不是属性的简单集合
这是认知工程中非常重要的一点。
例如:
压力 = 高
只是属性。
形变 = 增加
也是属性变化。
但是:
压力持续增加
+
形变持续增加
+
滑移没有下降
就可能形成:
损伤风险上升
而:
压力适中
+
摩擦稳定
+
滑移接近零
+
形变稳定
可能形成:
抓取稳定
因此:
状态是对多个属性及其变化关系进行认知解释后形成的更高层结构。
19.5.3 状态匹配的动态更新
对象状态不能永久固定。
例如:
t1:
状态 = 静止
t2:
状态 = 接触
t3:
状态 = 受力
t4:
状态 = 稳定抓取
t5:
状态 = 移动
t6:
状态 = 放置
因此:
State(t1)
→
State(t2)
→
State(t3)
→
State(t4)
→
State(t5)
→
State(t6)
这就是对象状态的动态演化。
19.6 五种匹配不是五个孤立系统
本章提出:
静态匹配
动态匹配
连续匹配
时序匹配
状态匹配
但它们并不是五种完全独立的技术。
更准确地说,它们是认知匹配逐渐深入的不同层次。
可以表示为:
静态匹配
↓
动态匹配
↓
连续匹配
↓
时序匹配
↓
状态匹配
第一层:静态匹配
回答:
它是什么?
例如:
Object = Egg
第二层:动态匹配
回答:
它正在发生什么变化?
例如:
Pressure ↑
Deformation ↑
第三层:连续匹配
回答:
这种变化是否持续?
例如:
Pressure:
2 → 2.2 → 2.5 → 2.8
系统知道压力不是偶然增加,而是在持续增加。
第四层:时序匹配
回答:
这些变化按照什么顺序发生?
例如:
接触
↓
受力
↓
滑移
↓
形变
第五层:状态匹配
回答:
这些变化共同说明对象现在处于什么状态?
例如:
压力增加
+
形变增加
+
滑移增加
最终认知:
当前抓取状态存在损伤风险
19.7 从静态匹配到动态认知
因此,真正的认知过程不能简单表示为:
Object
↓
Match
↓
Recognition
而应该逐渐扩展为:
Object
↓
Attributes
↓
State
↓
Change
↓
Trend
↓
Relations
↓
Dynamic Matching
↓
Continuous Matching
↓
Temporal Matching
↓
State Matching
↓
Cognition
这意味着:
认知不是一次计算出来的标签,而是一个持续形成、持续更新的状态。
19.8 机器人抓取鸡蛋:静态匹配为什么不够
现在回到本书最重要的工程案例之一。
假设机器人需要抓取鸡蛋。
系统首先识别:
Object = Egg
并获得:
Shape = Oval
Surface = Smooth
Weight = Light
如果只做到这里,系统只是完成了对象认知。
真正抓取开始以后,系统获得:
Pressure
Friction
Slip
Deformation
Motion
此时需要动态匹配。
第一阶段:接触
Pressure ↑
Friction ↑
Slip ≈ 0
Deformation ≈ 0
认知:
已经接触
第二阶段:建立稳定抓取
Pressure ↑
Friction ↑
Slip ↓
Deformation ≈ stable
认知:
抓取逐渐稳定
第三阶段:压力继续增加
Pressure ↑↑
Friction ≈ stable
Slip ≈ 0
Deformation ↑
此时系统不能简单认为:
压力越大越安全
因为对象已经出现:
形变增加
认知需要发生变化:
稳定抓取
→
过度施力风险
第四阶段:继续施力
如果出现:
Pressure ↑↑
Deformation ↑↑
Slip ↑
系统应形成新的状态认知:
抓取状态恶化
而不是继续测试:
压力4
压力5
压力6
压力7
……
直到鸡蛋破裂。
19.9 动态匹配的真正意义
这正是本书与传统“不断测试”机器人逻辑的重要区别。
不断测试的方式:
动作
↓
结果
↓
重新动作
↓
结果
↓
继续测试
它需要大量数据。
而动态认知匹配:
动作
↓
感知
↓
属性变化
↓
变化关系
↓
状态判断
↓
匹配更新
↓
行为调整
系统利用的是:
对象当前状态及其变化所提供的信息。
因此,数据不再只是用于“训练一个固定答案”。
数据本身成为:
认知过程中的动态状态。
19.10 从“最小测试”走向“最小受损匹配”
这也为后面的第40章“最小受损匹配”建立理论基础。
机器人抓鸡蛋真正需要优化的不是:
抓住鸡蛋
也不是:
抓取成功率最大
而应该进一步考虑:
任务完成
+
抓取稳定
+
对象受损最小
因此可以形成一个基本认知方向:
满足任务
↓
寻找可行行为
↓
比较行为对对象状态的影响
↓
选择对象受损更小的匹配
即:
认知不是单纯寻找“能不能做”,而是在动态状态中判断“怎样做更合适”。
这就是从行为控制走向认知控制的重要一步。
19.11 动态认知的核心不是数据量,而是数据关系
如果系统只是积累:
压力数据
摩擦数据
滑移数据
形变数据
那么数据量可以非常巨大。
但如果系统能够识别:
压力变化
↓
摩擦变化
↓
滑移变化
↓
形变变化
↓
状态变化
那么真正重要的就不再是单个数据,而是:
数据
↓
变化
↓
关系
↓
协同
↓
状态
因此:
动态认知并不是简单增加数据量,而是提高系统对数据变化关系的认知能力。
这也是为什么“不断测试”会产生巨大的数据负担。
因为测试是在寻找答案。
而认知匹配是在理解:
当前数据正在说明什么。
19.12 本章小结
本章从静态匹配开始,逐步建立了动态认知匹配体系。
其基本发展关系为:
静态匹配
↓
动态匹配
↓
连续匹配
↓
时序匹配
↓
状态匹配
其中:
静态匹配解决:
对象是什么?
动态匹配解决:
对象正在发生什么变化?
连续匹配解决:
这种变化是否持续?
时序匹配解决:
这些变化按照什么顺序发生?
状态匹配解决:
这些属性和变化共同说明对象现在处于什么状态?
最终形成:
对象
↓
属性
↓
属性变化
↓
变化关系
↓
连续变化
↓
时序关系
↓
对象状态
↓
动态匹配
↓
认知更新
因此,本章确立一个重要原则:
人的认知具有动态性。
进一步说:
真正的机器认知不应该只匹配对象的静态特征,而应该持续匹配对象的属性、变化、关系和状态。
而这也为下一章“多维认知匹配”建立基础:当系统不再只处理单一属性,而是同时面对感觉、属性、状态、时间、空间、运动、因果和目标等多个维度时,认知匹配将从单一维度进入多维协同匹配。