1、模型识别的问题提出
模型识别,通俗地理解即是对一个类别未知的对象进行归类(或者叫分类)。这里与聚类不同的是,聚类实际上是要区分出已有的样本哪些属于同一类,但并没有参考标准。而识别则事先有参考的标准,在此前提下对模型进行识别。
简单抽象描述这一问题即是,现有对象xxx,它有多种属性,此时有标准模型I,II,III,…I,II,III,…I,II,III,...,如何通过一系列的方法来判断对象 xxx 究竟属于哪一种类型。比如医生通过病人的症状进行诊断(判断其属于哪种疾病),农业中对作物进行分级等,都属于模型识别问题。
2、预备知识
- 模糊向量:所有元素均在 [0,1][0,1][0,1] 上取值的向量可称为模糊向量。如:
a=(a1,a2,…,an),0⩽ai⩽1(i=1,2,⋯,n)\boldsymbol{a}=(a_{1},a_{2},\dots,a_{n}),\quad 0\leqslant a_{i} \leqslant 1 \quad(i=1,2, \cdots, n) a=(a1,a2,…,an),0⩽ai⩽1(i=1,2,⋯,n)
模糊向量可以用于表示一个模糊集 AAA:
ai=A(xi)(i=1,2,⋯,n)a_{i}=A\left(x_{i}\right) \quad(i=1,2, \cdots, n) ai=A(xi)(i=1,2,⋯,n)
其中 A(xi)A\left(x_{i}\right)A(xi) 表示该模糊集的隶属度函数。
- 模糊向量的内积:
a∘b=⋁i=1n(ai∧bi)\boldsymbol{a} \circ \boldsymbol{b}=\bigvee _{i=1}^{n}\left(a_{i} \wedge b_{i}\right) a∘b=i=1⋁n(ai∧bi)
- 模糊向量的外积:
a⊙b=⋀i=1n(ai∨bi)\boldsymbol{a}\odot \boldsymbol{b}=\bigwedge_{i=1}^{n}\left(a_{i} \vee b_{i}\right) a⊙b=i=1⋀n(ai∨bi)
3、最大隶属度原则
- 最大隶属原则 I : 设论域 UUU 上有 mmm 个模糊 子集 A1,A2,⋯,AmA_{1}, A_{2}, \cdots,A_mA1,A2,⋯,Am (即mmm 个模型),构成一个标准模型库,若对任一 x0∈U,x_{0} \in U,x0∈U, 有 i0∈{1,2,⋯,m}i_{0} \in\{1,2, \cdots, m\}i0∈{1,2,⋯,m}, 使得
Ai0(x0)=⋁k=1mA1(x0)A_{i_{0}}\left(x_{0}\right)=\bigvee_{k=1}^{m} A_{1}\left(x_{0}\right) Ai0(x0)=k=1⋁mA1(x0)
则认为 x0x_0x0相对隶属于 Ai0A_{i_{0}}Ai0.
这里需要稍作解释。上述内容里面 A1,A2,⋯,AmA_{1}, A_{2}, \cdots,A_mA1,A2,⋯,Am 即是 mmm 个标准模型,而 x0x_0x0 是待识别的对象。上面公式的意思通俗的解释即是:它相对哪一个模型的隶属度最大,那么它就属于哪个模型。
- 例:考虑年轻、中年、老年的三类标准模型A1,A2,A3A_1,A_2,A_3A1,A2,A3分别定义如下:
A1(x)={10<x⩽201−2(x−2020)220<x⩽302(x−4020)230<x⩽40040<x⩽100A2(x)={00<x⩽202(x−2020)220<x⩽301−2(x−4020)230<x⩽40140<x⩽501−2(x−5020)250<x⩽602(x−7020)260<x⩽70070<x⩽100A3(x)={00<x⩽502(x−5020)250<x⩽601−2(x−7020)260<x⩽70170<x⩽100A_{1}(x)=\left\{\begin{matrix} 1 & 0<x \leqslant 20 \\ 1-2\left(\frac{x-20}{20}\right)^{2} & 20<x \leqslant 30 \\ 2\left(\frac{x-40}{20}\right)^{2} & 30<x \leqslant 40 \\ 0 & 40<x \leqslant 100 \end{matrix} \right. \\ A_{2}(x)=\left\{\begin{array}{cl} 0 & 0<x \leqslant 20 \\ 2\left(\frac{x-20}{20}\right)^{2} & 20<x \leqslant 30 \\ 1-2\left(\frac{x-40}{20}\right)^{2} & 30<x \leqslant 40 \\ 1 & 40<x \leqslant 50 \\ 1 – 2\left(\frac{x-50}{20}\right)^{2} & 50<x \leqslant 60 \\ 2\left(\frac{x-70}{20}\right)^{2} & 60<x \leqslant 70 \\ 0 & 70<x \leqslant 100 \end{array}\right. \\ A_{3}(x)=\left\{\begin{matrix} 0 & 0<x \leqslant 50 \\ 2\left(\frac{x-50}{20}\right)^{2} & 50<x \leqslant 60 \\ 1-2\left(\frac{x-70}{20}\right)^{2} & 60<x \leqslant 70 \\ 1 & 70<x \leqslant 100 \end{matrix}\right. A1(x)=⎩⎪⎪⎨⎪⎪⎧11−2(20x−20)22(20x−40)200<x⩽2020<x⩽3030<x⩽4040<x⩽100A2(x)=⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧02(20x−20)21−2(20x−40)211−2(20x−50)22(20x−70)200<x⩽2020<x⩽3030<x⩽4040<x⩽5050<x⩽6060<x⩽7070<x⩽100A3(x)=⎩⎪⎪⎨⎪⎪⎧02(20x−50)21−2(20x−70)210<x⩽5050<x⩽6060<x⩽7070<x⩽100
那么考虑x=40x=40x=40:A1(40)=0,A2(40)=1,A3(40)=0A_{1}(40)=0, A_{2}(40)=1, A_{3}(40)=0A1(40)=0,A2(40)=1,A3(40)=0,此时应属于中年人
再考虑x=35x=35x=35: A1(35)=0.125,A2(35)=0.875,A3(35)=0A_{1}(35)=0.125, A_{2}(35)=0.875, A_{3}(35)=0A1(35)=0.125,A2(35)=0.875,A3(35)=0,按照这一标准,35岁也应该算作中年人。
4、小结
由上述描述可见,模糊模型识别的操作过程实际上是比较简单的。但这里也很容易看出一个问题,在上例中我们是直接给出了隶属度函数,然而这种做法显然并不是最好的。因为可以看到35岁也被归为了中年人之列。那么容易看到不同隶属度函数对应的是不同的选择标准,因此合理的隶属度函数是合理的识别方法的前提。
关于隶属度函数的选取,前文中已经讲过,可以参考:https://blog.csdn.net/cauchy7203/article/details/107365236