第15章 动态属性:Attribute(t)
上一章解决了一个基础问题:
属性不是静态值,而是随时间变化的动态信息。
我们已经从:
Object
↓
Attribute
↓
Value
扩展到了:
Object
↓
Attribute
├── Value
├── State
├── Change
├── Rate
└── Trend
但是,如果理论工程要真正描述现实世界,仅仅把属性拆成几个字段仍然不够。
因为现实中的属性并不是“偶尔变化一次”。
它们是在持续变化。
温度在变化,压力在变化,位置在变化,速度在变化,摩擦在变化,接触面积在变化,物体形变也在变化。
因此,认知系统面对的不是:
Pressure = 3N
而是:
Pressure(t)
也就是:
压力在时间 t 上的状态。
这就是动态属性的正式表达。
15.1 从 Attribute 到 Attribute(t)
传统属性可以表示:
Attribute = Value
例如:
Egg.Weight = 50g
这种表示方式默认属性是一个确定值。
但现实世界中的对象属性通常具有时间性。
例如机器人抓取鸡蛋时:
t1:压力 = 0N
t2:压力 = 0.5N
t3:压力 = 1.0N
t4:压力 = 1.5N
t5:压力 = 1.8N
因此,压力不应该被表示为:
Pressure = 1.8N
而应该表示为:
Pressure(t)
于是:
Attribute(t)
成为动态属性的基本理论表达。
它表示:
某个对象的某个属性,在某一个时间状态下所表现出来的值及其相关动态信息。
15.2 Attribute(t) 的基本含义
可以把:
A(t)
理解为:
属性 A 在时间 t 上的状态。
例如:
Pressure(t)
表示压力随时间变化的状态。
同样:
Position(t)
表示位置随时间变化。
Temperature(t)
表示温度随时间变化。
Velocity(t)
表示速度随时间变化。
因此:
Weight
和:
Pressure(t)
具有不同的认知性质。
重量在某些场景下可以近似看作稳定属性。
而压力通常是:
Pressure(t1)
Pressure(t2)
Pressure(t3)
...
持续变化的。
15.3 动态属性的核心不是“时间戳”
这里需要特别区分一个问题。
动态属性并不是简单地:
Value + Timestamp
例如:
Pressure = 2.8N
Time = 12:31:20
这种数据只是:
带有时间标签的数据。
而:
Attribute(t)
表达的是更深层的理论关系:
属性的值本身是时间的函数。
即:
A=f(t)
因此:
Pressure(t)
不是简单记录“某个时间的压力”。
而是在描述:
压力这一属性本身具有时间变化结构。
这一区别非常重要。
15.4 属性序列
在工程系统中,我们通常无法连续获得无限精度的:
A(t)
而是通过采样获得:
A(t1)
A(t2)
A(t3)
A(t4)
...
例如:
Time Pressure
t1 0.2N
t2 0.5N
t3 0.9N
t4 1.4N
t5 1.8N
这就是一个属性时间序列。
可以表示为:
A(t1),A(t2),A(t3),…,A(tn)
于是,动态属性实际上形成:
Attribute
↓
Time Series
↓
Dynamic State
15.5 当前值只是动态属性的一个截面
这一点非常重要。
如果系统当前读取:
Pressure(t5)=1.8N
那么 1.8N 只是整个动态属性过程中的一个截面。
完整信息实际上是:
t1 = 0.2N
t2 = 0.5N
t3 = 0.9N
t4 = 1.4N
t5 = 1.8N
因此:
当前值不能代替动态属性。
当前值只能告诉系统:
现在是什么。
历史变化才能告诉系统:
怎么到达现在。
而未来预测则进一步需要:
按照当前变化可能走向哪里。
所以动态认知至少包含三个时间方向:
过去
↓
现在
↓
未来
15.6 动态属性的过去、现在与趋势
对于:
A(t)
认知系统可以观察:
过去
A(t-3)
A(t-2)
A(t-1)
当前
A(t)
趋势
A(t-3)
↓
A(t-2)
↓
A(t-1)
↓
A(t)
从而判断:
Increasing
Decreasing
Stable
Fluctuating
所以:
A(t)
实际上为认知系统打开了一个时间窗口。
15.7 滑动时间窗口
现实世界中的动态属性通常不能无限依赖历史数据。
因此需要一个有限的观察窗口:
[t-k, t]
例如机器人最近观察 1 秒钟的压力变化:
t-1.0
t-0.8
t-0.6
t-0.4
t-0.2
t
系统根据这个窗口计算:
当前值
变化量
变化率
趋势
稳定性
这可以表示为:
WA(t)={A(t−k),…,A(t)}
其中:
- A 是属性;
- t 是当前时间;
- k 是观察窗口。
于是:
动态属性不是只观察一个点,而是在观察一个持续变化的局部过程。
15.8 动态属性的状态形成
假设压力数据:
1.0
1.1
1.2
1.3
1.4
系统可以判断:
Value = 1.4
Change = +0.4
Rate > 0
Trend = Increasing
进一步可以形成:
Pressure State = Increasing
因此:
State(t)=f(A(t),A(t−1),…)
也就是说:
属性状态不是一定由当前值直接决定,而可以由属性的动态历史计算得到。
这是从数据走向认知的重要一步。
15.9 动态属性与对象状态
上一章我们已经知道:
Object
↓
Attribute
现在进一步:
Object(t)
↓
Attribute(t)
↓
State(t)
例如鸡蛋:
Egg(t)
其属性可能包括:
Pressure(t)
Friction(t)
Position(t)
Velocity(t)
Deformation(t)
ContactArea(t)
这些属性共同决定对象当前的状态。
例如:
Pressure(t) ↑
Deformation(t) ↑
Velocity(t) ≈ 0
系统可能形成一个新的对象状态:
Egg State = Being Compressed
所以:
对象状态可以由多个动态属性共同形成。
15.10 动态属性之间不是独立的
这是本章进一步需要建立的重要概念。
现实对象中的属性通常相互影响。
例如抓取鸡蛋:
Grip Force ↑
↓
Contact Pressure ↑
↓
Deformation ↑
同时:
Contact Pressure
+
Surface Friction
↓
Slip Risk
因此:
Pressure(t)
Friction(t)
Deformation(t)
Slip(t)
并不是四个孤立的数据。
它们形成了动态关系。
可以表示为:
Ai(t)↔Aj(t)
例如:
Pressure(t)→Deformation(t)
表示压力变化可能影响形变。
这就进入了下一层:
属性之间的动态关系。
15.11 动态属性与因果不能混淆
这里必须保持理论上的严谨。
如果我们观察到:
Pressure ↑
Deformation ↑
只能说明:
两个属性同时发生变化,或者存在关联。
不能直接断言:
压力一定导致形变。
因此:
Correlation
和:
Causality
需要区分。
认知系统可以先建立:
Pressure
↕
Deformation
然后通过重复经验建立更稳定的关系:
Pressure ↑
→ Deformation ↑
这为后面的经验、学习和个体认知提供基础。
15.12 动态属性与环境变化
对象属性的变化并不一定来自对象自身。
例如:
Temperature(t)
可能受到环境温度影响。
又例如:
Friction(t)
可能受到:
- 表面状态;
- 湿度;
- 接触压力;
- 接触材料;
- 运动速度
等因素影响。
因此:
Attribute(t)
实际上处于一个环境系统之中:
对象
+
环境
+
行为
+
时间
↓
属性变化
这意味着动态属性是:
对象与环境交互的结果之一。
15.13 动态属性与行为
机器人执行一个行为:
Grip
行为发生以后:
Pressure(t) ↑
ContactArea(t) ↑
Deformation(t) ↑
因此行为改变属性。
反过来:
Pressure(t) ↑
Deformation(t) ↑
又会影响下一步行为。
于是:
Behavior
↓
Attribute Change
↓
Object State
↓
Cognition
↓
Next Behavior
这已经开始形成认知闭环。
但这里暂时不展开决策与行为理论,因为这些内容将在后面的章节中系统建立。
15.14 Attribute(t) 的工程表达
理论工程最终必须能够落入数据结构。
一个动态属性可以抽象为:
Attribute
{
name,
value,
state,
change,
rate,
trend,
timestamp
}
例如:
Pressure
{
value: 2.8,
state: increasing,
change: 0.3,
rate: 0.2,
trend: increasing,
timestamp: t
}
这里需要注意:
工程数据结构不是理论本身。
理论是:
Attribute(t)
数据结构只是理论的一种实现形式。
因此不能因为系统里有:
value
state
change
rate
trend
就认为已经完成了动态认知。
真正重要的是:
数据
↓
动态结构
↓
关系
↓
状态
↓
认知
15.15 从单个属性到属性集合
一个对象通常拥有多个动态属性:
Object(t)={A1(t),A2(t),…,An(t)}
例如:
Egg(t)
│
├── Weight(t)
├── Pressure(t)
├── Friction(t)
├── Position(t)
├── Velocity(t)
├── Deformation(t)
└── ContactArea(t)
于是对象的动态状态不再由单个属性决定。
可以表示为:
Stateobject(t)=F(A1(t),A2(t),…,An(t))
这意味着:
对象状态是多个动态属性协同作用后的结果。
15.16 从属性集合到认知输入
当多个属性同时进入系统:
Pressure(t)
Friction(t)
Deformation(t)
Velocity(t)
Position(t)
系统不能简单地:
Pressure + Friction + Deformation
进行数学相加。
因为它们的意义、量纲、时间变化以及相互关系都不同。
真正需要处理的是:
属性
↓
属性状态
↓
属性变化
↓
属性关系
↓
协同状态
↓
匹配
这就是后面认知匹配理论的基础。
15.17 动态属性解决了什么问题
到目前为止,我们已经解决了静态属性模型中的几个核心局限。
第一,解决“只有当前值”的问题
从:
Pressure = 3N
变成:
Pressure(t)
第二,解决“无法描述变化”的问题
加入:
Change
第三,解决“无法描述变化速度”的问题
加入:
Rate
第四,解决“无法描述长期方向”的问题
加入:
Trend
第五,解决“无法描述当前动态状态”的问题
加入:
State
因此:
Attribute
从静态属性:
A=V
逐步变成:
A(t)={V,S,Δ,R,T}
15.18 一个重要结论:认知对象必须具有时间维度
如果认知系统只认识:
Object
Attribute
Value
那么它更接近一个数据库。
数据库可以告诉我们:
鸡蛋重量是 50g。
但认知系统需要进一步回答:
鸡蛋当前是否正在移动?
压力是否正在增加?
增加速度是否过快?
形变是否正在扩大?
当前状态是否正在接近危险状态?
这些问题全部依赖时间。
因此:
动态属性是认知系统从“数据记录”走向“过程认知”的关键。
15.19 本章核心模型
本章可以最终形成以下模型:
Object
│
↓
Attribute(t)
│
┌─────────────┼─────────────┐
↓ ↓ ↓
Value State Change
│
↓
Rate
│
↓
Trend
进一步:
Attribute(t)
│
├── t-2
├── t-1
├── t
│
↓
动态变化
↓
状态
↓
对象动态状态
多个属性进一步形成:
A1(t) ─────┐
A2(t) ─────┤
A3(t) ─────┼──→ Object State(t)
A4(t) ─────┤
A5(t) ─────┘
而对象动态状态最终成为后续认知匹配的输入。
15.20 本章结论
本章真正建立的不是一个程序字段,而是一条理论原则:
任何需要描述现实过程的对象属性,都不能仅以静态 Value 进行表达。
属性必须具有时间维度。
因此:
Attribute→Attribute(t)
意味着属性从:
“它是什么值”
进入:
“它在什么时候是什么状态、发生了什么变化、变化速度如何,以及这种变化正在形成什么趋势”。
而当多个动态属性同时存在时,认知系统面对的就不再是单个属性,而是:
{A1(t),A2(t),…,An(t)}
这些动态属性之间又会产生相互影响和协同关系。
因此下一步必须解决的问题是:
当多个属性同时动态变化时,它们之间究竟如何形成关系?
这就是下一章的核心。
第16章 属性之间的动态关系
下一章将建立:
属性
↓
属性变化
↓
属性之间的变化关系
↓
协同变化
↓
关联
↓
影响
↓
对象动态状态
并进一步说明为什么机器人抓取鸡蛋时,压力、摩擦、滑移、形变等数据不能分别独立判断,而必须作为动态协同数据进行认知。