引入
学前娱乐
老公出差在外,晚上给老婆来了一个查岗电话,结果听到老婆那边有男人的声音,老公问:怎么你那边有男人?老婆说:隔壁王叔拿保鲜袋,过来装酸奶!突然老婆啊的一声。老公问:老婆怎么了?老婆说:天…气太……太冷了,我正给你做……嗯~做帽子呢~!我回答到老婆对我真好!!
摘要
一个好的摘要,就是看了之后就能明白这篇文章是拿来干啥的。
为了提高多示例学习,在交替优化框架中通过以迭代方式将实例选择和分类器学习的步骤交织在一起的方式来做到这一点,以确保收敛。初始实例选择是通过在负实例上使用一个简单但有效的内核密度估计器来实现的。
算法过程
训练
1)在训练样本中进行实例的选择,通过对负实例的分布进行建模并从每个正包中选择最负的实例来实现,这样做可以得到一组实例原型 Instance Prototypes (IPs),用
x
i
∗
(
t
)
x_{i}^{\ast(t)}
xi∗(t) 表示;他们中的每一个实例都是从正包中选择的。
2)然后把多示例转化为单示例,用一种映射方法来映射,
z
i
z_i
zi 代表映射后的第
i
i
i 个包,
s
(
B
i
,
x
j
∗
(
t
)
)
s(B_i,x_j^{\ast(t)})
s(Bi,xj∗(t)) 就表示他的第
j
j
j个特征向量(是包与实例原型的一个相似度),关于这个
s
(
B
i
,
x
j
∗
(
t
)
)
s(B_i,x_j^{\ast(t)})
s(Bi,xj∗(t)),后面进行解答;
3)然后用线性核 SVM 训练这些映射后的包向量,基于训练结果,更新和重新选择 IPs,重复 1-3 序列直到收敛。
测试
测试就很简单了,直接用训练过程的实例原型来进行函数映射,得到向量,用SVM 模型预测。
实例选择和分类器学习
A . A. A. 包级特征表示
最小 Hausdorff 距离来计算包与实例的距离
d
(
B
i
,
x
)
=
min
x
i
,
j
∈
B
i
∥
x
i
,
j
−
x
∥
2
d(B_i,x) = \min_{x_{i,j} \in B_i}{\| x_{i,j}-x\|^2}
d(Bi,x)=minxi,j∈Bi∥xi,j−x∥2 ,因此,包与实例的相似度
s
(
B
i
,
x
j
∗
(
t
)
)
=
exp
(
−
λ
d
(
B
i
,
x
)
)
=
max
x
i
,
j
∈
B
i
(
exp
−
γ
∥
x
i
,
j
−
x
∥
2
)
(1)
\tag{1} s(B_i,x_j^{\ast(t)}) = \exp{(-\lambda d(B_i,x))} = \max_{x_{i,j} \in B_i}{(\exp{-\gamma\| x_{i,j}-x\|^2})}
s(Bi,xj∗(t))=exp(−λd(Bi,x))=xi,j∈Bimax(exp−γ∥xi,j−x∥2)(1)
这里对正负包的相似度不一样,正包的相似度值更大,负包的相似度值更小
B . B. B. 初始化实例原型
1) 在训练集中选择实际存在的实例来构建相似度,从每个训练包中选取一个单独的实例来充当整个 IPs 的一个子集,显然,我们要在子集中用真正的正负实例来计算判别特征图;
2) 在 DD 中直接选取正实例,对负包中所有的实例用 KDE 来建立模型
f
(
x
)
=
1
Z
∑
i
m
i
∑
y
i
=
−
1
∑
j
=
1
m
i
exp
(
−
β
∥
x
−
x
i
,
j
−
∥
)
(2)
\tag{2} f(x)=\frac{1}{Z \sum_{i} m_{i}} \sum_{y_{i}=-1} \sum_{j=1}^{m_{i}} \exp \left(-\beta\left\|x-x_{i, j}^{-}\right\|\right)
f(x)=Z∑imi1yi=−1∑j=1∑miexp(−β∥∥x−xi,j−∥∥)(2)
x
i
,
j
−
x_{i,j}^{-}
xi,j−是第
i
i
i 个负包中的第
j
j
j 个实例,
Z
Z
Z 是一个常数(实验中被忽视)代表归一化因子,这个公式定义了负包的归一化概率密度函数.
3)然后每一个包中实例根据概率密度函数都可以计算得到一个密度值,在正包中选取密度值最小的实例来作为实例原型,从负包中选取密度值最大的实例来作为实例原型 。
C . C. C. 分类
1)根据初始化原型,能够得到一组实例原型
{
x
1
,
⋯
,
x
n
}
\{x_1,\cdots,x_n\}
{x1,⋯,xn}
x
i
x_i
xi 就是每个包选出来的实例原型;
2)通过公式(1),每一个包可以映射得到这么一个向量
z
i
=
[
s
(
B
i
,
x
1
)
,
⋯
,
s
(
B
i
,
x
n
)
]
(3)
\tag{3} \boldsymbol{z}_i=[s(B_i,x_1), \cdots, s(B_i,x_n)]
zi=[s(Bi,x1),⋯,s(Bi,xn)](3)
3)然后用线性 SVM 训练得到模型
D . D. D. 实例更新
通过上一步,得到了一个包级别的 SVM 分类器,然后可以验证选择的 IPs,并更新这些IPs,那么怎么来更新呢?可以将其视为离散变量的优化问题,可以使用类似于协调下降的方法有效地解决离散变量;
1)定义一组辅助变量
ϕ
i
\phi_i
ϕi,每一个包都有一个辅助变量,
ϕ
i
\phi_i
ϕi 的取值范围在
{
1
,
⋯
,
m
i
}
\{1, \cdots,m_i\}
{1,⋯,mi} 之中
ϕ
i
=
j
\phi_i = j
ϕi=j 表示第
i
i
i 个包中的第
j
j
j个实例被选中当实例原型;
2)利用这些成分,我们现在根据变量
ϕ
i
\phi_i
ϕi 和分类器权重
w
w
w 定义迭代框架下的优化问题:
min
w
,
ϕ
Q
(
w
,
ϕ
)
=
1
2
∥
w
∥
2
+
C
∑
i
ℓ
(
y
i
,
w
T
g
(
B
i
,
ϕ
)
)
(4)
\tag{4} \min _{\mathbf{w}, \phi} Q(\mathbf{w}, \phi) =\frac{1}{2}\|\mathbf{w}\|^{2}+C \sum_{i} \ell\left(y_{i}, \mathbf{w}^{T} g\left(B_{i}, \phi\right)\right)
w,ϕminQ(w,ϕ)=21∥w∥2+Ci∑ℓ(yi,wTg(Bi,ϕ))(4)
g
(
B
i
,
ϕ
)
=
[
s
(
B
i
,
x
1
,
ϕ
1
)
,
…
,
s
(
B
i
,
x
n
,
ϕ
n
)
]
(5)
\tag{5} g\left(B_{i}, \phi\right) =\left[s\left(B_{i}, \mathbf{x}_{1, \phi_{1}}\right), \ldots, s\left(B_{i}, \mathbf{x}_{n, \phi_{n}}\right)\right]
g(Bi,ϕ)=[s(Bi,x1,ϕ1),…,s(Bi,xn,ϕn)](5)
ℓ
(
y
i
,
f
i
)
\ell(y_i,f_i)
ℓ(yi,fi) 是公式(2)的损失函数,
g
(
B
i
,
ϕ
)
g(B_i,\phi)
g(Bi,ϕ) 在给定原型索引
ϕ
=
{
ϕ
1
,
⋯
,
ϕ
n
}
\phi =\{\phi_1, \cdots, \phi_n\}
ϕ={ϕ1,⋯,ϕn}的情况下指定第i个袋Bi的袋级特征映射,给定训练器SVM一个权重
w
w
w,就能够更新每个包中选择的实例原型 IP;
3)我们用迭代的方式来更新每一个实例
ϕ
1
(
t
+
1
)
=
arg
min
j
=
1
m
1
∑
i
ℓ
(
w
T
g
(
B
i
,
{
j
,
…
,
ϕ
n
(
t
)
}
)
,
y
1
)
⋯
ϕ
i
(
t
+
1
)
=
arg
min
j
=
1
m
i
∑
i
ℓ
(
w
T
g
(
B
i
,
{
…
,
ϕ
i
−
1
(
t
)
,
j
,
ϕ
i
+
1
(
t
)
,
…
}
)
,
y
i
)
⋯
ϕ
n
(
t
+
1
)
=
arg
min
j
=
1
∑
i
ℓ
(
w
T
g
(
B
i
,
{
ϕ
1
(
t
)
,
…
,
j
}
)
,
y
n
)
(6)
\tag{6} \phi_{1}^{(t+1)} =\arg \min _{j=1}^{m_{1}} \sum_{i} \ell\left(\mathbf{w}^{T} g\left(B_{i},\left\{j, \ldots, \phi_{n}^{(t)}\right\}\right), y_{1}\right) \\ \cdots \\ \phi_{i}^{(t+1)} =\arg \min _{j=1}^{m_{i}} \sum_{i} \ell\left(\mathbf{w}^{T} g\left(B_{i},\left\{\ldots, \phi_{i-1}^{(t)}, j, \phi_{i+1}^{(t)}, \ldots\right\}\right), y_{i}\right) \\ \cdots \\ \phi_{n}^{(t+1)} =\arg \min _{j=1} \sum_{i} \ell\left(\mathbf{w}^{T} g\left(B_{i},\left\{\phi_{1}^{(t)}, \ldots, j\right\}\right), y_{n}\right)
ϕ1(t+1)=argj=1minm1i∑ℓ(wTg(Bi,{j,…,ϕn(t)}),y1)⋯ϕi(t+1)=argj=1minmii∑ℓ(wTg(Bi,{…,ϕi−1(t),j,ϕi+1(t),…}),yi)⋯ϕn(t+1)=argj=1mini∑ℓ(wTg(Bi,{ϕ1(t),…,j}),yn)(6)
ϕ
i
(
t
)
\phi_i^{(t)}
ϕi(t) 和
ϕ
i
(
t
+
1
)
\phi_i^{(t+1)}
ϕi(t+1) 分别表示第
i
i
i 个包的旧新实例原型的下标。