首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第19章 静态匹配与动态匹配

第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 本章小结

本章从静态匹配开始,逐步建立了动态认知匹配体系。

其基本发展关系为:

静态匹配
 ↓
动态匹配
 ↓
连续匹配
 ↓
时序匹配
 ↓
状态匹配

其中:

静态匹配解决:

对象是什么?

动态匹配解决:

对象正在发生什么变化?

连续匹配解决:

这种变化是否持续?

时序匹配解决:

这些变化按照什么顺序发生?

状态匹配解决:

这些属性和变化共同说明对象现在处于什么状态?

最终形成:

对象
 ↓
属性
 ↓
属性变化
 ↓
变化关系
 ↓
连续变化
 ↓
时序关系
 ↓
对象状态
 ↓
动态匹配
 ↓
认知更新

因此,本章确立一个重要原则:

人的认知具有动态性。

进一步说:

真正的机器认知不应该只匹配对象的静态特征,而应该持续匹配对象的属性、变化、关系和状态。

而这也为下一章“多维认知匹配”建立基础:当系统不再只处理单一属性,而是同时面对感觉、属性、状态、时间、空间、运动、因果和目标等多个维度时,认知匹配将从单一维度进入多维协同匹配

Leave a Reply

Your email address will not be published. Required fields are marked *