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

第123章 Dynamic World 动态世界

第123章 Dynamic World

动态世界

第122章进入 ICAI Engineering Implementation(ICAI 工程实现),解决的是如何把认知模型转换为软件结构。

从第123章开始,第十三部分进入一个更加基础的问题:

ICAI 所面对的现实世界,到底是什么样的世界?

如果把现实世界理解成一个可以提前完整采集、固定保存的数据集合,那么后面的感知、认知、决策和行为计算都会建立在一个错误的前提之上。

现实世界并不是:

Data
 ↓
Database
 ↓
Answer

而是:

World
 ↓
Continuous Change
 ↓
New State
 ↓
New Situation
 ↓
New Perception
 ↓
New Cognition

因此,本章首先建立一个基础前提:

机器面对的不是一个静态数据世界,而是一个持续变化的动态世界。


123.1 世界不是数据库

传统数据系统非常适合描述:

固定对象
固定属性
固定记录
固定关系

例如:

Egg
Position = (100,200)
Weight = 50g

这些数据本身没有问题。

问题在于:

现实中的鸡蛋并不会因为数据库记录了 Position = (100,200),就永远停留在那里。

现实世界中的对象可能发生:

移动
旋转
滚动
碰撞
遮挡
掉落
变形
破损
消失

因此:

Database Record

只是某一个时间点上的描述。

而不是整个现实世界。


123.2 World(t)

因此,ICAI 不应该把世界理解为一个固定状态。

更适合建立:

World(t)

其中:

t = 当前时间

例如某一时刻:

World(t1)

可能是:

桌子
+
鸡蛋
+
机械手
+
障碍物

经过一段时间以后:

World(t2)

可能变成:

桌子
+
鸡蛋新位置
+
机械手新位置
+
障碍物新关系

因此:

World(t1)
≠
World(t2)

即使其中大部分对象没有改变。


123.3 世界变化不是异常

一个非常重要的认识是:

世界变化不是系统异常,而是现实世界的正常状态。

传统程序经常把变化理解为:

Exception

或者:

Unexpected Input

但对于现实世界机器人而言:

Change

本身就是:

Normal

例如:

鸡蛋移动

不是异常。

人走动

不是异常。

光线变化

不是异常。

障碍物出现

不是异常。

物体掉落

也不一定是异常。

真正需要系统处理的是:

变化以后,当前世界已经变成什么状态?


123.4 World(t) → World(t+1)

因此可以建立最基本的动态世界模型:

World(t)
    ↓
Change
    ↓
World(t+1)

进一步:

World(t0)
 ↓
World(t1)
 ↓
World(t2)
 ↓
World(t3)
 ↓
...

这意味着机器人面对的不是一个:

World

而是:

持续变化的 World State Sequence。


123.5 对象也不是静态的

世界变化首先表现为对象变化。

例如:

Egg

不是一个固定数据:

Egg
Position = X

而应该理解成:

Egg(t)

它具有:

Position(t)
Orientation(t)
Velocity(t)
Contact(t)
Condition(t)

于是:

Egg(t1)
≠
Egg(t2)

即使它仍然是:

同一个 Egg

这里必须区分:

Object Identity

与:

Object State

对象可以保持同一个身份,而状态不断变化。


123.6 属性也可能动态变化

对象属性不能全部理解为永久固定值。

例如:

Egg

可以具有:

Material
Fragility
Shape
Weight

这些属性相对稳定。

但同时存在:

Position
Orientation
Velocity
Contact
Pressure
Temperature
Integrity

这些属性可能实时变化。

因此可以形成:

Object
├── Stable Attributes
└── Dynamic Attributes

进一步:

Object(t)
=
Stable Attributes
+
Dynamic Attributes(t)

这为后面的实时认知提供基础。


123.7 关系也会变化

现实世界中的关系同样不是固定的。

例如:

Robot
 ↔
Egg

可能最初是:

Near

然后变成:

Approaching

随后:

Contact

如果抓取失败:

Contact
 ↓
Lost Contact
 ↓
Egg Rolling

于是关系发生连续变化:

Relation(t1)
≠
Relation(t2)

因此:

关系也是动态认知数据,而不是静态数据库字段。


