第13章 对象关系:从“对象具有什么”到“对象之间如何发生关系”
如果对象属性解决的是“一个对象具有什么”,那么对象关系解决的就是“一个对象与另一个对象之间发生了什么”。
在上一章中,我们把对象从一个单纯的名称进一步展开为属性结构。
一个对象不再只是:
Object = Egg
而是:
Object
↓
Attribute
↓
Value
↓
State
↓
Change
这使认知系统能够描述一个对象自身。
但是,真实世界中的对象几乎从来不是孤立存在的。
鸡蛋存在于桌面上。
手接触鸡蛋。
手对鸡蛋施加压力。
鸡蛋因为压力产生形变。
杯子位于桌子旁边。
机器人靠近鸡蛋。
一个物体遮挡另一个物体。
一个对象的变化又可能影响另一个对象。
因此,如果认知系统只有:
Object
+
Attribute
它仍然无法完整描述真实环境。
认知系统还必须回答:
对象之间是什么关系?
以及更重要的问题:
对象之间的关系如何变化?
13.1 对象不是孤立存在的
假设系统感知到三个对象:
Object A = Hand
Object B = Egg
Object C = Table
如果只记录对象本身:
Hand
Egg
Table
系统只知道环境中存在三个对象。
如果再记录属性:
Hand
├── Position
├── Force
└── Movement
Egg
├── Position
├── Weight
├── Integrity
└── Deformation
Table
├── Position
└── Surface
系统知道每个对象的属性。
但仍然不知道:
Hand → Egg
Egg → Table
Hand → Table
之间究竟发生了什么。
例如:
Hand 接触 Egg
Egg 位于 Table
Hand 位于 Egg 上方
这些都不是单个对象的属性。
它们属于:
对象与对象之间的关系。
13.2 什么是对象关系
对象关系可以定义为:
两个或多个对象之间,在空间、时间、状态、作用、因果、功能或行为等维度上形成的可识别联系。
可以抽象为:
Object A
↓
Relation
↑
Object B
例如:
Hand
↓
Contact
↓
Egg
表示:
手与鸡蛋存在接触关系。
又例如:
Egg
↓
On
↓
Table
表示:
鸡蛋位于桌面上。
因此:
Relation(A, B)
可以表示:
A 与 B 之间存在某种关系。
13.3 关系不是对象属性
这一点必须与上一章严格区分。
例如:
Egg
├── Weight = 50g
├── Shape = Oval
└── Surface = Smooth
这些属于鸡蛋自身的属性。
但是:
Egg
↓
On
↓
Table
不是鸡蛋自身的一个简单属性。
它描述的是:
Egg ↔ Table
之间的关系。
同样:
Hand
↓
Contact
↓
Egg
描述的是:
Hand ↔ Egg
之间的关系。
因此:
Attribute(Object)
和:
Relation(Object A, Object B)
是两个不同的认知层次。
13.4 对象关系具有方向
很多关系不是无方向的。
例如:
Hand → Touch → Egg
和:
Egg → Touch → Hand
虽然描述的是同一事件,但认知视角不同。
更明显的是:
Robot → Push → Box
不能简单写成:
Box → Push → Robot
因为“推动”具有作用方向。
因此可以表示为:
Source
↓
Relation
↓
Target
例如:
Robot
↓
Push
↓
Box
即:
Robot 是作用主体,Box 是作用对象。
因此关系本身可以具有:
Source
Relation
Target
三个基本组成部分。
13.5 三元关系结构
由此可以建立一个非常基础的认知关系结构:
Relation
=
Subject
+
Predicate
+
Object
例如:
Hand
+
Touch
+
Egg
形成:
Hand Touch Egg
又例如:
Egg
+
On
+
Table
形成:
Egg On Table
这类结构可以进一步表示为:
<Subject, Relation, Object>
也就是:
<S, R, O>
它是认知系统描述对象关系的重要基础。
13.6 空间关系
最容易被感知系统识别的关系之一,是空间关系。
例如:
A 在 B 上方
A 在 B 左侧
A 在 B 内部
A 靠近 B
A 远离 B
A 与 B 重叠
A 与 B 接触
可以表示:
A
↓
Above
↓
B
或者:
A
↓
Near
↓
B
空间关系并不一定需要对象本身发生变化。
例如:
Cup
Near
Plate
即使杯子和盘子都没有移动,这个关系仍然存在。
因此空间关系主要描述:
对象之间在空间结构中的相对状态。
13.7 接触关系
接触是机器人认知中特别重要的一类关系。
例如:
Hand
↓
Contact
↓
Egg
接触关系意味着两个对象之间形成了物理作用通道。
进一步还可以产生:
Contact
↓
Pressure
↓
Deformation
因此:
Hand → Contact → Egg
不仅仅是一个空间关系。
它还可能成为后续动态变化的起点。
例如:
Hand
↓
Contact
↓
Egg
↓
Pressure ↑
↓
Deformation ↑
于是对象关系开始与对象属性连接起来。
这非常重要:
关系决定对象之间是否可能发生属性变化。
13.8 作用关系
对象之间不仅可以接触,还可以相互作用。
例如:
Push
Pull
Press
Lift
Hold
Cut
Move
Block
Support
这些关系都描述:
一个对象对另一个对象产生了某种作用。
例如:
Hand
↓
Hold
↓
Egg
表示手正在握持鸡蛋。
又例如:
Robot Arm
↓
Lift
↓
Egg
表示机械臂正在提起鸡蛋。
作用关系通常具有时间属性。
因为:
Hold
可能开始,也可能结束。
所以不能简单认为:
Relation = Static
而应该允许:
Relation(t)
13.9 时间关系
对象之间还存在时间关系。
例如:
事件 A 发生在事件 B 之前
事件 A 与事件 B 同时发生
事件 A 导致事件 B
事件 A 持续期间事件 B 发生
例如抓取鸡蛋:
接近
↓
接触
↓
施加压力
↓
稳定抓取
↓
移动
↓
放置
这些并不是简单的对象关系,而是:
事件之间的时间关系。
因此认知系统需要能够描述:
Before
After
During
Overlap
Start
End
Duration
时间关系使认知系统开始具备过程理解能力。
13.10 因果关系
这是对象关系中更高层次的一种。
例如:
Pressure ↑
↓
Deformation ↑
系统不能只知道两个变化同时发生。
还需要判断:
压力增加是否导致形变增加?
如果存在这种关系,就形成:
Pressure Increase
↓
Cause
↓
Deformation Increase
进一步:
Deformation Increase
↓
Damage Risk Increase
于是形成:
Pressure
↓
Deformation
↓
Damage
这就是一条因果关系链。
所以:
关系不仅描述对象之间“有什么联系”,还可以描述一个变化如何影响另一个变化。
13.11 对象关系与属性关系
这一点尤其重要。
对象之间的关系可能导致对象属性变化。
例如:
Hand
↓
Contact
↓
Egg
导致:
Egg.Pressure ↑
继续:
Egg.Pressure ↑
又可能导致:
Egg.Deformation ↑
最终:
Hand
↓
Contact
↓
Egg
↓
Pressure
↓
Deformation
这里出现了三种不同层次:
对象
↓
对象关系
↓
属性变化
↓
对象状态
因此可以建立:
对象关系是对象属性发生交互变化的重要条件。
13.12 关系本身也具有属性
关系并不是一个简单的标签。
例如:
Hand
↓
Push
↓
Egg
“Push”只是关系类型。
但实际认知还需要知道:
Push Force
Push Direction
Push Duration
Push Speed
因此关系本身也可以具有属性。
可以表示为:
Relation
├── Type
├── Strength
├── Direction
├── Duration
├── State
└── Change
例如:
Hand
↓
Push
↓
Egg
Force = 3N
Direction = Down
Duration = 2s
这意味着:
关系不仅连接对象,而且关系本身也可以成为认知对象。
这是后续认知系统进一步复杂化的重要基础。
13.13 关系具有状态
例如:
Hand
↓
Contact
↓
Egg
接触关系可能有:
Not Contact
↓
Approaching
↓
Contact
↓
Stable Contact
↓
Leaving
↓
Separated
因此关系本身也存在状态变化。
可以表示:
Relation(t)
例如:
Contact(t)
于是认知系统不再只是知道:
手和鸡蛋接触。
而能够知道:
手正在接近鸡蛋。
或者:
手刚刚接触鸡蛋。
或者:
手正在稳定握持鸡蛋。
这就是动态关系。
13.14 关系的变化
对象关系可能随时间改变。
例如:
t1
Hand
↓
Near
↓
Egg
到:
t2
Hand
↓
Contact
↓
Egg
再到:
t3
Hand
↓
Hold
↓
Egg
最后:
t4
Hand
↓
Release
↓
Egg
因此:
Near
↓
Contact
↓
Hold
↓
Release
实际上构成了一个关系变化过程。
这意味着:
认知系统不仅需要识别关系,还必须追踪关系的生命周期。
13.15 多对象关系
现实环境往往不是两个对象之间的关系。
例如:
Hand
Egg
Table
Robot
机器人抓取鸡蛋时:
Robot Arm
↓
Hold
↓
Egg
↓
On
↓
Table
同时:
Robot Arm
↓
Contact
↓
Egg
于是形成一个关系网络:
Robot Arm ──Contact──> Egg
Egg ──On──> Table
Robot Arm ──Move──> Egg
这时候,认知系统面对的已经不是:
一个对象
而是:
对象网络
13.16 对象关系网络
多个对象与关系共同形成:
Object
↓
Relation
↓
Object
↓
Relation
↓
Object
可以抽象为:
Graph
其中:
Node = Object
Edge = Relation
例如:
Robot
│
Hold
↓
Egg
│
On
↓
Table
这就是一个最简单的对象关系网络。
它比单纯的对象列表具有更强的认知表达能力。
因为系统开始能够理解:
对象不是孤立存在,而是存在于关系网络之中。
13.17 关系网络中的认知传播
关系网络的重要意义还在于:
一个对象的变化可以通过关系影响另一个对象的认知。
例如:
Hand
↓
Contact
↓
Egg
手的压力变化:
Hand Force ↑
通过接触关系传递到:
Egg Pressure ↑
再通过对象内部属性关系:
Egg Pressure ↑
↓
Deformation ↑
↓
Damage Risk ↑
因此形成:
对象A变化
↓
对象关系
↓
对象B属性变化
↓
对象B状态变化
这为动态认知系统提供了一种重要机制:
认知信息可以沿对象关系传播。
13.18 关系与环境
对象关系并不只存在于两个物体之间。
对象还与环境存在关系。
例如:
Egg
↓
On
↓
Table
而桌面又可能具有:
Surface = Rough
Friction = High
那么:
Egg
↓
On
↓
Table
↓
Surface
↓
Friction
就可能影响:
Egg Slip Risk
所以:
Object
↓
Relation
↓
Environment
也是认知系统的重要组成部分。
13.19 关系与任务
关系的认知价值还取决于当前任务。
例如任务是:
“找到桌上的鸡蛋。”
系统关注:
Egg
↓
On
↓
Table
任务变成:
“拿起桌上的鸡蛋。”
系统关注:
Hand
↓
Contact
↓
Egg
任务进一步变成:
“安全地拿起鸡蛋。”
系统则需要关注:
Hand
↓
Contact
↓
Egg
以及:
Pressure
Friction
Deformation
Integrity
于是:
同一个关系,在不同任务中具有不同的认知价值。
这与上一章的“属性认知价值”形成对应。
13.20 对象关系的分类
为了让认知系统能够工程化,可以先建立关系分类。
第一类:空间关系
Above
Below
Left
Right
Inside
Outside
Near
Far
Overlap
Contact
第二类:时间关系
Before
After
During
Overlap
Start
End
第三类:作用关系
Push
Pull
Press
Hold
Lift
Move
Support
Block
第四类:因果关系
Cause
Affect
Trigger
Prevent
第五类:功能关系
Use
Contain
Support
Operate
Control
第六类:所属关系
PartOf
BelongTo
Contain
Own
这些关系并不是最终固定的关系全集。
它们只是认知工程中的基础关系类型。
13.21 对象关系的动态模型
经过前面的分析,可以建立:
Relation
├── Subject
├── Type
├── Object
├── Value
├── State
├── Change
├── Time
├── Context
└── Confidence
也可以简化为:
R(A,B,t)
表示:
在时间 t,对象 A 与对象 B 之间存在关系 R。
例如:
Contact(Hand, Egg, t)
表示:
在时间 t,手与鸡蛋存在接触关系。
如果关系发生变化:
Contact(Hand, Egg, t1) = false
Contact(Hand, Egg, t2) = true
那么系统就可以识别:
手在 t2 时刻开始接触鸡蛋。
13.22 对象关系与动态认知
到这里,我们可以把上一章的对象属性与本章对象关系连接起来。
对象自身:
Object
↓
Attribute
↓
Value
↓
State
↓
Change
对象之间:
Object A
↓
Relation
↓
Object B
关系又可以产生:
Relation
↓
Attribute Change
↓
State Change
因此形成:
对象
↓
属性
↓
关系
↓
属性变化
↓
状态变化
↓
认知变化
这一步非常关键。
因为认知已经不再是:
“我看到了一个鸡蛋。”
而逐渐变成:
“我看到一个鸡蛋,它位于桌面上,我的手正在接近它,接触后压力正在增加,而鸡蛋的形变也正在变化。”
这才接近真实的人类认知过程。
13.23 从对象关系到认知匹配
现在出现了一个更重要的问题:
如果系统同时获得:
Egg
Hand
Table
以及:
Egg.Weight
Egg.Friction
Egg.Deformation
Hand.Force
Hand.Position
Table.Surface
和:
Hand → Contact → Egg
Egg → On → Table
那么系统如何判断:
当前究竟发生了什么?
这时候就不能再简单地读取某一个对象或者某一个关系。
必须进行:
对象匹配
+
属性匹配
+
关系匹配
+
状态匹配
+
变化匹配
进一步:
多对象
+
多属性
+
多关系
+
动态变化
形成:
动态认知匹配。
因此,对象关系理论实际上是连接:
对象属性
与:
认知匹配
之间的重要桥梁。
13.24 本章核心模型
本章可以形成下面的结构:
Object A
│
Attribute
│
State/Change
│
↓
Relation
↑
│
State/Change
│
Attribute
│
Object B
进一步:
Object
↓
Attribute
↓
State
↓
Relation
↓
Other Object
↓
Attribute
↓
State
这意味着:
对象关系把多个独立对象连接成一个动态认知环境。
13.25 本章最终结论
本章建立了以下理论基础。
第一:
对象不是孤立存在的,真实环境由对象以及对象之间的关系共同构成。
第二:
属性描述对象自身,关系描述对象之间的联系。
第三:
关系可以具有方向,因此必须区分关系主体、关系类型和关系对象。
第四:
关系本身可以具有属性、状态、变化和时间。
第五:
对象之间的关系可以导致对象属性发生变化。
第六:
多个对象及其关系可以形成对象关系网络。
第七:
对象关系网络使认知系统能够从孤立对象进入环境认知。
第八:
关系不是固定标签,而可以随着时间不断建立、变化和消失。
因此可以形成:
对象
↓
属性
↓
对象关系
↓
关系变化
↓
属性变化
↓
对象状态
↓
环境状态
↓
认知
最终,本章最重要的理论表达是:
对象属性回答“对象具有什么”,对象关系回答“对象之间发生了什么”;当对象、属性、关系及其动态变化被统一组织后,认知系统才获得对复杂环境进行整体认知的基础。
而下一章将继续进入第四篇:
第14章 属性不是静态值:从 Value、State 到 Change、Rate 与 Trend
这一章将进一步解决一个关键问题:
如果对象属性和对象关系都在不断变化,那么认知系统究竟应该如何描述“变化本身”?