最小平方误差准则分类 MSE
大三数学狗,记录一下学习过程。
最小平方误差准则分类 定义
对线性不可分的样本集,不等式组
a
T
y
i
>
0
,
i
=
1
,
.
.
.
N
a^{T}y_{i}>0,i=1,...N
aTyi>0,i=1,...N不可能同时满足,希望找到一个权向量
a
∗
a^{*}
a∗,使得错分样本尽可能少。可以通过解线形不等式组以最小化错分样本数,通常用探索算法求解。
将不等式组转化为
a
T
y
i
=
b
i
>
0
,
i
=
1
,
.
.
.
N
,
a^{T}y_{i}=b_{i}>0,i=1,...N\text{,}
aTyi=bi>0,i=1,...N,
矩阵形式为
Y
a
=
b
Ya = b
Ya=b,其中,
其中,
d
^
\hat{d}
d^是增广的样本向量的维数,
d
^
=
d
+
1
\hat{d} =d+1
d^=d+1。
若
Y
Y
Y是非奇异的,则
a
∗
=
Y
−
1
b
.
a^{*}=Y^{-1}b\text{.}
a∗=Y−1b.
由于
Y
Y
Y不是方阵,通常样本数大于维数,方程没有精确解。定义方程组的误差为
e
=
Y
a
−
b
,
e=Ya-b\text{,}
e=Ya−b,
最优权向量
a
∗
a^{*}
a∗应该使得误差向量的平方最小,即求解方程组的最小平方误差解:
a
∗
=
a
r
g
m
i
n
a
J
s
(
a
)
=
∥
Y
a
−
b
∥
2
=
∑
i
=
1
n
(
a
T
y
i
−
b
i
)
2
.
a^{*}=\underset{a}{argmin} J_{s}(a)=\left \| Ya-b \right \|^{2}=\sum_{i=1}^{n} (a^{T}y_{i}-b{i})^{2}\text{.}
a∗=aargminJs(a)=∥Ya−b∥2=i=1∑n(aTyi−bi)2.
J
s
(
α
)
J_{s}(\alpha)
Js(α)在极值处,对
a
a
a的梯度应为0,则
Y
+
=
(
Y
T
Y
)
−
1
Y
T
Y^{+}=(Y^{T}Y)^{-1}Y^{T}
Y+=(YTY)−1YT是长方矩阵[Y]的伪逆。
实际中常用梯度下降法来求极小值,先任意选择初始的权向量
α
(
0
)
\alpha(0)
α(0),置
t
=
0
t = 0
t=0,
再按照梯度下降的方向迭代更新权向量
α
(
t
+
1
)
=
α
(
t
)
−
ρ
t
Y
T
(
Y
α
−
b
)
,
\alpha(t+1)=\alpha(t)-\rho_{t}Y^{T}(Y\alpha-b)\text{,}
α(t+1)=α(t)−ρtYT(Yα−b),
直到满足
▽
J
s
(
α
)
≤
ξ
\bigtriangledown J_{s}(\alpha)\le \xi
▽Js(α)≤ξ或者
∥
α
(
t
+
1
)
−
α
(
t
)
∥
≤
ξ
\left \| \alpha(t+1)-\alpha(t) \right \| \le \xi
∥α(t+1)−α(t)∥≤ξ时为止。
ξ
\xi
ξ是事先确定的误差灵敏度。
还有一种是单样本修正法(
W
i
d
r
o
w
−
H
o
f
f
Widrow-Hoff
Widrow−Hoff算法)来调整权向量,
α
(
t
+
1
)
=
α
(
t
)
+
ρ
t
(
b
k
−
α
(
t
)
T
y
k
)
y
k
,
\alpha(t+1)=\alpha(t)+\rho_{t}(b_{k}-\alpha(t)^{T}y_{k})y_{k}\text{,}
α(t+1)=α(t)+ρt(bk−α(t)Tyk)yk,
y
k
y_{k}
yk是使得
α
(
t
)
T
y
k
≠
b
k
\alpha(t)^{T}y_{k} \ne b_{k}
α(t)Tyk=bk的样本。
补充:批量样本修正法中,样本是分批或全部检查后,修正权向量;
单样本修正法将样本集视为不断重复出现的序列,逐个样本检查,修正权向量。
简单例题及Matlab代码实现
产生两个具有200个二维的数据集,均值分别为(2,1), (-2,1), 协方差矩阵均为(2,1;1,2)。利用最小平方误差判别方法设计线性分类器,若使用迭代方法,使用2个不同的初始化向量,比较结果。
Matlab代码如下:
mu1=[2,1];mu2=[-2,1];
sigma1=[2,1;1,2];sigma2=[2,1;1,2];
f1=mvnrnd(mu1,sigma1,200);f2=mvnrnd(mu2,sigma2,200);
figure(1);
plot(f1(:,1),f1(:,2),'*',f2(:,1),f2(:,2),'o');
hold on;
%绘图
Y=[f1,ones(200,1);f2,ones(200,1)]';%扩维
b1=ones(200,1);%w1类期望输出1
b2=-ones(200,1);%w2类期望输出-1,对第二类样本取反向向量
b=[b1;b2];
a=inv(Y*Y')*Y*b;%权向量估计值
Y=linspace(-5,5,200);%选点%取点作图
y=(-a(1)/a(2))*Y-a(3)/a(2);%x*a1+y*a2+a3=0
plot(Y,y,'r');
由于使用了随机的函数,所以做出的图应该会和我给出的不同。并且有时候可能出现无法求逆的情况。
我只写了
M
S
E
MSE
MSE方法,
Y
T
Y
Y^{T}Y
YTY是个方阵,一般非奇异。当矩阵无法求逆时,就需要使用迭代求解方式,即上述提出的批量样本修正法和单样本修正法(
W
i
d
r
o
w
−
H
o
f
f
Widrow-Hoff
Widrow−Hoff算法)。
过了很久,学了
L
a
T
e
X
LaTeX
LaTeX,但是迭代代码完全忘记了,有缘再说吧(咕咕)