第72章 场景认知
72.1 场景认知的提出背景
在个体人工智能(Individual Artificial Intelligence,ICAI)中,机器个体不能只认识孤立的对象。现实世界中的对象始终处于一定的环境、时间、空间、状态和关系之中。
例如,一辆汽车本身是一个对象,汽车的速度是属性,汽车正在行驶是状态,汽车与道路之间存在行驶关系。但是,当机器个体需要判断“汽车正在前方道路上高速行驶,前方存在障碍物”时,仅仅分别保存汽车、速度、道路、障碍物等信息是不够的,还必须把这些对象、属性、状态、关系以及所处条件组织成为一个完整的结构。
这个完整结构就是场景(Scene)。
因此,场景认知建立在前面对象认知、属性认知、状态认知和关系认知的基础上:
Object→Attribute→State→Relation→SceneObject \rightarrow Attribute \rightarrow State \rightarrow Relation \rightarrow Scene
场景不是简单的信息集合,而是机器个体对某一时刻、某一空间或某一条件下现实结构的整体计算结果。
72.2 场景定义
**场景(Scene)**是由一定范围内的对象、对象属性、对象状态、对象之间的关系,以及时间、空间、条件和事件共同构成的结构化现实状态。
**场景认知(Scene Cognition)**是机器个体对现实环境中的对象、属性、状态、关系、条件和事件进行组织、组合、计算和判断,从而形成当前场景内部结构的过程。
场景可以形式化表示为:
Scene={Object,Attribute,State,Relation,Condition,Event,Time,Space}Scene= \{ Object, Attribute, State, Relation, Condition, Event, Time, Space \}
其中:
- ObjectObject:场景中的对象;
- AttributeAttribute:对象及场景相关属性;
- StateState:对象及场景当前状态;
- RelationRelation:对象之间的关系;
- ConditionCondition:场景成立的条件;
- EventEvent:场景中的事件;
- TimeTime:场景发生或持续的时间;
- SpaceSpace:场景所在的空间范围。
因此:
Scene=Object+Attribute+State+Relation+Condition+Event+Time+SpaceScene = Object + Attribute + State + Relation + Condition + Event + Time + Space
场景的核心不是“有多少对象”,而是:
对象+对象属性+对象状态+对象关系+场景条件→场景结构对象 + 对象属性 + 对象状态 + 对象关系 + 场景条件 \rightarrow 场景结构
72.3 场景对象
**场景对象(Scene Object)**是构成某一具体场景的对象实例。
一个场景可以包含一个对象,也可以包含多个对象。
例如,一个“汽车道路行驶场景”可以包含:
汽车
道路
交通信号灯
行人
其他车辆
障碍物
因此:
SceneObjects={O1,O2,…,On}SceneObjects= \{O_1,O_2,\ldots,O_n\}
其中 OiO_i 表示场景中的第 ii 个对象。
场景对象不是孤立记录,而是具有场景位置和场景状态的对象。
例如:
Ocar={ID,Type,Position,Attribute,State,Relation}O_{car}= \{ ID, Type, Position, Attribute, State, Relation \}
同一个对象进入不同场景后,其场景角色可能发生变化。
例如,同一辆汽车可以分别出现在:
停车场景
↓
道路行驶场景
↓
交通拥堵场景
↓
故障场景
↓
维修场景
因此:
Object≠SceneObject\neq Scene
而:
Object→SceneObject\rightarrow Scene
表示对象进入场景。
72.4 场景属性
**场景属性(Scene Attribute)**是描述场景对象或整个场景特征的数据。
场景属性可以来源于对象属性,也可以来源于对象之间的综合计算。
例如汽车行驶场景中的属性包括:
汽车速度
汽车方向
道路宽度
道路长度
天气
温度
能见度
障碍物距离
属性可以表示为:
A={Name,Value,Type,Unit,Source,Time}A= \{ Name, Value, Type, Unit, Source, Time \}
场景属性集合:
SceneAttribute={A1,A2,…,An}SceneAttribute= \{A_1,A_2,\ldots,A_n\}
某些场景属性不能直接从一个对象获得,而需要多个对象共同计算。
例如:
Distance=f(Position1,Position2)Distance=f(Position_1,Position_2)
其中 Position1Position_1 和 Position2Position_2 分别表示两个对象的位置。
因此:
ObjectAttribute→SceneAttributeObjectAttribute \rightarrow SceneAttribute
同时:
Object1+Object2→AttributeCalculation→SceneAttributeObject_1+Object_2 \rightarrow AttributeCalculation \rightarrow SceneAttribute
72.5 场景状态
**场景状态(Scene State)**是某一时刻场景整体所处的状态。
对象有对象状态,关系有关系状态,场景本身也存在整体状态。
例如:
道路正常
道路拥堵
道路施工
道路封闭
天气恶劣
交通事故
紧急避险
场景状态可以表示为:
SS={SceneID,StateType,Value,Condition,Time}SS= \{ SceneID, StateType, Value, Condition, Time \}
场景状态不是单一对象状态的简单复制,而是多个对象状态、关系状态和条件综合计算的结果:
SS=f(OS,RS,AS,C)SS=f( O_S, R_S, A_S, C )
其中:
- OSO_S:场景对象状态集合;
- RSR_S:场景关系状态集合;
- ASA_S:场景属性集合;
- CC:场景条件。
例如:
汽车正常+道路正常+交通流量低→正常行驶场景汽车正常 + 道路正常 + 交通流量低 \rightarrow 正常行驶场景
而:
汽车正常+道路正常+交通流量高+车辆密集→交通拥堵场景汽车正常 + 道路正常 + 交通流量高 + 车辆密集 \rightarrow 交通拥堵场景
由此可见:
SceneState≠ObjectStateSceneState\neq ObjectState
但:
ObjectState+RelationState+Condition→SceneStateObjectState + RelationState + Condition \rightarrow SceneState
72.6 场景关系
**场景关系(Scene Relation)**是场景中对象之间,以及对象与环境之间形成的结构关系。
前面关系认知中定义:
R=(Subject,Type,Object)R=(Subject,Type,Object)
在场景中,关系进一步受到场景条件、时间和空间的限制。
因此:
SR={Subject,Type,Object,Direction,Condition,State,Time}SR= \{ Subject, Type, Object, Direction, Condition, State, Time \}
例如:
汽车 → 行驶于 → 道路
汽车 → 接近 → 障碍物
汽车 → 跟随 → 前车
行人 → 位于 → 道路旁
交通灯 → 控制 → 车辆
多个关系组合后形成场景结构:
O1+R1+O2+R2+O3→SceneStructureO_1+R_1+O_2+R_2+O_3 \rightarrow SceneStructure
因此:
Scene=Object+RelationScene = Object+Relation
但完整场景还必须包括对象属性、状态、条件和时间空间:
Scene=Object+Attribute+State+Relation+Condition+Time+SpaceScene= Object+ Attribute+ State+ Relation+ Condition+ Time+ Space
72.7 场景条件
**场景条件(Scene Condition)**是决定某一场景是否成立,以及该场景如何变化的环境和逻辑条件。
场景条件包括:
时间条件
空间条件
环境条件
对象条件
状态条件
关系条件
规则条件
事件条件
可以表示为:
Condition={Time,Space,Environment,ObjectState,RelationState,Rule}Condition= \{ Time, Space, Environment, ObjectState, RelationState, Rule \}
场景成立可以表示为:
SceneValid=f(Object,Attribute,State,Relation,Condition)SceneValid= f(Object,Attribute,State,Relation,Condition)
当条件满足时:
Condition=1→SceneValid=1Condition=1 \rightarrow SceneValid=1
当条件不满足时:
Condition=0→SceneValid=0Condition=0 \rightarrow SceneValid=0
例如:
对象:汽车
对象:道路
对象:障碍物
条件:
汽车正在行驶
+
障碍物位于行驶路径
+
距离小于安全距离
经过计算后可以形成:
DangerousDrivingScene=1DangerousDrivingScene=1
场景条件因此成为场景判断和后续风险判断的重要基础。
72.8 动态场景
现实世界不是静态结构,而是持续变化的。
因此,ICAI必须建立动态场景(Dynamic Scene)。
动态场景是指场景中的对象、属性、状态、关系、条件或事件随时间发生变化的场景。
静态场景可以表示为:
ScenetScene_t
动态场景则表示为:
Scenet→Scenet+1Scene_t \rightarrow Scene_{t+1}
场景变化可能来自:
对象增加
对象消失
属性变化
状态变化
关系建立
关系消失
关系变化
环境变化
事件发生
条件变化
因此:
ΔScene=Scenet+1−Scenet\Delta Scene = Scene_{t+1}-Scene_t
动态场景的完整变化模型可以表示为:
Scenet→EventtScenet+1Scene_t \xrightarrow{Event_t} Scene_{t+1}
例如交通场景:
正常道路场景
↓
车辆进入
↓
车辆数量增加
↓
交通流量增加
↓
道路拥堵
↓
车辆速度下降
↓
交通状态改变
其本质为:
Scenet+Event→Scenet+1Scene_t + Event \rightarrow Scene_{t+1}
72.9 动态场景中的对象变化
场景对象可以发生增加、删除、移动和状态变化。
对象增加:
Scenet+O→Scenet+1Scene_t+O \rightarrow Scene_{t+1}
对象消失:
Scenet−O→Scenet+1Scene_t-O \rightarrow Scene_{t+1}
对象移动:
Positiont→Positiont+1Position_t \rightarrow Position_{t+1}
对象状态变化:
Statet→Statet+1State_t \rightarrow State_{t+1}
因此动态场景必须保存场景历史:
SceneHistory={Scene1,Scene2,…,Scenen}SceneHistory= \{ Scene_1, Scene_2, \ldots, Scene_n \}
这使机器个体能够计算场景变化过程,而不仅仅知道当前场景。
72.10 动态场景中的关系变化
场景关系同样具有动态性。
例如:
A→BA\rightarrow B
原来不存在关系:
Rt=∅R_t=\varnothing
事件发生后:
Rt→EventRt+1R_t\xrightarrow{Event}R_{t+1}
形成新的关系:
Rt+1=(A,Follow,B)R_{t+1}=(A,Follow,B)
关系也可以解除:
Rt→∅R_t\rightarrow\varnothing
或者关系状态发生变化:
Rt→Rt+1R_t\rightarrow R_{t+1}
因此:
RelationChange→SceneChangeRelationChange \rightarrow SceneChange
进一步:
SceneChange→StateChange→GoalChange→DecisionChange→BehaviorChangeSceneChange \rightarrow StateChange \rightarrow GoalChange \rightarrow DecisionChange \rightarrow BehaviorChange
这说明场景不是认知系统中的最终结果,而是连接现实变化与机器行为的重要中间结构。
72.11 场景认知计算
场景认知不是简单的数据读取,而是结构化计算过程。
基本过程为:
Object→Attribute→State→Relation→Condition→SceneObject \rightarrow Attribute \rightarrow State \rightarrow Relation \rightarrow Condition \rightarrow Scene
完整过程:
获取对象
↓
读取对象属性
↓
读取对象状态
↓
寻找相关对象
↓
计算对象关系
↓
获取环境条件
↓
获取时间与空间
↓
识别场景事件
↓
组合场景对象
↓
组合场景属性
↓
组合场景状态
↓
组合场景关系
↓
判断场景条件
↓
形成场景
↓
计算场景状态
↓
记录场景历史
↓
形成场景认知结果
场景认知结果可以表示为:
CRScene={Scene,State,Condition,Event,Conclusion,Time}CR_{Scene}= \{ Scene, State, Condition, Event, Conclusion, Time \}
其中:
- SceneScene:形成的场景;
- StateState:场景当前状态;
- ConditionCondition:场景成立条件;
- EventEvent:导致场景形成或变化的事件;
- ConclusionConclusion:场景计算结果;
- TimeTime:计算时间。
72.12 场景认知与知识
场景认知产生的是当前计算结果,而知识是可以长期保存和再次使用的结构化信息。
因此:
SceneCognition≠KnowledgeSceneCognition\neq Knowledge
但是:
SceneCognition→KnowledgeMatchSceneCognition \rightarrow KnowledgeMatch
例如机器个体当前计算出:
汽车
+
道路
+
前方障碍物
+
高速
+
安全距离不足
形成:
Scene=DangerousDrivingSceneScene=DangerousDrivingScene
然后在知识结构中寻找:
危险驾驶场景
↓
风险规则
↓
处理方法
因此:
Scene+Knowledge→CognitiveConclusionScene + Knowledge \rightarrow CognitiveConclusion
进一步:
CognitiveConclusion→Need→Goal→Capability→Method→DecisionCognitiveConclusion \rightarrow Need \rightarrow Goal \rightarrow Capability \rightarrow Method \rightarrow Decision
72.13 场景认知与目标
场景是需求和目标形成的重要基础。
机器个体首先需要知道“现在是什么场景”,然后才能判断“现在需要做什么”。
因此:
Scene→Need→GoalScene \rightarrow Need \rightarrow Goal
例如:
交通拥堵场景→减少等待需求→寻找替代路线目标交通拥堵场景 \rightarrow 减少等待需求 \rightarrow 寻找替代路线目标
又如:
设备故障场景→恢复设备运行需求→设备维修目标设备故障场景 \rightarrow 恢复设备运行需求 \rightarrow 设备维修目标
因此:
Scene\rightarrowGoalScene\rightarrowGoal
是ICAI目标形成的重要路径。
72.14 场景认知与风险
风险判断也依赖场景。
Risk=f(Scene,State,Knowledge,Rule)Risk=f(Scene,State,Knowledge,Rule)
例如:
恶劣天气场景+高速运行状态+低能见度→高风险恶劣天气场景 + 高速运行状态 + 低能见度 \rightarrow 高风险
因此:
Scene→Risk→ProtectionScene \rightarrow Risk \rightarrow Protection
如果场景中存在冲突:
Scene→Conflict→ConflictHandlingScene \rightarrow Conflict \rightarrow ConflictHandling
如果场景中存在异常:
Scene→Anomaly→DiagnosisScene \rightarrow Anomaly \rightarrow Diagnosis
所以场景是自我维护机制的重要输入。
72.15 场景认知工程模型
场景认知在工程中对应独立的领域对象。
CognitiveScene
│
├── id
├── objects
├── attributes
├── states
├── relations
├── conditions
├── events
├── time
├── space
├── state
└── history
其中:
objects:场景对象;attributes:场景属性;states:对象及场景状态;relations:对象关系;conditions:场景条件;events:场景事件;time:时间;space:空间;state:场景整体状态;history:场景历史。
场景引擎:
SceneEngine
├── collectObjects()
├── collectAttributes()
├── collectStates()
├── calculateRelations()
├── calculateCondition()
├── detectEvent()
├── buildScene()
├── calculateState()
├── compareScene()
├── updateScene()
└── saveHistory()
其核心逻辑为:
SceneEngine=ObjectEngine+AttributeEngine+StateEngine+RelationEngine+ConditionEngine+EventEngineSceneEngine= ObjectEngine+ AttributeEngine+ StateEngine+ RelationEngine+ ConditionEngine+ EventEngine
72.16 PHP OOP模型
根据ICAI工程原则,理论中的“场景”必须对应实际的领域对象和程序类。
class CognitiveScene
{
protected $id;
protected $objects;
protected $attributes;
protected $states;
protected $relations;
protected $conditions;
protected $events;
protected $time;
protected $space;
protected $state;
protected $history;
public function addObject($object)
{
$this->objects[] = $object;
}
public function addAttribute($attribute)
{
$this->attributes[] = $attribute;
}
public function addState($state)
{
$this->states[] = $state;
}
public function addRelation($relation)
{
$this->relations[] = $relation;
}
public function addCondition($condition)
{
$this->conditions[] = $condition;
}
public function addEvent($event)
{
$this->events[] = $event;
}
public function getObjects()
{
return $this->objects;
}
public function getState()
{
return $this->state;
}
}
场景引擎:
class SceneEngine
{
public function build($objects, $states, $relations, $conditions)
{
$scene = new CognitiveScene();
foreach ($objects as $object) {
$scene->addObject($object);
}
foreach ($states as $state) {
$scene->addState($state);
}
foreach ($relations as $relation) {
$scene->addRelation($relation);
}
foreach ($conditions as $condition) {
$scene->addCondition($condition);
}
return $scene;
}
}
这说明:
场景理论→CognitiveScene场景理论 \rightarrow CognitiveScene 场景计算→SceneEngine场景计算 \rightarrow SceneEngine
理论概念必须能够落实为程序中的对象和计算方法。
72.17 场景数据库模型
场景数据需要能够长期保存,因此可以建立:
cognitive_scenes
cognitive_scene_objects
cognitive_scene_attributes
cognitive_scene_states
cognitive_scene_relations
cognitive_scene_conditions
cognitive_scene_events
cognitive_scene_history
例如:
cognitive_scenes
├── id
├── scene_type
├── scene_state
├── condition
├── time
├── space
└── created_at
对象关联表:
cognitive_scene_objects
├── id
├── scene_id
├── object_id
├── role
└── state
场景历史:
cognitive_scene_history
├── id
├── scene_id
├── old_state
├── new_state
├── event
├── change_data
└── created_at
由此形成:
Scene→Repository→MySQLScene \rightarrow Repository \rightarrow MySQL
场景不仅能够实时计算,还能够被保存、读取、比较和追踪。
72.18 场景认知Runtime
场景认知Runtime负责把前面的对象、属性、状态和关系计算结果组合成为当前运行场景。
完整运行过程:
机器个体启动
↓
读取环境
↓
获取对象
↓
读取对象属性
↓
读取对象状态
↓
读取对象关系
↓
读取场景条件
↓
读取时间与空间
↓
识别事件
↓
组合场景
↓
计算场景状态
↓
保存当前场景
↓
比较历史场景
↓
计算场景变化
↓
形成场景认知结果
↓
知识匹配
↓
需求判断
↓
目标形成
动态运行:
Scenet→SceneCognitiont→Decisiont→Actiont→Resultt→Scenet+1Scene_t \rightarrow SceneCognition_t \rightarrow Decision_t \rightarrow Action_t \rightarrow Result_t \rightarrow Scene_{t+1}
因此,机器个体实际上是在不断变化的场景中持续运行。
72.19 场景认知统一模型
通过前面第68章对象认知、第69章属性认知、第70章状态认知、第71章关系认知,本章进一步建立场景认知。
统一结构为:
Object→Attribute→State→Relation→Condition→SceneObject \rightarrow Attribute \rightarrow State \rightarrow Relation \rightarrow Condition \rightarrow Scene
进一步:
Scene→Knowledge→Need→Goal→Capability→Method→Decision→BehaviorScene \rightarrow Knowledge \rightarrow Need \rightarrow Goal \rightarrow Capability \rightarrow Method \rightarrow Decision \rightarrow Behavior
行为完成后:
Behavior→Result→Feedback→Memory→Experience→LearningBehavior \rightarrow Result \rightarrow Feedback \rightarrow Memory \rightarrow Experience \rightarrow Learning
同时维护机制持续运行:
Scene→Risk→ProtectionScene \rightarrow Risk \rightarrow Protection Scene→Conflict→ConflictHandlingScene \rightarrow Conflict \rightarrow ConflictHandling Scene→Anomaly→Diagnosis→RepairScene \rightarrow Anomaly \rightarrow Diagnosis \rightarrow Repair
最终形成:
对象
↓
属性
↓
状态
↓
关系
↓
条件
↓
场景
↓
知识
↓
需求
↓
目标
↓
能力
↓
匹配
↓
方法
↓
风险
↓
冲突
↓
决策
↓
行为
↓
结果
↓
反馈
↓
记忆
↓
经验
↓
学习
↓
更新
↓
新场景
因此,场景认知是ICAI从“认识对象”进入“认识现实整体结构”的关键环节。
72.20 本章总结
本章建立了ICAI通用核心理论中的场景认知理论(Scene Cognition Theory)。
场景定义为:
Scene={Object,Attribute,State,Relation,Condition,Event,Time,Space}Scene= \{ Object, Attribute, State, Relation, Condition, Event, Time, Space \}
场景认知的基本过程为:
Object→Attribute→State→Relation→Condition→SceneObject \rightarrow Attribute \rightarrow State \rightarrow Relation \rightarrow Condition \rightarrow Scene
静态场景表示某一时刻的结构:
ScenetScene_t
动态场景表示场景随时间发生变化:
Scenet→Scenet+1Scene_t \rightarrow Scene_{t+1}
场景变化来自对象、属性、状态、关系、条件和事件的变化:
ΔScene=f(ΔObject,ΔAttribute,ΔState,ΔRelation,ΔCondition,ΔEvent)\Delta Scene = f( \Delta Object, \Delta Attribute, \Delta State, \Delta Relation, \Delta Condition, \Delta Event )
场景认知进一步连接知识、需求、目标、能力、方法、决策和行为:
Scene→Knowledge→Need→Goal→Capability→Method→Decision→BehaviorScene \rightarrow Knowledge \rightarrow Need \rightarrow Goal \rightarrow Capability \rightarrow Method \rightarrow Decision \rightarrow Behavior
同时连接风险、冲突、异常和自我维护:
Scene→Risk/Conflict/Anomaly→Protection/Handling/Diagnosis→RepairScene \rightarrow Risk/Conflict/Anomaly \rightarrow Protection/Handling/Diagnosis \rightarrow Repair
因此,在ICAI通用核心理论中:
对象→属性→状态→关系→场景\boxed{ 对象 \rightarrow 属性 \rightarrow 状态 \rightarrow 关系 \rightarrow 场景 }
构成机器个体认识现实结构的基础认知链。
进一步可以得到:
场景→知识→需求→目标→能力→方法→决策→行为\boxed{ 场景 \rightarrow 知识 \rightarrow 需求 \rightarrow 目标 \rightarrow 能力 \rightarrow 方法 \rightarrow 决策 \rightarrow 行为 }
场景认知由此成为ICAI从结构认知进入目标认知和行为计算的关键桥梁。