第127章 Cognitive Object
认知对象
第126章建立了 Cognitive Element(认知元素)。
机器从现实世界获得:
Perception
↓
Cognitive Elements
例如:
Position
Orientation
Shape
Color
Velocity
Contact
Force
Fragility
Temperature
但是,机器真正需要理解的并不是孤立的:
Position
Force
Shape
而是:
一个正在现实环境中存在、变化、与其他实体发生关系的对象。
因此,本章研究一个核心问题:
多个 Cognitive Elements 如何组织成为一个 Cognitive Object?
建立:
Elements
↓
Object
但这里的 Object 不再是传统程序中的一个名称:
Egg
而是一个具有内部结构、关系、状态和动态变化的认知实体:
Egg
├── Attributes
├── Relations
├── State
└── Dynamic Changes
127.1 Object 不等于 Name
传统系统中,对象往往从一个名称开始:
Egg
数据库可能记录:
object_name = "egg"
但是对于机器认知而言:
Egg
这个词本身几乎没有提供现实信息。
机器真正需要处理的是:
What is it?
Where is it?
What state is it in?
What is it related to?
What is happening to it?
How is it changing?
因此:
Egg
不是完整的 Cognitive Object。
更准确地表示:
Cognitive Object
=
Identity
+
Attributes
+
Relations
+
State
+
Dynamics
127.2 Cognitive Object 的定义
可以定义:
Cognitive Object 是由一个或多个相互关联的 Cognitive Elements 组织形成,并具有独立身份、属性、关系、状态以及动态变化历史的认知实体。
形式化表示:
CO =
{
Identity,
Attributes,
Relations,
State,
Dynamics
}
其中:
Identity
回答:
这是哪个对象?
Attributes
回答:
它具有什么特征?
Relations
回答:
它与什么存在关系?
State
回答:
它现在处于什么状态?
Dynamics
回答:
它正在如何变化?
127.3 Object 的形成
Object 不是感知系统直接“送进来”的。
更合理的过程是:
Reality
↓
Perception
↓
Elements
↓
Element Association
↓
Object Construction
例如机器感知到:
Shape = Oval
Color = White
Position = (120,80,30)
Velocity = 0
Contact = TRUE
Force = 0.8N
Fragility = HIGH
系统发现这些 Element 在空间、时间以及因果关系上具有稳定联系。
于是建立:
Object O001
内部:
O001
├── Shape = Oval
├── Color = White
├── Position = (120,80,30)
├── Velocity = 0
├── Contact = TRUE
├── Force = 0.8N
└── Fragility = HIGH
之后系统可能把 O001 识别为:
Egg
因此:
Egg
是 Object 的一个语义识别结果。
而:
O001
才是系统内部持续跟踪的认知实体。
127.4 Identity:对象身份
Cognitive Object 必须拥有 Identity。
例如:
Object ID
=
O001
即使对象的某些属性发生变化:
Position(t1)
Position(t2)
Position(t3)
系统仍然知道:
O001
是同一个对象。
因此:
Object Identity
必须与:
Object State
分离。
例如:
O001
Identity = Stable
但是:
Position = Changing
Velocity = 2m/s
对象可以变化,但对象身份不一定变化。
这是机器建立:
Tracking
Memory
Learning
Prediction
的基础。
127.5 Object Identity 不是 Object Name
这是一个非常重要的区别:
Name ≠ Identity
例如现实中存在三个鸡蛋:
Egg
Egg
Egg
名称相同。
但是认知系统必须建立:
O001 = Egg
O002 = Egg
O003 = Egg
于是:
Name
↓
Category
而:
Object ID
↓
Individual Identity
因此:
Egg
回答:
它属于什么类别?
而:
O001
回答:
当前正在跟踪的是哪一个具体对象?
127.6 Attributes:对象属性
Object 的第一层内部结构是:
Attributes
例如:
Egg
├── Shape
├── Color
├── Size
├── Weight
├── Fragility
└── Temperature
这些属性实际上来自:
Cognitive Elements
因此:
Elements
↓
Attributes
例如:
Element:
Color = White
进入 Object:
Egg.Color = White
再例如:
Element:
Weight = 60g
形成:
Egg.Weight = 60g
所以:
Object Attribute 是 Cognitive Element 在对象内部的结构化组织形式。
127.7 Attributes 不是固定不变的
传统数据库可能把:
Egg.color = white
当作一个静态字段。
但现实对象并不是静态数据库记录。
例如:
Temperature
可能变化:
36°C
↓
40°C
↓
45°C
Position 可能变化:
(100,50)
↓
(105,50)
↓
(110,50)
因此 Attribute 应该理解为:
Current Attribute Value
而不是:
Permanent Property
于是:
Object
├── Attribute
│ ├── Current Value
│ └── History
127.8 Relations:对象关系
对象不能孤立存在。
例如:
Egg
可能:
on → Table
near → Hand
inside → Box
held_by → Robot
因此 Object 必须具有:
Relations
例如:
Egg
├── on → Table
├── near → Hand
├── inside → Container
└── observed_by → Camera
关系本身也是认知结构。
因此:
Object
+
Object
+
Relation
可以形成:
Cognitive Structure
例如:
Hand
│
│ holding
↓
Egg
│
│ on
↓
Table
这已经不再是单个对象。
而是:
Situation
的基础。
127.9 State:对象状态
Object 还必须具有:
State
例如鸡蛋:
Egg
State = Stable
但是下一时刻:
Egg
State = Falling
再下一时刻:
Egg
State = Broken
于是:
Egg
↓
Stable
↓
Falling
↓
Impact
↓
Broken
注意:
Object Identity
可能仍然是:
O001
但:
Object State
已经发生了变化。
因此:
Identity
与:
State
必须分离。
127.10 Dynamic Changes:动态变化
这是 Cognitive Object 与传统静态 Object 最大的区别之一。
现实对象不是:
Object = Fixed Record
而是:
Object
↓
State(t1)
↓
State(t2)
↓
State(t3)
例如:
Position:
(100,50)
↓
(102,50)
↓
(105,50)
同时:
Velocity:
0
↓
1.2
↓
2.4
同时:
Force:
0
↓
0.4N
↓
1.1N
机器最终得到:
Object Dynamics
因此:
Cognitive Object 不仅描述“它是什么”,还描述“它正在发生什么”。
127.11 Object 是时间连续体
如果机器只保存当前:
Egg
Position = (105,50)
机器知道:
它现在在哪里。
但是不知道:
它从哪里来?
更不知道:
它正在向哪里运动?
因此 Cognitive Object 应具有:
Current State
+
Previous State
+
Change
形成:
Object Timeline
例如:
t1
Position = 100
Velocity = 0
t2
Position = 102
Velocity = 1
t3
Position = 105
Velocity = 2
系统可以进一步计算:
Movement
Direction
Acceleration
Trend
于是 Object 从静态实体变成:
Temporal Object
127.12 Object 的内部结构
因此,一个完整的 Cognitive Object 可以表示为:
Object
{
identity,
attributes[],
relations[],
state,
dynamics[]
}
进一步:
Object
{
id,
category,
attributes: {
shape,
color,
size,
weight,
...
},
relations: [
...
],
state: {
current,
confidence,
timestamp
},
dynamics: [
...
]
}
例如:
O001
{
category: Egg,
attributes:
{
shape: Oval,
color: White,
weight: 60g,
fragility: High
},
relations:
{
on: Table,
near: Hand
},
state:
{
status: Stable,
contact: TRUE
},
dynamics:
{
velocity: 0,
force: 0.8N
}
}
127.13 Object 的形成不是一次性的
Object Construction 不应该被理解为:
Elements
↓
Object
然后结束。
更合理的是:
Elements(t1)
↓
Object(t1)
Elements(t2)
↓
Object(t2)
Elements(t3)
↓
Object(t3)
系统不断进行:
Object Update
于是:
O001
↓
Update
↓
Update
↓
Update
Object 在时间上持续存在。
127.14 Object Update
每一次新的 Perception 到达:
Perception(t)
系统重新获得:
Elements(t)
然后尝试匹配现有 Object:
Elements
↓
Object Matching
↓
Existing Object?
如果:
YES
则:
Update Object
如果:
NO
则:
Create New Object
形成:
Perception
↓
Elements
↓
Object Association
├── Existing Object → Update
└── New Object → Create
这是认知系统持续运行的基础。
127.15 Object Association
现实环境中可能同时出现:
Egg A
Egg B
Egg C
下一次感知:
Position
Shape
Color
系统必须判断:
这个 Element 属于哪个 Object?
于是需要:
Element → Object Association
例如:
Position = (105,50)
Shape = Oval
Color = White
可能属于:
O001
而:
Position = (200,70)
Shape = Oval
Color = White
可能属于:
O002
因此:
Object 的持续存在,本质上依赖于 Element 与 Object 之间的持续关联。
127.16 Object 的认知边界
现实世界是连续的。
但是机器需要划分:
What belongs to Object?
What does not belong to Object?
例如一个鸡蛋放在桌子上:
Egg
与:
Table
存在:
on
关系。
但是:
Table
不是:
Egg
的一部分。
因此系统必须建立:
Object Boundary
即:
哪些 Elements 属于对象本身,哪些 Elements 属于环境,哪些 Elements 只是与对象发生关系。
这是 Object Formation 的核心问题之一。
127.17 Object Boundary 不是固定几何边界
认知对象的边界并不总是纯粹的视觉边界。
例如:
Robot Hand
↓
Holding
↓
Egg
视觉上二者可能发生遮挡。
但是认知系统仍然应该保持:
Hand ≠ Egg
同时建立:
Hand --holding--> Egg
因此:
Object Boundary
不仅来自:
Shape
还来自:
Identity
Relation
Function
State
Continuity
127.18 Object 可以包含 Object
复杂现实对象可以具有层级。
例如:
Car
├── Engine
├── Wheel
├── Door
├── Window
└── Seat
每个部分本身都可以成为:
Cognitive Object
于是:
Object
↓
Sub-Objects
例如:
Car O001
├── Wheel O002
├── Wheel O003
├── Door O004
└── Engine O005
形成:
Object Hierarchy
因此 Cognitive Object 并不是扁平结构。
127.19 Object 与 Category
需要进一步区分:
Object
和:
Category
例如:
Egg
可以表示类别:
Category = Egg
而:
O001
表示具体实例:
Object = O001
Category = Egg
所以:
Category
↓
Defines what kind
而:
Object
↓
Defines which instance
例如:
O001 → Egg
O002 → Egg
O003 → Egg
三者类别相同:
Egg
但三个 Object 不同。
127.20 Object 与 Concept
还需要区分:
Object
和:
Concept
例如:
Egg
可能是一个 Concept:
Concept: Egg
描述:
Typical Shape
Typical Weight
Typical Properties
Typical Relations
而现实中:
O001
是具体对象。
因此:
Concept
↓
Object Classification
而不是:
Concept = Object
这为后面的:
Concept
Memory
Knowledge
Learning
提供基础。
127.21 Object 的五层结构
本章可以将 Cognitive Object 正式划分为五个核心层:
Cognitive Object
│
├── Identity
│
├── Attributes
│
├── Relations
│
├── State
│
└── Dynamics
Identity
回答:
Which object?
Attributes
回答:
What properties?
Relations
回答:
Related to what?
State
回答:
What condition now?
Dynamics
回答:
How is it changing?
这五个部分共同构成:
Cognitive Object
127.22 Object 与 Perception 的关系
Perception 描述:
当前感知到了什么。
Object 描述:
当前认知系统认为现实中存在什么实体。
因此:
Perception
↓
Elements
↓
Object
但反过来:
Object
↓
Expectation
↓
Perception
也可能成立。
例如系统已经知道:
O001 = Egg
那么下一次感知时,它可以预测:
O001
应该出现在哪里?
应该具有什么形状?
应该如何运动?
于是 Object 开始参与:
Prediction
认知系统因此从单纯:
Perception
进入:
Expectation
127.23 Object 与 Memory
如果 Object 只存在于当前时刻:
Object(t)
它只是:
Current Object
如果系统保存:
Object(t1)
Object(t2)
Object(t3)
就形成:
Object Memory
例如:
O001
├── Current State
├── Previous States
├── Events
└── Changes
于是:
Object
↓
Object Memory
成为后续认知记忆系统的重要基础。
127.24 Object 与 Event
对象状态变化可以产生事件。
例如:
Egg
State:
Stable
变成:
Falling
产生:
Event:
EggStartedFalling
进一步:
Falling
↓
Collision
↓
Broken
产生:
Event Sequence
因此:
Object
↓
State Change
↓
Event
而:
Event
↓
Object Update
又会反过来更新对象状态。
形成:
Object
↕
Event
的循环结构。
127.25 Object 与 Situation
单个 Object 只能描述一个实体。
但是现实认知通常需要理解:
Object
+
Object
+
Relations
+
States
例如:
Hand
│
holding
↓
Egg
│
│ on
↓
Table
形成:
Situation
因此:
Object
↓
Object Relations
↓
Situation
可以说:
Object 是 Situation 的基本实体单位。
127.26 Object 的完整生命周期
Cognitive Object 可以具有:
Detected
↓
Created
↓
Identified
↓
Tracked
↓
Updated
↓
Changed
↓
Lost
↓
Recovered
↓
Destroyed
例如一个鸡蛋:
Unknown
↓
Detected
↓
Object Created
↓
Egg Identified
↓
Tracked
↓
Moved
↓
Contact
↓
Broken
这里:
Object Identity
可以持续很长时间。
而:
State
则不断变化。
127.27 Cognitive Object 的工程模型
最终可以建立一个可实现的数据结构:
CognitiveObject
{
id,
category,
attributes,
relations,
state,
dynamics,
history
}
例如:
CognitiveObject
{
id: O001,
category: Egg,
attributes:
{
shape: Oval,
color: White,
weight: 60g,
fragility: High
},
relations:
[
{
type: on,
target: O010
},
{
type: near,
target: O020
}
],
state:
{
status: Stable,
contact: TRUE
},
dynamics:
{
position: [120,80,30],
velocity: 0,
force: 0.8
},
history:
[
...
]
}
这已经从:
Egg
变成:
A continuously maintained cognitive entity
127.28 Cognitive Object 的核心架构
因此可以建立:
Cognitive Object
│
┌──────────────┼──────────────┐
↓ ↓ ↓
Identity Attributes Relations
│ │ │
└──────────────┼──────────────┘
↓
State
↓
Dynamics
↓
History
更完整地表示:
Elements
↓
Association
↓
Identity
↓
Attributes
↓
Relations
↓
State
↓
Dynamics
↓
Object Memory
127.29 从 Element 到 Object
第126章和第127章可以连接成为:
Perception
↓
Cognitive Element
↓
Element Association
↓
Cognitive Object
例如:
Position
Shape
Color
Velocity
Contact
Force
Fragility
经过组织:
O001
├── Attributes
├── Relations
├── State
└── Dynamics
于是:
Element
解决:
机器认知世界由什么基本信息单位组成?
而:
Object
解决:
这些信息单位组织成了什么持续存在的实体?
127.30 本章核心定义
最终可以给出 WSaiOS-ICAI 的 Cognitive Object 定义:
Cognitive Object 是由多个具有稳定关联的 Cognitive Elements 组织形成,并在认知空间中保持独立身份、属性、关系、状态及动态变化历史的持续性认知实体。
形式化表示:
CO =
Identity
+
Attributes
+
Relations
+
State
+
Dynamics
+
History
而对象形成过程:
Perception
↓
Elements
↓
Element Association
↓
Identity
↓
Cognitive Object
对象运行过程:
Cognitive Object
↓
Current State
↓
State Change
↓
Dynamic Change
↓
Object Update
↓
Object Memory
最终形成:
Reality
↓
Perception
↓
Element
↓
Object
↓
State
↓
Change
↓
Event
↓
Situation
↓
Cognition
因此,本章真正建立的是一个关键转变:
传统机器:
"Egg"
变成:
机器认知:
O001
│
├── Identity
├── Attributes
│ ├── Shape
│ ├── Color
│ ├── Weight
│ └── Fragility
│
├── Relations
│ ├── on → Table
│ └── near → Hand
│
├── State
│ └── Stable
│
└── Dynamics
├── Position
├── Velocity
└── Force
这意味着机器不再只是“给现实对象命名”,而开始在内部建立一个可以持续存在、持续更新、持续关联和持续变化的 Cognitive Object。
而当多个 Cognitive Object 同时存在以后,新的问题就出现了:
Object 与 Object 之间究竟如何建立稳定的认知关系,并进一步形成一个可计算的认知世界?
这将进入下一层:
Cognitive Object
↓
Cognitive Relation
↓
Cognitive World
第128章:Cognitive Relation——认知关系。