2.2 归类公理
根据常识可知,一个合理的类表示应该与人类认知保持一致。而在人类的认知系统中,归哪类,像哪类;像哪类,归哪类。这意味着:一个对象x指派到类A而非其他类的条件是x和A的认知表示相似性最大。任意类A至少有一个对象,该对象与类A有最大的类相似性。类的认知表示应该和它的划分表示具有相同的归类能力。基于上述的观察,自然得到如下三个归类公理:
(1)样本可分性公理(Sample Separation Axiom, SS):一个对象总有唯一一个类与其最相似。
(2)类可分性公理(Categorization Separation Axiom, CS):一个类至少有一个对象与其最相似。
(3)归类等价公理(Categorization Equivalency Axiom, CE):对于任意一个类,其认知表示与外延表示的归类能力等价。
更准确地说,如果一个归类结果表示为,则两个可分性公理和归类等价性公理可表示为如下的数学形式:
(1)样本可分性公理:
(2)类可分性公理:
(3)归类等价公理:
当归类结果表示为时,归类公理同样表示如下:
(1)样本可分性公理:
(2)类可分性公理:
(3)归类等价公理:
如果一个归类结果满足归类公理,其必然满足定理2.1所述的性质。
定理2.1 如果一个归类结果满足类可分性公理,则有:
1.;
2.存在至少c个对象yki使∀i∀j((i≠j)→(yki≠ykj))成立。
证明 对一个归类结果,存在i≠j使成立。根据类可分性公理,对子集Yi,存在对象yki使成立。然而,意味着,存在矛盾。因此,第一个结论得证。
类似地,如果归类结果满足类可分性公理,对Yi存在对象yki使得=i,则必然有成立。如果存在i≠j使yki=ykj成立,则且。由于yki=ykj,意味着和,存在矛盾。因此第二个结论得证。
需要指出的是,样本可分性公理要求并不高,为了清楚的说明这一点,可以证明如下定理。
定理2.2 如果,则样本可分性公理成立。
证明 留作习题。
实际上,归类公理也可以导出对于隶属度函数的约束条件,见定理2.3。
定理2.3 如果归类结果满足归类公理,则有
1.
2.
证明 留作习题。
容易知道,上述分析和结果对于归类输入也是成立的。换句话来说,也应该满足SS、CS和CE公理。为了简洁起见,我们将不复述类似的结果。更有意思的是,归类等价公理和类表示唯一公理具有一定的联系,可以证明定理2.4。
定理2.4 如果归类输入与其对应的归类输出满足归类等价公理,那么等价于。
注意到,特性输入xk与其对应的特性输出yk都表示对象ok。更一般地,设特性输入x与其对应的特性输出y都表示同一对象o,则可以假设存在从x~y的一个映射θ,使得y=θ(x)。如果,则有。因此,可以被定义。如果可以被定义,则必然保证。基于定理2.4和上面的分析,是类表示唯一公理的最本质的要求。特别当c=1,容易知道与自然成立,是类表示唯一公理唯一有意义的约束。更进一步,归类公理与类表示唯一公理给出了类相似性映射应该满足的条件,指出输入类相似性映射与输出类相似性映射应在归类意义下等价,这就是所谓的相似性假设。对于归类来说,设计一个满足类表示唯一公理的输出类相似性映射极具挑战性。通常在实际应用中,输入类相似性映射不可能在归类意义下与输出类相似性映射等价,这就是所谓的相似性悖论。当相似性悖论成真时,归类就存在错误。前面的分析告诉我们,解决相似性悖论的关键是使得成立。但经常是。因此,如何解决相似性悖论就变成了归类问题的一个永恒难题。
总而言之,类表示公理和归类公理建立了归类输入和归类输出之间的逻辑关系,如图2.1所示。类表示唯一公理建立了归类输入与归类输出之间的等价关系。归类公理显示了归类输入和归类输出中内部表示和外部表示之间的联系。图2.1中,如果内蕴表示已知,样本可分性公理通过实例化建立了对象输入特性与输入类认知表示之间的关系。说得更明白一些,类相似性映射SimX建立了输入类认知表示与对象输入特性表示的相似性关系,类相似性映射SimX通过样本可分性公理保证任一个对象输入特性表示可以被唯一地识别为某一个输入类,清晰展示了概念的实例化过程。如果外部表示(X,U)已知,对象集X中的每个对象输入特性表示通过划分矩阵U可以指派到所属输入类,U表示了对象输入表示如何概念化的过程。归类等价公理保证了概念化和实例化的一致性。
图2.1 归类输入与其对应的归类输出关系图
如果由输出类的认知表示理论上可以生成外部输出表示Y,则该输出类的认知表示为生成式,由该认知表示导出的归类模型是生成式模型;如果Y可以得到类的认知表示但由理论上不能生成外部输出表示Y,则该输出类的认知表示为判别式,由该认知表示导出的归类模型是判别式模型。
如果学习算法可以将输出给算法使用者,则算法是白箱的。
如果学习算法不能将输出给算法使用者而只能输出(Y,V),则算法是黑箱的。
更加简单的说法是,如果学习算法可以输出类认知表示,则是白箱算法;如果学习算法不能输出类认知表示,则是黑箱算法。