一、在一个 10 类的模式识别问题中,有 3 类单独满足多类情况 1,其余的类别满足多类情
况 2。问该模式识别问题所需判别函数的最少数目是多少?
应该是
13
C
2
7
6*74
2
4
21
25
其中加一是分别 3 类 和 7 类
二、一个三类问题,其判别函数如下:
d1(x)=-x1, d2(x)=x1+x2-1, d3(x)=x1-x2-1
(1)设这些函数是在多类情况 1 条件下确定的,绘出其判别界面和每一个模式类别的区域。
(2)设为多类情况 2,并使:d12(x)= d1(x), d13(x)= d2(x), d23(x)= d3(x)。绘出其判别
界面和多类情况 2 的区域。
(3)设 d1(x), d2(x)和 d3(x)是在多类情况 3 的条件下确定的,绘出其判别界面和每类的区
域。
一、两类模式,每类包括 5 个 3 维不同的模式,且良好分布。如果它们是线性可分的,问权
向量至少需要几个系数分量?假如要建立二次的多项式判别函数,又至少需要几个系数分
量?(设模式的良好分布不因模式变化而改变。)
如果线性可分,则 4 个
建立二次的多项式判别函数,则
2
5 C
10
个
二、(1)用感知器算法求下列模式分类的解向量 w:
ω1: {(0 0 0)T, (1 0 0)T, (1 0 1)T, (1 1 0)T}
ω2: {(0 0 1)T, (0 1 1)T, (0 1 0)T, (1 1 1)T}
将属于ω2 的训练样本乘以(-1),并写成增广向量的形式。
x①=(0 0 0 1)T, x②=(1 0 0 1)T, x③=(1 0 1 1)T, x④=(1 1 0 1)T
x⑤=(0 0 -1 -1)T, x⑥=(0 -1 -1 -1)T, x⑦=(0 -1 0 -1)T, x⑧=(-1 -1 -1 -1)T
第一轮迭代:取 C=1,w(1)=(0 0 0 0) T
因 w T (1) x① =(0 0 0 0)(0 0 0 1) T =0 ≯0,故 w(2)=w(1)+ x① =(0 0 0 1)
因 w T(2) x② =(0 0 0 1)(1 0 0 1) T =1>0,故 w(3)=w(2)=(0 0 0 1)T
因 wT(3)x③=(0 0 0 1)(1 0 1 1)T=1>0,故 w(4)=w(3) =(0 0 0 1)T
因 wT(4)x④=(0 0 0 1)(1 1 0 1)T=1>0,故 w(5)=w(4)=(0 0 0 1)T
因 wT(5)x⑤=(0 0 0 1)(0 0 -1 -1)T=-1≯0,故 w(6)=w(5)+ x⑤=(0 0 -1 0)T
因 wT(6)x⑥=(0 0 -1 0)(0 -1 -1 -1)T=1>0,故 w(7)=w(6)=(0 0 -1 0)T
因 wT(7)x⑦=(0 0 -1 0)(0 -1 0 -1)T=0≯0,故 w(8)=w(7)+ x⑦=(0 -1 -1 -1)T
因 wT(8)x⑧=(0 -1 -1 -1)(-1 -1 -1 -1)T=3>0,故 w(9)=w(8) =(0 -1 -1 -1)T
因为只有对全部模式都能正确判别的权向量才是正确的解,因此需进行第二轮迭代。
第二轮迭代:
因 wT(9)x①=(0 -1 -1 -1)(0 0 0 1)T=-1≯0,故 w(10)=w(9)+ x① =(0 -1 -1 0)T
因 wT(10)x②=(0 -1 -1 0)( 1 0 0 1)T=0≯0,故 w(11)=w(10)+ x② =(1 -1 -1 1)T
因 wT(11)x③=(1 -1 -1 1)( 1 0 1 1)T=1>0,故 w(12)=w(11) =(1 -1 -1 1)T
因 wT(12)x④=(1 -1 -1 1)( 1 1 0 1)T=1>0,故 w(13)=w(12) =(1 -1 -1 1)T
因 wT(13)x⑤=(1 -1 -1 1)(0 0 -1 -1)T=0≯0,故 w(14)=w(13)+ x⑤ =(1 -1 -2 0)T
因 wT(14)x⑥=(1 -1 -2 0)( 0 -1 -1 -1)T=3>0,故 w(15)=w(14) =(1 -1 -2 0)T
因 wT(15)x⑧=(1 -1 -2 0)( 0 -1 0 -1)T=1>0,故 w(16)=w(15) =(1 -1 -2 0)T
因 wT(16)x⑦=(1 -1 -2 0)( -1 -1 -1 -1)T=2>0,故 w(17)=w(16) =(1 -1 -2 0)T
因为只有对全部模式都能正确判别的权向量才是正确的解,因此需进行第三轮迭代。
第三轮迭代:
w(24)=(2 -2 -2 0);
因为只有对全部模式都能正确判别的权向量才是正确的解,因此需进行第四轮迭代。
第四轮迭代:
w(31)=(2 -2 -2 1)
因为只有对全部模式都能正确判别的权向量才是正确的解,因此需进行第五轮迭代。
第五轮迭代:
w(40)=(2 -2 -2 1)
因为该轮迭代的权向量对全部模式都能正确判别。所以权向量即为(2 -2 -2 1),相应的判别
函数为 d(x)=2x1-2x2-2x3+1
(2)编写求解上述问题的感知器算法程序。
代码:
clc;
clear all;
fprintf('感知器算法\n');
x=[0,0,0,1;1,0,0,1;1,0,1,1;1,1,0,1;0,0,-1,-1;0,-1,-1,-1;0,-1,0,-1;-1,-1,-1,-1];
[N,n]=size(x);
C=1;
w0=[0,0,0,0]';
w=w0;
flag=1;
k=0;
while(flag)
flag=0;
k=k+1;
for i=1:N
if w'*x(i,:)'<=0%
w=w+x(i,:)';
flag=1;
end
end
end
fprintf('迭代次数为%d\n',k);
fprintf('解向量为 w=(');
for j=1:n
fprintf('%d ',w(j));
end
fprintf(')\n');
fprintf('相应的判别函数为 d(x)=');
for j=1:n-1
fprintf('(%d)x%d+',w(j),j);
end
fprintf('(%d)\n',w(j));
三、用多类感知器算法求下列模式的判别函数:
ω1: (-1 -1)T
ω2: (0 0)T
ω3: (1 1)T
将模式样本写成增广形式:
x①=(-1 -1 1)T, x②=(0 0 1)T, x③=(1 1 1)T
取初始值 w1(1)=w2(1)=w3(1)=(0 0 0)T,C=1。
第一轮迭代(k=1):以 x①=(-1 -1 1)T 作为训练样本。
d1(1)=
Tw
)1(1
x①=(0 0 0)(-1 -1 1)T=0
d2(1)=
Tw
)1(2
x①=(0 0 0)(-1 -1 1)T=0
d3(1)=
Tw
)1(3
x①=(0 0 0)(-1 -1 1)T=0
因 d1(1)≯d2(1),d1(1)≯d3(1),故
w1(2)=w1(1)+x①=(-1 -1 1)T
w2(2)=w2(1)-x①=(1 1 -1)T
w3(2)=w3(1)-x①=(1 1 -1)T
第二轮迭代(k=2):以 x②=(0 0 1)T 作为训练样本
d1(2)=
Tw
)2(1
x②=(-1 -1 1)(0 0 1)T=1
d2(2)=
Tw
)2(2
x②=(1 1 -1)(0 0 1)T=-1
d3(2)=
Tw
)2(3
x②=(1 1 -1)(0 0 1)T=-1
因 d2(2)≯d1(2),d2(2)≯d3(2),故
w1(3)=w1(2)-x②=(-1 -1 0)T
w2(3)=w2(2)+x②=(1 1 0)T
w3(3)=w3(2)-x②=(1 1 -2)T
第三轮迭代(k=3):以 x③=(1 1 1)T 作为训练样本
d1(3)=
Tw
)3(1
x③=(-1 -1 0)(1 1 1)T=-2
d2(3)=
Tw
)3(2
x③=(1 1 0)(1 1 1)T=2
d3(3)=
Tw
)3(3
x③=(1 1 -2)(1 1 1)T=0
因 d3(3)≯d2(3),故
w1(4)=w1(3) =(-1 -1 0)T
w2(4)=w2(3)-x③=(0 0 -1)T
w3(4)=w3(3)+x③=(2 2 -1)T
第四轮迭代(k=4):以 x①=(-1 -1 1)T 作为训练样本
d1(4)=
Tw
)4(1
x①=(-1 -1 0)(-1 -1 1)T=2
d2(4)=
Tw
)4(2
x①=(0 0 -1)(-1 -1 1)T=-1
d3(4)=
Tw
)4(3
x①=(2 2 -1)(-1 -1 1)T=-5
因 d1(4)>d2(4),d1(4)>d3(4),故
w1(5)=w1(4) =(-1 -1 0)T
w2(5)=w2(4) =(0 0 -1)T
w3(5)=w3(4) =(2 2 -1)T
第五轮迭代(k=5):以 x②=(0 0 1)T 作为训练样本
d1(5)=
Tw
)5(1
x②=(-1 -1 0)(0 0 1)T=0
d2(5)=
Tw
)5(2
x②=(0 0 -1)(0 0 1)T=-1
d3(5)=
Tw
)5(3
x②=(2 2 -1)(0 0 1)T=-1
因 d2(5) ≯d1(5),d2(5) ≯d3(5),故
w1(6)=w1(5)-x② =(-1 -1 -1)
w2(6)=w2(5)+x②=(0 0 0)
w3(6)=w3(5)-x②=(2 2 -2)
第六轮迭代(k=6):以 x③=(1 1 1)T 作为训练样本
d1(6)=
Tw
)6(1
x③=(-1 -1 -1)(1 1 1)T=-3
d2(6)=
Tw
)6(2
x③=(0 0 0)(1 1 1)T=0
d3(6)=
Tw
)6(3
x③=(2 2 -2)(1 1 1)T=2
因 d3(6)>d1(6),d3(6)>d2(6),故
w1(7)=w1(6)
w2(7)=w2(6)
w3(7)=w3(6)
第七轮迭代(k=7):以 x①=(-1 -1 1)T 作为训练样本
d1(7)=
Tw
)7(1
x①=(-1 -1 -1)(-1 -1 1)T=1
d2(7)=
Tw
)7(2
x①=(0 0 0)(-1 -1 1)T=0
d3(7)=
Tw
)7(3
x①=(2 2 -2)(-1 -1 1)T=-6
因 d1(7)>d2(7),d1(7)>d3(7),分类结果正确,故权向量不变。
由于第五、六、七次迭代中 x①、x②、x③均已正确分类,所以权向量的解为:
w1=(-1 -1 -1)T
w2=(0 0 0)T
w3=(2 2 -2)T
三个判别函数:
d1(x)=- x1 -x2-1
d2(x)=0
d3(x)=2x1+2x2-2
四、采用梯度法和准则函数
),
(
bxwJ
,
1
x
8
2
[(
T
bxw
)
T
bxw
2
]
式中实数 b>0,试导出两类模式的分类算法。
J
w
1
|4
x
|
2
||
(
其中,
T
bxw
)
|
T
bxw
*x-x*|
sign(
T
bxw
)
sign
(
T
bxw
)
1
1
T
-
bxwif
bxwif
T
0
0
当
0 bxwT
时,则 w(k+1) = w(k),此时不对权向量进行修正;
当
0bxwT
时,则
(
kw
)1
)(
kw
Cx
k
||
x
k
|
|
2
(
T
xw
k
k
b
)
,需对权向量进行校
正,初始权向量 w(1)的值可任选。即
(
kw
)1
)(
Ckw
|
|
x
k
x
k
2
||
0
T
xw
k
k
(
b
)
T
bxwif
bxwif
T
0
0
五、用二次埃尔米特多项式的势函数算法求解以下模式的分类问题
ω1: {(0 1)T, (0 -1)T}
ω2: {(1 0)T, (-1 0)T}
(1)
1
2
3
4
5
6
7
8
9
( )
x
( )
x
( )
x
( )
x
( )
x
( )
x
( )
x
( )
x
( )
x
,
(
x x
1
1
2
,
(
x x
2
1
2
(
,
x x
1
2
3
,
(
x x
4
1
2
,
(
x x
5
1
2
(
,
x x
1
2
6
,
(
x x
7
1
2
(
,
x x
1
2
8
,
(
x x
9
1
2
)
)
)
)
)
)
)
)
)
0
1
2
1
2
1
1
0
0
1
2
) 1
(
H x H x
0
2
(
2
)
x
H x H x
2
2
2
(
)
4
x
H x H x
2
2
(
2
)
H x H x
x
1
0
2
(
4
)
x x
H x H x
1 2
2
2
(
)
2 (4
H x H x
x
x
2
1
2
2
4
)
(
2
H x H x
x
1
2
0
2
2 (4
2)
(
)
H x H x
x
x
1
2
2
2
2
2)(4
(4
)
(
x
H x H x
x
2
1
2
)
)
1
)
)
)
)
)
1
)
)
(
(
(
(
(
(
(
(
(
2)
2
2
1
1
1
1
1
1
1
2
1
2
2)
按第一类势函数定义,得到势函数
( ,
K x x
)
k
9
i
1
(
i
( )
x
i
x
k
)
其中
x
1
Txx
)
(
,
2
,
x
k
(
x
k
1
,
x
k
2
T
)
(2)通过训练样本逐步计算累积位势 K(x)
给定训练样本:ω1 类为 x①=(0 1)T, x②=(0 -1)T
ω2 类为 x③=(1 0)T, x④=(-1 0)T
累积位势 K(x)的迭代算法如下
第一步:取 x①=(0 1)T∈ω1,故
K X
1
(
)
15 20
x
2
40
2
x
2
24
2
x
1
32
2
x x
1
2
64
2
2
x x
1
2
第二步:取 x②=(0 -1)T∈ω1,故 K1(x②)=5
因 K1(x②)>0 且 x②∈ω1,故 K2(x)=K1(x)
第三步:取 x③=(1 0)T∈ω2,故 K2(x③)=9
因 K2(x③)>0 且 x③∈ω2,故
K X
(
3
)
K X
(
2
)
K X X
(
,
)
3
20
x
2
16
2
x
2
20
x
1
16
2
x
1
第四步:取 x④=(-1 0)T∈ω2,故 K3(x④)=4
因 K3(x④)>0 且 x④∈ω2,
K X
(
4
)
K X
(
3
)
K X X
(
,
) 15 20
x
2
56
2
x
1
8
2
x
2
32
2
x x
1
2
64
2
2
x x
1
2
4
将全部训练样本重复迭代一次,得
第五步:取 x⑤=x①=(0 1)T∈ω1,K4(x⑤)=27>0
故 K5(x)=K4(x)
第六步:取 x⑥=x②=(0 -1)T∈ω1,K5(x⑥)=-13<0
故
K X
(
6
)
K X
(
5
)
K X X
(
,
)
32
2
x
1
32
2
x
2
6
第七步:取 x⑦=x③=(1 0)T∈ω2,K6(x⑦)=-32<0
故 K7(x)=K6(x)
第八步:取 x⑧=x④=(-1 0)T∈ω2,K7(x⑧)=-32<0
故 K8(x)=K7(x)
第九步:取 x⑨=x①=(0 1)T∈ω1 ,K8(x⑨)=32>0
故 K9(x)=K8(x)
第十步:取 x⑩=x② =(0 -1)T∈ω1,K9(x⑩)=32>0
故 K10(x)=K9(x)
其中第七步到第十步的迭代过程中对全部训练样本都能正确分类,因此算法收敛于判
别函数
六、用下列势函数
(
d X
)
K X
10
(
)
32
2
x
1
32
2
x
2
K X X
(
,
)
||
e
k
X X
2
||
k
求解以下模式的分类问题
ω1: {(0 1)T, (0 -1)T}
ω2: {(1 0)T, (-1 0)T}
取α=1,在二维情况下势函数为
[(
x
1
x
2
)
2
])
2
k
xx
k
)
e
,(
xxK
这里:ω1 类为 x①=(0 1)T, x②=(0 -1)T
ω2 类为 x③=(1 0)T, x④=(-1 0)T
e
k
1
2
2
k
(
x
x
可以看出,这两类模式是线性不可分的。算法步骤如下:
第一步:取 x①=(0 1)T∈ω1,则
K X
1
(
)
exp{
2
x
1
(
x
2
2
1) }
第二步:取 x②=(0 -1)T∈ω1
因 K1(x②)=e-(4+0)=e-4>0,故 K2(x)=K1(x)
第三步:取 x③=(1 0)T∈ω2
因 K2(x③)=e-(1+1)=e-2>0,故
K X
(
3
)
K X
(
2
)
K X X
(
,
)
exp{
2
x
1
(
x
2
3
2
1) } exp{ (
x
1
2
1)
2
}
x
2
第四步:取 x④=(-1 0)T∈ω2
因 K3(x④)=e-(1+1) - e-(4+0) =e-2 - e-4>0,故
K X
(
4
)
K X K X X
3
(
)
(
,
)
exp{
2
x
1
(
x
2
4
2
1) } exp{ (
x
1
2
1)
2
x
2
} exp{ (
x
1
2
1)
2
x
2
}
第五步:取 x⑤=(0 1)T∈ω1
因 K4(x⑤)=1-e-(1+1) - e-(1+1) =1-e-2 - e-2>0,故 K5(x)=K4(x)
第六步:取 x⑥=(0 -1)T∈ω1
因 K5(x⑥)= e-(0+4) - e-(1+1) - e-(1+1) =e-4 - e-2- e-2<0,故
6
(
)
(
K X
2
exp{
K X
x
1
exp{ (
x
1
K X X
)
(
)
,
5
6
(
x
2
2
1)
2
2
1) } exp{
x
1
2
} exp{ (
x
x
2
1
(
x
2
2
1)
2
1) }
2
}
x
2
第七步:取 x⑦=(1 0)T∈ω2
因 K6(x⑦)= e-(1+1) + e-(1+1)–1- e-(4+0) =e-2 +e-2-1-e-4<0