123.8 环境也会变化

如果只关注目标对象,仍然不足以描述现实世界。

例如抓鸡蛋时:

Egg

的位置变化可能受到:

Table
Robot Hand
Obstacle
Person
Other Objects

影响。

而这些环境对象也可能发生变化。

因此:

Environment(t)

同样是动态的。

形成:

Object Change
+
Environment Change
+
Relation Change
 ↓
Scene Change

123.9 状态持续变化

对象状态是多个动态因素共同形成的结果。

例如鸡蛋:

Stable

可能变成:

Unstable

然后:

Rolling

最后:

Stopped

状态变化可以表示为:

State(t1)
 ↓
Transition
 ↓
State(t2)

因此:

State

不是一个永久标签。

它是:

对象在特定时间、特定环境和特定关系条件下形成的当前状态。


123.10 场景不是照片

这是本章非常重要的一点。

传统视觉系统很容易把场景理解成:

Image
 ↓
Recognition

但对于 ICAI 而言:

场景不是一张照片,而是一个动态的认知结构。

场景至少包含:

Elements
Objects
Attributes
Relations
States
Environment

因此:

Scene(t)

应该理解为:

Scene(t)
=
Elements(t)
+
Objects(t)
+
Attributes(t)
+
Relations(t)
+
States(t)
+
Environment(t)

123.11 同一个场景不会真正重复

现实世界存在一个非常重要的特征:

世界可以高度相似,但不存在完全相同的连续现实场景。

例如每天同一个房间:

Room A

看起来一样。

但是:

人的位置
光线
物体位置
物体姿态
空气
温度
障碍
运动
时间

都可能不同。

因此:

Scene A

和:

Scene B

可以具有大量共同结构,但不应该直接认为:

Scene A == Scene B

这正是后面“历史认知如何用于新场景”的理论基础。


123.12 相同元素,不代表相同场景

这一点尤其重要。

例如:

Egg

可以在很多场景中出现:

Scene A
Egg + Table

Scene B
Egg + Robot Hand

Scene C
Egg + Floor

Scene D
Egg + Obstacle

对象:

Egg

是相同类别。

但是:

Position
Relation
State
Environment
Goal

都可能不同。

因此:

Same Object
≠
Same Scene

进一步:

Same Elements
≠
Same Situation

123.13 历史数据为什么仍然有价值

既然现实世界不会完全重复,那么是否意味着历史数据没有价值?

不是。

真正的问题不是:

历史数据有没有价值?

而是:

历史数据应该以什么形式进入新的认知?

例如过去曾经出现:

Egg
Fragile
Rolling

这类历史认知仍然有价值。

但是不能简单规定:

以后看到 Egg
 ↓
执行过去的 Action

正确方式应该是:

Historical Cognitive Structure
+
Current Real-Time Data
 ↓
Current Scene
 ↓
Current Cognition

也就是说:

历史用于认知,新数据用于确定当前现实。


123.14 固定数据与动态数据

因此,ICAI 需要区分两类数据。

第一类:历史认知数据

例如:

Object Type
Attributes
Relations
Past States
Experience
Methods
Results

这些数据可以长期保存。

第二类:实时场景数据

例如:

Current Position
Current Distance
Current Orientation
Current Velocity
Current Contact
Current Force
Current Obstacle
Current Machine State

这些数据必须随着现实世界变化而更新。

于是:

Historical Cognition
        +
Real-Time Scene Data
        ↓
Current Cognition

123.15 多元数据共同描述现实

一个对象的当前状态不能由一个数据决定。

例如鸡蛋:

Position
+
Orientation
+
Distance
+
Velocity
+
Obstacle
+
Contact
+
Force
+
Machine Hand State

共同形成:

Current Egg Situation

因此:

现实世界的认知不是单变量判断,而是多元实时数据共同形成的状态判断。

这与前面的静态数据模型存在本质区别。


123.16 数据不是行为

还需要进一步区分:

Data

与:

Behavior

之间不能直接建立:

Data
 ↓
Fixed Action

例如:

Egg Position = X

不能直接推出:

Move Hand → X

因为还需要考虑:

Egg Orientation
Distance
Obstacle
Velocity
Fragility
Hand Position
Hand State
Goal

