第57章 认知类工程实现
前一章完成了认知对象的工程化:
Object
Attribute
State
Relation
Matching
这些结构解决的是:
系统如何表示一个正在被认识的对象,以及对象的属性、状态、关系和匹配结果。
但当认知系统中的对象越来越多时,又会出现一个新的问题:
如果每一个对象都单独定义,系统如何形成共性?如何复用已有认知结构?又如何保存不同个体之间的差异?
例如,系统可能同时认识:
鸡蛋
玻璃杯
水杯
婴儿
老人
机器人
人
这些对象显然不是完全相同的。
但是它们又存在大量共性:
都有状态
都有属性
都有变化
都有关系
都可能被保护
都可能参与行为
因此,单纯的 Object 已经不足以组织整个认知系统。
需要进一步建立:
Object
↓
Class
↓
Group Class
↓
Individual Class
并通过:
Inheritance
Composition
建立认知结构之间的组织关系。
本章解决的核心问题就是:
如何把分散的认知对象组织成可复用、可继承、可组合的 Cognitive Class,并同时保留群体共性与个体差异。
57.1 为什么需要 Cognitive Class
如果系统只有 Object:
egg_001
egg_002
egg_003
egg_004
那么系统必须分别保存每一个对象的结构。
这会造成大量重复。
例如:
egg_001
size
weight
fragility
egg_002
size
weight
fragility
egg_003
size
weight
fragility
三个对象虽然是不同实例,但它们具有大量相同结构。
因此系统需要抽象:
Egg Class
然后:
Egg Class
↓
egg_001
egg_002
egg_003
于是:
Class
描述共性。
而:
Object
描述具体实例。
57.2 Class 与 Object 的关系
最基本的关系可以表示为:
Class
↓
Object Instance
例如:
Egg Class
│
├── egg_001
├── egg_002
└── egg_003
这里:
Egg Class
不是一个具体鸡蛋。
它描述的是:
系统对“鸡蛋这一类对象”的共同认知结构。
而:
egg_001
才是具体对象。
因此:
Class ≠ Object
Class 是:
对象结构的抽象描述。
Object 是:
Class 在具体环境中的实例。
57.3 Cognitive Class
在本书中,Class 不能简单理解成传统编程语言中的代码模板。
这里需要给出更严格的定义:
Cognitive Class 是对某一类认知对象、属性、状态、关系、匹配规则、个体差异及其工程方法进行统一描述的认知结构。
因此 Cognitive Class 不只是:
属性集合
还可以包含:
Object
Attribute
State
Relation
Matching
Method
形成:
Cognitive Class
│
├── Object Definition
├── Attribute Definition
├── State Definition
├── Relation Definition
├── Matching Definition
└── Method Definition
这意味着:
Class 不仅描述“对象是什么”,还描述系统应该如何认识这一类对象。
这是 Cognitive Class 与普通数据模型的重要区别。
57.4 Class 的第一层:结构
最基础的 Cognitive Class 可以定义:
Egg
│
├── size
├── weight
├── hardness
├── fragility
├── state
└── relations
这里描述:
这一类对象通常具有什么认知结构。
例如:
Egg
可能具有:
size
weight
hardness
fragility
surface
state
但这并不意味着每一个实例当前值都相同。
57.5 Class 的第二层:状态
Class 还可以描述:
这一类对象可能出现哪些状态。
例如:
Egg
│
├── intact
├── cracked
├── broken
└── damaged
于是:
Egg Class
定义可能状态。
而:
egg_001
当前可能是:
state = intact
而:
egg_002
可能是:
state = cracked
因此:
Class
↓
State Definition
↓
Object State
57.6 Class 的第三层:关系
Class 还需要描述对象可能产生的关系。
例如:
Egg
可能与:
Hand
Container
Table
Ground
产生关系:
held_by
inside
on
near
touching
因此:
Egg Class
↓
Relation Definitions
而具体对象:
egg_001
在当前场景中可能:
egg_001
↓
held_by
↓
hand_001
这就是:
Class Relation
与:
Object Relation
的区别。
57.7 Group Class
当系统拥有大量对象时,仅仅建立单个 Class 还不够。
因为:
Egg
Glass
Bottle
Cup
Plate
虽然不同,但可能存在共同认知特征:
都有形状
都有重量
都有承受能力
都可能受到外力
都可能损伤
因此可以进一步建立:
Object Group Class
例如:
Fragile Object
然后:
Fragile Object
│
┌────┼────┐
↓ ↓ ↓
Egg Glass Ceramic
这就是:
Group Class 描述一组对象之间共享的认知共性。
57.8 Group Class 与普通分类的区别
普通分类可能只是:
动物
植物
工具
食品
但 Cognitive Group Class 更关注:
这些对象在认知过程中共享什么结构。
例如:
Fragile Object
不是因为这些对象名称相似。
而是因为它们共享:
fragility
damage risk
safe handling
force sensitivity
因此:
Group Class
本质上是一种:
认知共性结构。
57.9 Group Class 可以跨越传统类别
例如:
Egg
Glass
Baby
Elderly Person
从传统对象分类角度,它们完全不同。
但是从:
Object Protection
角度,它们可能属于同一个 Cognitive Group Class:
Protected Object
它们共享:
low damage tolerance
risk sensitivity
protective action
这说明 Cognitive Group Class 不一定等于传统的物种、产品或实体分类。
它可以按照:
属性
状态
行为
风险
目标
功能
形成新的认知群体。
57.10 Individual Class
Group Class 解决:
这一类对象有什么共同认知特征?
但是它仍然无法解决:
某一个具体个体与其他个体有什么不同?
例如:
Person A
Person B
两个人可能:
感觉相同
对象相同
属性相同
当前状态相同
但是:
经验不同
记忆不同
先验不同
偏差不同
目标不同
因此必须建立:
Individual Class
57.11 Individual Class 的定义
本书中的:
Cognitive Individual Class
描述的是:
个人经验
个人记忆
个人先验
个人偏差
个人目标
个人权重
个人认知状态
因此可以表示:
Individual Class
│
├── Experience
├── Memory
├── Prior
├── Bias
├── Goal
├── Weight
└── Cognitive State
这意味着:
Individual Class 是个体认知差异的工程容器。
57.12 Group Class 与 Individual Class 的关系
现在可以形成:
Cognitive Class
│
┌─────┴─────┐
↓ ↓
Group Individual
Class Class
Group Class:
描述群体共性
Individual Class:
描述个体差异
例如:
Human Group Class
可以定义:
vision
hearing
movement
memory
goal
而:
Individual Human A
可以拥有:
experience_A
memory_A
prior_A
bias_A
goal_A
于是:
Human Group Class
+
Individual Class
↓
Individual Cognitive Model
57.13 为什么 Individual Class 不能只是 Object
这是本书必须特别区分的一点。
Object
回答:
系统当前看到的是什么对象?
而:
Individual Class
回答:
这个个体如何认识世界?
例如:
Person_A
作为 Object,可以具有:
age
position
height
state
但是:
Individual Class
还可以具有:
experience
memory
prior
bias
goal
weight
因此:
Object
描述个体作为一个被认知对象的结构。
而:
Individual Class
描述个体作为一个认知主体的结构。
这是两个不同层次。
57.14 Inheritance:认知结构继承
当多个 Cognitive Class 存在共性时,可以使用:
Inheritance
例如:
Object
↓
Physical Object
↓
Fragile Object
↓
Egg
于是:
Egg
可以继承:
Fragile Object
的:
fragility
damage risk
protective handling
同时增加自己的:
shell
shape
weight
因此:
Parent Class
↓
Inheritance
↓
Child Class
57.15 Inheritance 的意义
继承不是为了减少代码重复这么简单。
在 Cognitive Engineering 中,继承的主要作用是:
让认知系统能够复用已有认知共性。
例如:
Fragile Object
已经定义:
fragility
damage
safe_force
那么:
Egg
Glass
Ceramic
都可以继承这些认知结构。
于是:
Fragile Object
│
┌─────┼─────┐
↓ ↓ ↓
Egg Glass Ceramic
系统无需重新定义:
fragility
damage risk
protective behavior
57.16 Inheritance 不等于认知完全相同
继承的是:
共性
不是:
全部属性值
例如:
Fragile Object
定义:
fragility
但:
Egg
与:
Glass
的具体:
fragility value
damage threshold
deformation behavior
可以不同。
所以:
Inheritance
=
共享结构
而不是:
Inheritance
=
完全相同
57.17 多层认知继承
可以形成更复杂的结构:
Object
↓
Physical Object
↓
Sensitive Object
↓
Fragile Object
↓
Egg
或者:
Object
↓
Living Object
↓
Human
↓
Adult
↓
Individual
这样就可以形成认知知识层级。
最终:
高层 Class
↓
共性
↓
中层 Class
↓
特殊性
↓
低层 Class
↓
具体对象
这为后面的认知知识系统提供了结构基础。
57.18 Composition:认知结构组合
如果 Inheritance 解决:
“这个对象属于哪一种认知共性?”
那么 Composition 解决:
“这个对象由哪些认知结构共同组成?”
例如一个:
Robot Hand
可以由:
Sensor
Finger
Force Module
Motion Module
Control Module
组成。
因此:
Robot Hand
│
├── Vision Sensor
├── Force Sensor
├── Finger
├── Motion System
└── Control System
这就是 Composition。
57.19 Composition 与 Object
认知对象也可以由多个对象组成。
例如:
Hand
可以由:
Palm
Finger_1
Finger_2
Finger_3
Finger_4
Finger_5
组成。
因此:
Hand
↓
Composition
↓
Multiple Objects
这些子对象仍然保持自己的:
Attribute
State
Relation
但整体形成一个新的:
Object
57.20 Composition 与认知结构
Composition 不仅可以组合 Object。
还可以组合:
Attribute
State
Relation
Method
例如:
Protective Object Class
可以组合:
Fragility Attribute
+
Damage State
+
Force Relation
+
Protection Method
形成:
Protective Cognitive Class
因此:
Composition
提供了一种:
把多个认知结构组合成更高层认知结构的方法。
57.21 Inheritance + Composition
真正强大的 Cognitive Class 通常不是只使用其中一种。
而是:
Inheritance
+
Composition
共同构建。
例如:
Fragile Object
↓
Egg
│
├── Shell
├── Internal Structure
├── Surface
└── Damage Model
这里:
Inheritance
提供:
Fragility
Damage Risk
Protection Requirement
而:
Composition
提供:
Shell
Surface
Internal Structure
于是:
Egg Class
=
Inherited Cognitive Structure
+
Composed Cognitive Structure
57.22 Class、Inheritance、Composition 的区别
可以明确形成:
| 结构 | 解决的问题 |
|---|---|
| Class | 这一类对象具有什么认知结构? |
| Group Class | 哪些对象共享认知共性? |
| Individual Class | 某个个体具有什么认知差异? |
| Inheritance | 哪些认知结构可以继承? |
| Composition | 哪些认知结构需要组合? |
因此:
Class
是基础。
Group Class
建立群体共性。
Individual Class
建立个体差异。
Inheritance
建立纵向结构。
Composition
建立横向组合。
57.23 五种结构形成认知组织体系
最终形成:
Cognitive Class
│
┌────────────┴────────────┐
↓ ↓
Group Class Individual Class
│ │
└──────────┬──────────────┘
↓
Cognitive Model
│
┌─────────┴─────────┐
↓ ↓
Inheritance Composition
│ │
└─────────┬─────────┘
↓
Cognitive Structure
这就形成了一个完整的认知类组织模型。
57.24 Cognitive Class 与 Matching
Class 不只是静态知识。
它还可以参与认知匹配。
例如:
Current Object
=
egg_001
系统知道:
egg_001
↓
Egg Class
↓
Fragile Object Group Class
那么当前状态:
pressure ↑
slip ↑
deformation ↑
可以与:
Fragile Object
的认知规则进行匹配。
形成:
Current State
↓
Class Matching
↓
Risk Recognition
因此:
Class 是认知匹配的重要知识来源。
57.25 Individual Class 与 Matching
进一步,如果系统认识的是:
Individual A
那么匹配不能只使用 Group Class。
还需要:
Individual Experience
Individual Memory
Individual Prior
Individual Bias
Individual Goal
因此:
Current State
↓
Group Class
+
Individual Class
↓
Individual Matching
↓
Individual Cognition
这正好连接第27章至第33章的个体认知理论。
57.26 Individual Class 与个体权重
不同个体可以拥有不同的权重。
例如:
Individual A
可能:
Safety Weight = HIGH
Speed Weight = LOW
而:
Individual B
可能:
Safety Weight = LOW
Speed Weight = HIGH
面对相同对象:
Object
+
Attribute
+
State
两个个体可能产生:
Different Matching Weight
最终:
Different Probability
以及:
Different Cognition
所以:
Individual Class 是个体认知差异进入工程系统的重要接口。
57.27 Cognitive Class 的工程结构
到这里,可以给出一个更完整的结构:
CognitiveClass
│
├── identity
├── type
├── parent
├── attributes
├── states
├── relations
├── matching_rules
├── methods
├── group_context
├── individual_context
├── inheritance
└── composition
这已经不再只是普通的:
Class
而是:
Cognitive Class
57.28 Class 与 Method 的连接
第55章定义:
Method 是认知任务在工程系统中的具体实现过程。
因此:
Cognitive Class
需要能够拥有:
Cognitive Method
例如:
Egg Class
│
├── detect()
├── identify()
├── evaluateState()
├── calculateRisk()
├── match()
└── protect()
这些 Method 不只是普通函数。
它们对应的是:
认知任务
例如:
evaluateState()
对应:
判断对象当前状态。
calculateRisk()
对应:
判断对象当前受损风险。
match()
对应:
将当前状态与已有认知结构进行匹配。
因此:
Class
↓
Method
开始真正形成认知工程结构。
57.29 从 Class 到实例
完整过程可以表示为:
Cognitive Class
↓
Group Class
↓
Individual Class
↓
Object Instance
↓
Current State
↓
Matching
↓
Cognition
例如:
Fragile Object
↓
Egg Class
↓
egg_001
↓
pressure ↑
slip ↑
deformation ↑
↓
Matching
↓
High Damage Risk
这样理论中的:
对象
属性
状态
动态变化
匹配
个体
就全部进入同一个工程体系。
57.30 Class 的核心不是代码,而是认知组织
需要特别强调:
Cognitive Class 首先是认知理论中的结构,然后才是程序代码中的 Class。
也就是说:
理论 Class
↓
结构定义
↓
数据模型
↓
程序 Class
不能反过来:
先写 PHP Class
↓
再强行解释成认知理论
本书的方向应该始终保持:
认知理论
↓
认知模型
↓
认知结构
↓
工程结构
↓
代码 Class
这也是“理论工程”与普通软件开发最大的区别之一。
57.31 本章核心模型
本章最终建立:
Cognitive Class
│
┌─────────────┴─────────────┐
↓ ↓
Group Class Individual Class
│ │
共性认知 个体认知
│ │
└─────────────┬─────────────┘
↓
Cognitive Structure
│
┌────────────┴────────────┐
↓ ↓
Inheritance Composition
│ │
└────────────┬────────────┘
↓
Object Instance
↓
Attribute / State / Relation
↓
Matching
↓
Cognition
57.32 本章与前后章节的连接
到第57章为止,全书已经形成了一个明显的结构链。
前面:
感觉
↓
感知
↓
元素
↓
对象
↓
属性
↓
状态
↓
关系
↓
动态变化
↓
认知匹配
↓
概率
↓
个体认知
↓
行为
现在进一步:
认知对象
↓
Cognitive Class
↓
Group Class
↓
Individual Class
↓
Inheritance
↓
Composition
下一步则需要解决:
Cognitive Class
↓
Cognitive Method
↓
Data Structure
↓
Algorithm
↓
Module
↓
Engine
也就是说,第57章完成的是:
认知结构的组织工程。
而接下来的第58章开始真正进入:
理论如何转化为数据结构。
57.33 本章结论
第57章最重要的结论不是“Class 有继承和组合”。
真正重要的是:
人的认知不是由大量孤立对象组成的,而是由对象共性、个体差异、结构继承和认知组合共同形成的层级化认知系统。
因此:
Class
负责定义认知结构。
Group Class
负责定义群体共性。
Individual Class
负责保存个体差异。
Inheritance
负责传播认知共性。
Composition
负责组合复杂认知结构。
最终形成:
Group Knowledge
+
Individual Knowledge
+
Object Knowledge
+
Method
↓
Cognitive Model
↓
Matching
↓
Cognition
由此,Cognitive Class 不再只是软件编程意义上的“类”,而成为连接“认知理论”与“认知工程”的核心结构。
下一章进入第十四篇 理论工程:
第58章 从理论到数据结构
核心问题将进一步变成:
前面定义的 Object、Attribute、State、Relation、Matching、Cognitive Class,到底应该如何转换成计算机能够直接存储、读取、更新和计算的数据结构?
这一步将正式建立:
理论概念
↓
形式化定义
↓
数据结构
↓
数据实例
↓
状态更新
↓
认知计算
也就是从**“认知理论是什么”真正进入“认知理论如何成为机器内部的数据”**。