基于麻雀算法优化的相关向量机RVM分类算法
摘要:本文主要介绍相关向量机RVM的基本原理,以及利用麻雀算法改进RVM在分类问题中的应用。
1.RVM原理
RVM算法是一种基于贝叶斯框架的机器学习模型 ,通过最大化边际似然得到相关向量和权重。
设
{
x
}
u
=
1
N
\{x\}_{u=1}^N
{x}u=1N和
{
t
}
u
=
1
N
\{t\}_{u=1}^N
{t}u=1N分别是输入向量和输出向量,目标
t
t
t可采用如式(1)所示的回归模型获得:
t
=
y
(
x
)
+
ξ
n
(1)
t =y(x)+\xi_n \tag{1}
t=y(x)+ξn(1)
式中:
ξ
n
\xi_n
ξn为零均值、方差
σ
2
σ^2
σ2的噪声,
y
(
x
)
y(x)
y(x) 定义为:
y
(
x
)
=
∑
u
=
1
N
w
u
K
(
x
,
x
u
)
+
w
0
(2)
y(x)=\sum_{u=1}^Nw_uK(x,x_u)+w_0 \tag{2}
y(x)=u=1∑NwuK(x,xu)+w0(2)
式中:
K
(
x
,
x
u
)
K(x,x_u)
K(x,xu) 是核函数,
w
u
w_u
wu 是权重向量,
w
0
w_0
w0是偏差。设
t
t
t是独立的,其概率定义为:
p
(
t
∣
w
,
σ
2
)
=
(
2
π
σ
2
)
−
N
/
2
e
x
p
(
−
∣
∣
t
−
w
φ
∣
∣
2
2
σ
2
)
(3)
p(t|w,\sigma^2)=(2\pi\sigma^2)^{-N/2}exp(-\frac{||t-w\varphi||^2}{2\sigma^2})\tag{3}
p(t∣w,σ2)=(2πσ2)−N/2exp(−2σ2∣∣t−wφ∣∣2)(3)
式中:
t
=
(
t
1
,
t
2
,
.
.
.
,
t
N
)
T
,
w
=
(
w
0
,
w
1
,
.
.
.
,
w
n
)
T
t=(t_1,t_2,...,t_N)^T,w=(w_0,w_1,...,w_n)^T
t=(t1,t2,...,tN)T,w=(w0,w1,...,wn)T,
φ
\varphi
φ是
N
(
N
+
1
)
N(N+1)
N(N+1)的矩阵。
式(3)中的
w
w
w 和
σ
σ
σ最大似然估计会导致过拟合,为约束参数,定义一个零均值高斯先验概率分布:
p
(
w
∣
α
)
=
∏
u
=
0
N
N
(
w
u
∣
0
,
α
u
−
1
)
(4)
p(w|\alpha)=\prod_{u=0}^NN(w_u|0,\alpha_u^{-1})\tag{4}
p(w∣α)=u=0∏NN(wu∣0,αu−1)(4)
式中:
α
α
α 是
N
+
1
N +1
N+1 维的超参数向量。
依据贝叶斯公式,未知参数的后验概率为:
p
(
w
,
α
,
σ
2
∣
t
)
=
p
(
w
∣
α
,
σ
2
,
t
)
p
(
α
,
σ
2
∣
t
)
(5)
p(w,\alpha,\sigma^2|t)=p(w|\alpha,\sigma^2,t)p(\alpha,\sigma^2|t)\tag{5}
p(w,α,σ2∣t)=p(w∣α,σ2,t)p(α,σ2∣t)(5)
后验分布的权重被描述为:
p
(
w
∣
t
,
α
,
σ
2
)
=
(
2
π
)
−
(
N
+
1
)
/
2
∣
Σ
∣
−
1
/
N
e
x
p
(
−
1
2
(
w
−
u
)
T
Σ
−
1
(
w
−
u
)
)
(6)
p(w|t,\alpha,\sigma^2)=(2\pi)^{-(N+1)/2}|\Sigma|^{-1/N}exp(-\frac{1}{2}(w-u)^T\Sigma ^{-1}(w-u))\tag{6}
p(w∣t,α,σ2)=(2π)−(N+1)/2∣Σ∣−1/Nexp(−21(w−u)TΣ−1(w−u))(6)
式中:后验均值
u
=
σ
−
2
Σ
φ
T
t
u=\sigma^{-2}\Sigma\varphi^Tt
u=σ−2ΣφTt,协方差
Σ
=
(
σ
−
2
φ
T
φ
+
A
)
−
1
\Sigma=(\sigma^{-2}\varphi^T\varphi+A)^{-1}
Σ=(σ−2φTφ+A)−1,
A
=
d
i
a
g
(
α
0
,
α
1
,
.
.
.
,
α
N
)
A=diag(\alpha_0,\alpha_1,...,\alpha_N)
A=diag(α0,α1,...,αN)。
为了实现统一的超参数,做出如下定义:
p
(
t
∣
α
,
σ
2
)
=
∫
p
(
t
∣
w
,
σ
2
)
p
(
w
,
α
)
d
w
=
(
2
π
)
−
N
/
2
∣
σ
2
I
+
φ
A
−
1
φ
T
∣
e
x
p
(
−
1
2
t
T
(
σ
2
I
+
φ
A
−
1
φ
T
)
−
1
t
)
(7)
p(t|\alpha,\sigma^2)=\int p(t|w,\sigma^2)p(w,\alpha)dw =(2\pi)^{-N/2}|\sigma^2I+\varphi A^{-1}\varphi^T|exp(-\frac{1}{2}t^T(\sigma^2I + \varphi A^{-1}\varphi^T)^{-1}t)\tag{7}
p(t∣α,σ2)=∫p(t∣w,σ2)p(w,α)dw=(2π)−N/2∣σ2I+φA−1φT∣exp(−21tT(σ2I+φA−1φT)−1t)(7)
高斯径向基函数具有较强的非线性处理能力,被用作核函数,其定义如下:
K
(
x
,
x
u
)
=
e
x
p
(
−
(
x
−
x
u
)
2
2
γ
2
)
(7)
K(x,x_u)=exp(-\frac{(x-x_u)^2}{2\gamma^2})\tag{7}
K(x,xu)=exp(−2γ2(x−xu)2)(7)
式中:
γ
γ
γ 为宽度因子,对模型的精度有极大的影响,需要预先设定。
2.基于麻雀算法优化的相关向量机RVM
麻雀算法的基本原理请参考我的博客:https://blog.csdn.net/u011835903/article/details/108830958
本文利用麻雀算法优化RVM的宽度因子和超参数。适应度函数设计为训练集和验证集的错误率之和。错误率越低表明算法的预测性能越好。
f
i
t
n
e
s
s
=
T
r
a
i
n
E
r
r
o
r
R
a
t
e
+
T
e
s
t
E
r
r
o
r
R
a
t
e
(8)
fitness = TrainErrorRate + TestErrorRate \tag{8}
fitness=TrainErrorRate+TestErrorRate(8)
3.算法实验与结果
本文算法数据数量一共为250组数据,2个类别数据。其中前200组数据用训练,后50组数据用作测试数据。数据的输入维度为11维。
数据类别 | 数据量 |
---|---|
训练数据 | 200 |
测试数据 | 50 |
麻雀算法的参数设置如下:
%% 麻雀参数设置
pop=20; %种群数量
Max_iteration=20; % 设定最大迭代次数
dim = 2;% 维度为2,即优化一个超参数,以及核宽度
lb = [0.1,0.1];%下边界
ub = [1,10];%上边界
得到的结果如下图所示:
RVM训练集准确率:0.955
RVM测试集准确率:0.84314
SSA-RVM训练集准确率:0.97
SSA-RVM测试集准确率:0.88235
从结果来看,SSA-RVM的结果无论是在训练集还是测试集上结果都更优。
4.参考文献:
[1] TIPPPING M E. Sparse Bayesian learning and the relevance vector machine[J]. The journal of machine learning research,2001,1: 211-244.