因此:

Multiple Real-Time Factors
 ↓
Current Cognitive State
 ↓
Method Matching
 ↓
Behavior

这正是 ICAI 动态认知计算的基础。


123.17 失误以后世界已经改变

回到最重要的鸡蛋案例。

假设机器人第一次抓取失败:

Robot
 ↓
Attempt
 ↓
Failure

鸡蛋开始:

Rolling

此时最重要的不是:

继续执行原来的抓取程序

因为:

World(t1)

已经变成:

World(t2)

鸡蛋发生了:

Position Change
Orientation Change
Velocity Change
Relation Change

所以系统必须:

停止使用旧场景
 ↓
重新感知
 ↓
重新形成元素
 ↓
重新形成对象状态
 ↓
重新形成场景
 ↓
重新认知
 ↓
重新计算行为

这正是动态世界理论真正需要解决的问题。


123.18 世界变化驱动认知变化

由此建立:

World Change
      ↓
Perception Change
      ↓
Element Change
      ↓
Object State Change
      ↓
Relation Change
      ↓
Scene Change
      ↓
Cognitive Change

进一步:

Cognitive Change
      ↓
Decision Change
      ↓
Behavior Change

因此:

现实世界变化必须能够驱动机器认知变化。

如果世界已经变化,而机器认知仍然保持旧状态,那么机器的后续行为就可能与现实脱节。


123.19 Dynamic World 的基本工程模型

因此,ICAI 可以建立一个基本运行结构:

              Real World
                   │
                   ▼
             Real-Time Data
                   │
                   ▼
               Perception
                   │
                   ▼
                Elements
                   │
                   ▼
                Objects
                   │
                   ▼
          Attributes / Relations
                   │
                   ▼
                State(t)
                   │
                   ▼
                Scene(t)
                   │
             World Changes
                   │
                   ▼
                State(t+1)
                   │
                   ▼
                Scene(t+1)

这不是:

Input → Fixed Answer

而是:

World(t)
 ↓
Cognition(t)
 ↓
Action(t)
 ↓
World(t+1)
 ↓
Cognition(t+1)
 ↓
Action(t+1)
 ↓
...

123.20 Dynamic World 的理论意义

第123章实际上为后面的所有动态认知理论建立了一个最底层前提:

如果现实世界是动态的,那么机器认知就不能建立在“世界已经被完整采集”的假设之上。

机器必须面对:

未知变化
部分变化
连续变化
突发变化
关系变化
状态变化

因此:

固定世界模型

必须逐步转变为:

动态世界模型

最终形成:

World
 ↓
Real-Time Perception
 ↓
Dynamic Scene
 ↓
Current Cognitive State

123.21 本章小结

本章并没有讨论机器人应该做什么动作。

因为在进入行为计算之前,必须首先解决一个更加基础的问题:

机器面对的世界究竟是不是固定的?

答案是:

不是。

现实世界是:

持续变化的

对象是动态的:

Object(t)

属性可能动态变化:

Attribute(t)

关系是动态的:

Relation(t)

状态是动态的:

State(t)

场景也是动态的:

Scene(t)

因此整个世界可以表达为:

World(t)
 ↓
Change
 ↓
World(t+1)
 ↓
Change
 ↓
World(t+2)
 ↓
...

而机器不能依靠:

过去固定数据

直接决定:

现在的行为

正确的工程逻辑应该是:

历史认知
      +
实时感知
      ↓
当前元素
      ↓
当前对象
      ↓
当前属性
      ↓
当前关系
      ↓
当前状态
      ↓
当前场景
      ↓
当前认知

由此,第123章建立第十三部分的第一个核心原则:

机器不是在一个已经被数据化完成的世界中运行,而是在一个持续变化的世界中,通过实时感知不断重新构建当前认知。

下一章因此自然进入:

第124章 Real-Time Perception

如果世界一直在变化,机器究竟如何获得“此时此刻”的现实世界数据?

也就是从:

Dynamic World

正式进入:

Real-Time Perception

而这一步将进一步解释为什么你提出的位置、姿态、距离、速度、障碍、接触、力度、机械手状态等多元感知数据,必须共同参与当前场景的认知计算

Leave a Reply

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