文章目录
背景介绍
多实例学习 (MIL) 最早由 Dietterich 等人提出作为一种预测药物活性的方法。之后,MIL 获得了许多成功的应用,例如改进的药物活性预测、文本分类、图像分类、目标检测 和股票预测。与其他机器学习框架不同,MIL 是新颖的,因为它包含带标签的袋子,而不是带标签的实例。每个包中的实例数量是不确定的,每个包的标签是可以观察到的,而每个包中的实例是不可观察的。按照规则,如果包中至少有一个正实例,则标签为正实例。 否则为负。这很重要,因为传统的单实例学习 (SIL) 方法不再解决 MIL 问题。
在过去的几十年里,出现了大量的 MIL 方法来解决多实例问题。都可以概括为三种类型:
[1]专门的算法结合MIL的特点。 这包括轴平行矩形方法,它通过获取实例的属性值来找到最合适的轴平行矩形;
[2]基于分类算法的 MIL 算法。
[3]基于问题转换思想的算法。这些包括通过嵌入式实例选择 (MILES) 的 MIL,由 Yixin 等人提出。 一种是将包嵌入实例空间,获取包的特征,然后使用1-SVM分类器训练实例。
存在的问题以及解决方案
ELM 提出了随机初始化隐藏层的参数,并在应用Moore Penrose 广义逆的基础上通过最小均方方法确定输出权重。因此,计算成本远低于其他经典算法(例如,梯度下降、全局搜索、遗传算法、粒子群)。为了解决 MIL 分类问题,ELM 的多内核扩展 (MKELM) 提供了一种优雅的方法来规避隐藏层输出的计算并将其固有地编码在内核矩阵中。然而,MKELM 的潜在问题是如何为特定应用程序找到不同内核之间的最佳平衡,因为内核平衡参数通常取决于数据。王等人针对多实例问题的特点修改了特定的误差函数,提出了ELM-MIL。虽然 ELM-MIL 可以更快地学习,但 ELM 的有效性在很大程度上取决于选择的隐藏节点的数量(即网络结构)。与其他基准 MIL 算法相比,它的分类精度稍差,并且更容易受到隐藏节点的影响。
基于上述观察,引入了基于贝叶斯 ELM (BELM)的 MIL 算法 (BELM-MIL) 以进一步提高分类性能。使用贝叶斯推理,BELM-MIL 可以通过适当的先验和自动正则化来缓解过度问题,在许多学习任务中显示出良好的分类性能。该方法在选择实例的前提下,采用基于贝叶斯网络的权重自学习方法学习实例中每个特征的权重,并根据权重计算包中每个实例的数学期望。
然后,从每个包中选择一个代表性实例,我们使用 BELM 训练分类器。
算法介绍
极限学习机(extreme learning machine,elm)
ELM 是 Huang首次提出的单隐藏层前馈网络 (SLFN)。由于输入权重(即输入层和隐藏层之间的连接)和隐藏偏差是任意选择的,ELM 只需要设置算法执行的隐藏层节点数。因此,它可以实现极快的学习速度,优于 BP,并且具有更好的泛化性能。
然而,它很难产生局部最优解。
ELM, 由一个输入层、一个隐藏层和一个输出层组成。输入和隐藏层通过输入权重
w
i
\boldsymbol{w}_i
wi 连接,隐藏层和输出层通过输出权重
β
i
\boldsymbol{\beta}_i
βi连接。每个隐藏神经元都有一个偏差
b
i
b_i
bi。
假设有一个训练集
(
x
1
,
⋯
,
x
N
)
T
(\boldsymbol{x}_1,\cdots,\boldsymbol{x}_N)^T
(x1,⋯,xN)T, 标签为
(
y
1
,
⋯
,
y
N
)
T
(y_1,\cdots,y_N)^T
(y1,⋯,yN)T。
具有L个节点的 SLFN 的输出可以简单地表述为
o
(
x
)
=
[
o
1
(
x
)
,
⋯
,
o
L
(
x
)
]
o(\boldsymbol{x}) = [o_1(\boldsymbol{x}),\cdots,o_L(\boldsymbol{x})]
o(x)=[o1(x),⋯,oL(x)],其中
x
\boldsymbol{x}
x是输入实例。
SLFN的结构可以表示如下:
o
i
=
∑
j
=
1
L
β
j
g
(
ω
j
⋅
x
i
+
b
j
)
,
i
=
1
,
…
,
N
o_{i}=\sum_{j=1}^{L} \beta_{j} g\left(\omega_{j} \cdot x_{i}+b_{j}\right), \quad i=1, \ldots, N
oi=j=1∑Lβjg(ωj⋅xi+bj),i=1,…,N
其中,
g
(
x
)
g(x)
g(x)是sigmoid激活函数:
g
(
x
)
=
1
1
+
exp
(
−
(
ω
⋅
x
+
b
)
)
.
g(x)=\frac{1}{1+\exp (-(\omega \cdot x+b))}.
g(x)=1+exp(−(ω⋅x+b))1.
,
ω
\boldsymbol{\omega}
ω是一个
L
×
N
L\times N
L×N的矩阵,
ω
i
=
[
ω
i
1
,
ω
i
2
,
⋯
,
ω
i
n
]
\boldsymbol{\omega}_i = [\omega_{i1},\omega_{i2},\cdots,\omega_{in}]
ωi=[ωi1,ωi2,⋯,ωin];
b
\boldsymbol{b}
b 是一个
L
×
1
L\times 1
L×1的向量,
b
i
b_i
bi是偏置。
假设
β
\boldsymbol{\beta}
β是输出权值,SLFN 的结构可以简单地写为:
O
=
H
β
,
\boldsymbol{O}=\boldsymbol{H}\boldsymbol{\beta},
O=Hβ,
其中,
O
\boldsymbol{O}
O是输出层,
O
=
[
o
1
,
o
2
,
⋯
,
o
N
]
T
\boldsymbol{O} = [\boldsymbol{o}_1,\boldsymbol{o}_2,\cdots,\boldsymbol{o}_N]^T
O=[o1,o2,⋯,oN]T;
H
\boldsymbol{H}
H为网络的
N
×
L
N \times L
N×L个隐藏层输出矩阵,元素如下:
H
=
[
g
(
ω
1
⋅
x
1
+
b
1
)
,
⋯
g
(
ω
L
⋅
x
1
+
b
L
)
⋮
⋱
⋮
g
(
ω
1
⋅
x
N
+
b
1
)
,
⋯
g
(
ω
L
⋅
x
N
+
b
L
)
]
N
×
L
\boldsymbol{H}=\left[\begin{array}{ccc} g\left(\boldsymbol{\omega}_{1} \cdot \boldsymbol{x}_{1}+b_{1}\right), & \cdots & g\left(\boldsymbol{\omega}_{\boldsymbol{L}} \cdot \boldsymbol{x}_{\mathbf{1}}+b_{L}\right) \\ \vdots & \ddots & \vdots \\ g\left(\boldsymbol{\omega}_{1} \cdot \boldsymbol{x}_{N}+b_{1}\right), & \cdots & g\left(\boldsymbol{\omega}_{\boldsymbol{L}} \cdot \boldsymbol{x}_{N}+b_{L}\right) \end{array}\right]_{N \times L}
H=⎣⎢⎡g(ω1⋅x1+b1),⋮g(ω1⋅xN+b1),⋯⋱⋯g(ωL⋅x1+bL)⋮g(ωL⋅xN+bL)⎦⎥⎤N×L
β
=
[
β
1
,
⋯
,
β
L
]
\boldsymbol{\beta} = [\boldsymbol{\beta}_1,\cdots,\boldsymbol{\beta}_L]
β=[β1,⋯,βL]
其中第 i 行向量是
β
i
=
[
β
i
1
,
β
i
2
,
.
.
.
,
β
i
n
]
\boldsymbol{\beta}_i=\left[\beta_{i1}{,\beta}_{i2},...\ ,\beta_{in}\right]
βi=[βi1,βi2,... ,βin]. 这可以通过使用广义 Moore-Penrose 逆来确定,如下所示:
β
^
=
H
†
Y
,
\hat{\boldsymbol{\beta}} = \boldsymbol{H}^{\dag}\boldsymbol{Y},
β^=H†Y,
其中
H
†
=
(
H
⋅
H
)
−
1
)
\boldsymbol{H}^{\dag} = (\boldsymbol{H}\cdot\boldsymbol{H})^{-1})
H†=(H⋅H)−1)
贝叶斯极限学习机(BELM)
贝叶斯推理提供了一种自动优化模型复杂性的自然方法。BELM基于贝叶斯线性方法优化输出层权重,改善了ELM的过拟合问题。随着贝叶斯理论的广泛应用,我们可以得出结论,大多数基于贝叶斯理论的模型的建立可以分为以下两个步骤。
第一步找到模型参数的后验分布。假设
w
\boldsymbol{w}
w是参数集,
D
\boldsymbol{D}
D是数据集。 因为模型的先验分布与似然函数成正比,所以先验分布可以简单定义为:
P
(
ω
∣
D
)
=
P
(
ω
)
⋅
P
(
D
∣
ω
)
P(\boldsymbol{\omega}|\boldsymbol{D}) = P(\boldsymbol{\omega})\cdot P(\boldsymbol{D}|\boldsymbol{\omega})
P(ω∣D)=P(ω)⋅P(D∣ω)
第二步是输出
y
n
e
w
y_{new}
ynew可以由
x
n
e
w
\boldsymbol{x}_{new}
xnew的输入实例的
x
\boldsymbol{x}
x的后验分布的积分给出:
P
(
y
n
e
w
∣
x
n
e
w
,
D
)
=
∫
P
(
y
n
e
w
∣
x
n
e
w
,
ω
)
⋅
P
(
ω
∣
D
)
d
ω
P\left(y_{new} \mid \boldsymbol{x}_{new}, \boldsymbol{D}\right)=\int P\left(y_{new} \mid \boldsymbol{x}_{new}, \omega\right) \cdot P(\omega \mid D) d \omega
P(ynew∣xnew,D)=∫P(ynew∣xnew,ω)⋅P(ω∣D)dω
BELM 的高斯归一化与 ELM 的不同之处在于,正则化是高斯过程的自然结果。 相比之下,其他方法需要最小化成本函数的项。因此,BELM 可以实现比 ELM 更好的泛化。
论文算法
BELM-MIL的概念图如下图
给定N个训练包,每个包包含多个实例,分类器训练主要有四个步骤:贝叶斯加权自学习; 实例选择; BELM 建模; 和预测。
基于贝叶斯网络的权重自学习
贝叶斯网络通常由两部分定义:第一部分是有向无环图,其中每个节点代表一个随机变量,每个弧代表一个概率依赖关系。第二部分是每个属性的条件概率表(CPT),即属性在其父项下的条件概率分布。对于每个包中代表实例的选择,我们假设每个实例都有一个标签(即正的或负的),贝叶斯网络的目标是最大化从训练集中获得的总概率。因此,我们构建了一个用于权重自学习优化的贝叶斯网络,如下图所示。这里的 CPT 不是特征的条件概率表,而是相对于其父项的初始权重和特征值,即二元结构。贝叶斯网络中CPT项的计算类似于朴素贝叶斯分类中涉及的计算概率。
使用梯度下降算法训练贝叶斯网络,其目的是学习CPT的值:
假设
S
\boldsymbol{S}
S是训练实例集
(
X
1
,
X
2
,
⋯
,
X
s
)
(\boldsymbol{X}_1,\boldsymbol{X}_2,\cdots,\boldsymbol{X}_s)
(X1,X2,⋯,Xs),
ω
=
[
ω
1
,
ω
2
,
⋯
,
ω
p
]
T
\boldsymbol{\omega} = [\omega_1,\omega_2,\cdots,\omega_p]^T
ω=[ω1,ω2,⋯,ωp]T是特征的初始权值。节点
e
e
e在
X
d
\boldsymbol{X}_d
Xd处的先验概率为
p
(
e
∣
X
d
)
p(e|\boldsymbol{X}_d)
p(e∣Xd),即CPT二进制结构中的特征值。学习的目标是最大化
P
ω
(
S
)
=
∏
d
=
1
s
P
ω
(
X
d
)
P_{\boldsymbol{\omega}}(\boldsymbol{S}) = \prod_{d=1}^{s}P_{\omega}(\boldsymbol{X}_d)
Pω(S)=∏d=1sPω(Xd),其中
P
ω
(
S
)
P_{\omega}(\boldsymbol{S})
Pω(S)是训练实例的总概率,
P
ω
X
d
)
P_{\omega}\boldsymbol{X}_d)
PωXd)是实例
X
d
\boldsymbol{X}_d
Xd的总概率;有个
ln
(
a
)
\ln(a)
ln(a)梯度计算,就有:
ln
P
ω
(
S
)
=
ln
∏
d
=
1
S
P
ω
(
X
d
)
=
ln
(
ω
p
(
e
∣
X
1
)
⋅
…
⋅
ω
p
(
e
∣
X
d
)
)
=
ln
ω
p
(
e
∣
X
1
)
+
…
+
ln
ω
p
(
e
∣
X
d
)
\begin{aligned} \ln P_{\omega}(\boldsymbol{S}) &=\ln \prod_{d=1}^{S} P_{\omega}\left(\boldsymbol{X}_{\boldsymbol{d}}\right) \\ &=\ln \left(\frac{\omega}{p\left(e \mid \boldsymbol{X}_{\mathbf{1}}\right)} \cdot \ldots \cdot \frac{\omega}{p\left(e \mid \boldsymbol{X}_{\boldsymbol{d}}\right)}\right) \\ &=\ln \frac{\omega}{p\left(e \mid \boldsymbol{X}_{\mathbf{1}}\right)}+\ldots+\ln \frac{\omega}{p\left(e \mid \boldsymbol{X}_{\boldsymbol{d}}\right)} \end{aligned}
lnPω(S)=lnd=1∏SPω(Xd)=ln(p(e∣X1)ω⋅…⋅p(e∣Xd)ω)=lnp(e∣X1)ω+…+lnp(e∣Xd)ω
我们随机初始化
ω
\omega
ω 并使用梯度下降算法更新它。
因此可以推导出迭代过程。
a) 根据式计算网络中每个属性的梯度:
∂
ln
P
ω
(
S
)
∂
ω
=
p
(
e
∣
X
1
)
ω
+
p
(
e
∣
X
2
)
ω
+
…
+
p
(
e
∣
X
d
)
ω
=
∑
d
=
1
S
p
(
e
∣
X
d
)
ω
\begin{aligned} \frac{\partial \ln P_{\omega}(\boldsymbol{S})}{\partial \omega} &=\frac{p\left(e \mid \boldsymbol{X}_{\mathbf{1}}\right)}{\boldsymbol{\omega}}+\frac{p\left(e \mid \boldsymbol{X}_{\mathbf{2}}\right)}{\omega}+\ldots+\frac{p\left(e \mid \boldsymbol{X}_{\boldsymbol{d}}\right)}{\omega} \\ &=\sum_{d=1}^{S} \frac{p\left(e \mid \boldsymbol{X}_{d}\right)}{\boldsymbol{\omega}} \end{aligned}
∂ω∂lnPω(S)=ωp(e∣X1)+ωp(e∣X2)+…+ωp(e∣Xd)=d=1∑Sωp(e∣Xd)
b) 沿梯度移动一小步以更新权重
ω
\omega
ω:其中
l
l
l 是步进学习率,一个非常小的值;
ω
←
ω
+
(
l
)
∂
ln
P
ω
(
S
)
∂
ω
\omega \leftarrow \omega+(l) \frac{\partial \ln P_{\omega}(S)}{\partial \omega}
ω←ω+(l)∂ω∂lnPω(S)
c) 然后,可以将
ω
\omega
ω归一化为 (0, 1);
d) 当
∂
ln
P
ω
(
S
)
∂
ω
<
k
\frac{\partial \ln P_{\omega}(\boldsymbol{S})}{\partial \omega}<k
∂ω∂lnPω(S)<k,
ω
\omega
ω的训练将结束,否则,转到a)。
实例选择
对于每个实例
x
i
j
\boldsymbol{x}_{ij}
xij,在袋子
B
i
B_i
Bi 中,数学期望可以计算如下:
Y
i
j
=
∑
k
=
1
p
x
i
j
k
∗
ω
k
Y_{i j}=\sum_{k=1}^{p} x_{i j k} * \omega_{k}
Yij=k=1∑pxijk∗ωk
然后,我们选择实例
x
i
j
\boldsymbol{x}_{ij}
xij,它有
max
(
Y
i
j
)
\max(Y_{ij})
max(Yij) 来表示袋子 Bi。 因此,MIL 问题可以转换为 SIL。
BELM模型
对于选定的实例
(
x
1
,
x
2
,
⋯
,
x
N
)
(\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_N)
(x1,x2,⋯,xN),假设 每一个标签
y
y
y都有一个独立噪声
ξ
\xi
ξ,它遵循高斯分布
N
(
0
;
δ
2
)
\mathcal{ N}(0;\delta^2)
N(0;δ2),那么
y
y
y可以写成:
y
=
H
β
+
ξ
y=\boldsymbol{H} \boldsymbol{\beta}+\xi
y=Hβ+ξ
,其中
H
\boldsymbol{H}
H是隐藏层的输出权重,概率模型和似然函数可以推导处如下:
P
(
y
∣
H
,
β
,
σ
2
)
=
∏
i
=
1
N
p
(
y
i
∣
H
,
β
,
σ
2
)
=
∏
i
=
1
N
1
2
π
σ
2
exp
(
−
(
y
i
−
h
(
x
i
)
β
)
2
2
σ
2
)
\begin{aligned} P\left(y \mid \boldsymbol{H}, \beta, \sigma^{2}\right) &=\prod_{i=1}^{N} p\left(y_{i} \mid H, \boldsymbol{\beta}, \sigma^{2}\right) \\ &=\prod_{i=1}^{N} \frac{1}{\sqrt{2 \pi \sigma^{2}}} \exp \left(-\frac{\left(y_{i}-h\left(\boldsymbol{x}_{i}\right) \boldsymbol{\beta}\right)^{2}}{2 \sigma^{2}}\right) \end{aligned}
P(y∣H,β,σ2)=i=1∏Np(yi∣H,β,σ2)=i=1∏N2πσ21exp(−2σ2(yi−h(xi)β)2)
为了惩罚过重,自然先验分布定义如下:
p
(
β
∣
α
)
=
N
(
0
;
α
−
1
I
)
=
(
α
2
π
)
L
2
exp
(
−
α
2
β
T
β
)
p(\boldsymbol{\beta} \mid \alpha)=\mathcal{N}\left(0 ; \alpha^{-1} \boldsymbol{I}\right)=\left(\frac{\alpha}{2 \pi}\right)^{\frac{L}{2}} \exp \left(-\frac{\alpha}{2} \boldsymbol{\beta}^{T} \boldsymbol{\beta}\right)
p(β∣α)=N(0;α−1I)=(2πα)2Lexp(−2αβTβ)
,其中
I
\boldsymbol{I}
I是单位矩阵,
α
\alpha
α是共享先验,这是高斯方法的自然结果。
因为先验分布和似然函数遵循高斯分布,后验可以推导如下:
p
(
β
∣
α
,
σ
2
,
y
)
=
p
(
y
∣
β
,
σ
2
)
p
(
β
∣
α
)
p
(
y
∣
α
,
σ
2
)
p\left(\boldsymbol{\beta} \mid \alpha, \sigma^{2}, y\right)=\frac{p\left(y \mid \beta, \sigma^{2}\right) p(\beta \mid \alpha)}{p\left(y \mid \alpha, \sigma^{2}\right)}
p(β∣α,σ2,y)=p(y∣α,σ2)p(y∣β,σ2)p(β∣α)
它也遵循均值为 $ \boldsymbol{m}$ 方差为
v
\boldsymbol{v}
v 的高斯分布,如下所示:
m
=
σ
−
2
⋅
v
⋅
H
T
Y
\boldsymbol{m}=\sigma^{-2} \cdot \boldsymbol{v} \cdot \boldsymbol{H}^{T} Y
m=σ−2⋅v⋅HTY
b
o
l
d
s
y
m
b
o
l
v
=
(
α
I
+
σ
−
2
⋅
H
T
⋅
H
)
−
1
boldsymbol{v}=\left(\alpha \boldsymbol{I}+\sigma^{-2} \cdot \boldsymbol{H}^{T} \cdot \boldsymbol{H}\right)^{-1}
boldsymbolv=(αI+σ−2⋅HT⋅H)−1
因此,我们可以通过[32]的证据程序得到超参数的最优值,并且可以通过以下不动点公式计算最优条件:
α
←
L
−
α
⋅
trace
[
v
]
m
T
m
\alpha \leftarrow \frac{L-\alpha \cdot \operatorname{trace}[v]}{\boldsymbol{m}^{T} \boldsymbol{m}}
α←mTmL−α⋅trace[v]
σ
2
←
∑
i
=
1
N
(
y
i
−
h
(
x
i
)
m
)
2
N
−
L
+
α
⋅
trace
[
v
]
\sigma^{2} \leftarrow \frac{\sum_{i=1}^{N}\left(y_{i}-h\left(x_{i}\right) \boldsymbol{m}\right)^{2}}{N-L+\alpha \cdot \operatorname{trace}[v]}
σ2←N−L+α⋅trace[v]∑i=1N(yi−h(xi)m)2
其中 N 是模式的数量。 通过初始化
α
\alpha
α和
σ
\sigma
σ,
m
\boldsymbol{m}
m和
v
\boldsymbol{v}
v根据上面公式迭代更新直到收敛。最后,可以根据输入
x
n
e
w
\boldsymbol{x}_{new}
xnew 应用
m
\boldsymbol{m}
m 来预测新的输出
y
n
e
w
y_{new}
ynew。
预测
对于测试数据集
B
^
\hat{B}
B^,可以按照与训练数据相同的方式选择代表性实例。 然后可以预测每个包的标签:
p
(
y
^
∣
α
,
σ
2
,
h
(
x
^
)
)
=
N
(
h
(
x
^
)
m
;
σ
2
^
)
=
∫
p
(
y
^
∣
β
,
σ
2
,
h
(
x
^
)
)
p
(
β
∣
α
,
σ
2
,
y
)
d
β
\begin{aligned} p\left(\hat{y} \mid \alpha, \sigma^{2}, \boldsymbol{h}(\hat{\boldsymbol{x}})\right) &=\mathcal{N}\left(\boldsymbol{h}(\hat{\boldsymbol{x}}) \boldsymbol{m} ; \hat{\sigma^{2}}\right) \\ &=\int p\left(\hat{y} \mid \beta, \sigma^{2}, \boldsymbol{h}(\hat{\boldsymbol{x}})\right) p\left(\beta \mid \alpha, \sigma^{2}, y\right) d \beta \end{aligned}
p(y^∣α,σ2,h(x^))=N(h(x^)m;σ2^)=∫p(y^∣β,σ2,h(x^))p(β∣α,σ2,y)dβ
其中,
h
(
x
^
)
=
[
h
1
(
x
^
)
,
…
,
h
L
(
x
^
)
]
\boldsymbol{h}(\hat{\boldsymbol{x}})=\left[h_{1}(\hat{\boldsymbol{x}}), \ldots, h_{L}(\hat{\boldsymbol{x}})\right]
h(x^)=[h1(x^),…,hL(x^)]和
σ
2
(
x
^
)
=
σ
2
+
h
(
x
^
)
T
⋅
v
⋅
h
(
x
^
)
T
\sigma^{2}(\hat{\boldsymbol{x}})=\sigma^{2}+h(\hat{\boldsymbol{x}})^{T} \cdot \boldsymbol{v} \cdot h(\hat{\boldsymbol{x}})^{T}
σ2(x^)=σ2+h(x^)T⋅v⋅h(x^)T。等式\ref{equation:20}页遵循具有平均值和方差的高斯分布,如下所示:
m
^
=
h
(
x
^
)
⋅
m
\hat{m}=h(\hat{\boldsymbol{x}}) \cdot m
m^=h(x^)⋅m
σ
2
^
=
σ
2
+
h
(
x
^
)
⋅
v
⋅
h
(
x
^
)
T
\hat{\sigma^{2}}=\sigma^{2}+h(\hat{\boldsymbol{x}}) \cdot \boldsymbol{v} \cdot \boldsymbol{h}(\hat{\boldsymbol{x}})^{T}
σ2^=σ2+h(x^)⋅v⋅h(x^)T
最后,使用 Sigmoid 函数将类标签
y
y
y 映射到 (0,1)。 如果
y
>
0.5
y > 0.5
y>0.5,这个包的标签是正的。 否则为负。