论文地址:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8242668&tag=1
已有工作:
本文符号表如下:
符号 | 含义 |
---|---|
B \mathcal{B} B | 训练集 |
n n n | 包数量 |
B i B_i Bi | 包 |
y i ∈ Y = { − 1 , + 1 } y_i \in \mathcal{Y} = \{ -1, +1 \} yi∈Y={−1,+1} | 包标签 |
X \mathcal{X} X | 实例空间 |
p p p | 实例空间大小 |
x i , j x_{i, j} xi,j | 包中实例 |
P ⊆ X \mathcal{P} \subseteq \mathcal{X} P⊆X | 判别实例池 (Discriminative Instance Pool, DIP) |
m m m | P \mathcal{P} P大小 |
B i ϕ = [ s ( B i , x 1 ϕ ) , ⋯ , s ( B i , x m ϕ ) ] , w h e r e x k ϕ ∈ P B_i^{\phi} = [ s(B_i, x_1^{\phi}), \cdots, s(B_i, x_m^{\phi})], {\rm where} x_k^{\phi} \in \mathcal{P} Biϕ=[s(Bi,x1ϕ),⋯,s(Bi,xmϕ)],wherexkϕ∈P | 包映射 |
s ( B i , x k ϕ ) s(B_i, x_k^{\phi}) s(Bi,xkϕ) | 包与实例 x k ϕ x_k^{\phi} xkϕ的相似度 |
算法大致步骤如下:
给定大小为 n n n的数据集 B \mathcal{B} B,汇聚 B \mathcal{B} B中的所有实例构建大小为 p p p的实例空间 X \mathcal{X} X。优化目标为:使用对角矩阵 I P \mathcal{I}_{\mathcal{P}} IP找到 P ⊆ X \mathcal{P} \subseteq \mathcal{X} P⊆X,其中 d i a g ( I P ) = d ( P ) diag (\mathcal{I}_{\mathcal{P}}) = \mathbf{d} (\mathcal{P}) diag(IP)=d(P),并且:
d ( P ) i = { 1 , x i ∈ P , 0 , o t h e r w i s e . (1*) \mathbf{d} (\mathcal{P})_i = \begin{cases} 1, \qquad x_i \in \mathcal{P},\\ 0, \qquad \mathrm{otherwise}. \end{cases} \tag{1*} d(P)i={1,xi∈P,0,otherwise.(1*)
令 J ( P ) \mathcal{J} (\mathcal{P}) J(P)表示一个实例评价函数,则对 P \mathcal{P} P的评估如下:
P ∗ = arg max P ⊆ X J ( P ) s . t . ∣ P ∣ = m . (1) \mathcal{P}_* = \arg \max_{\mathcal{P} \subseteq \mathcal{X}} \mathcal{J} (\mathcal{P}) \qquad s.t. \mid \mathcal{P} \mid = m. \tag{1} P∗=argP⊆XmaxJ(P)s.t.∣P∣=m.(1)式1指出,所选择的时候应该在新的映射空间具有最大的判别力。
为了使得DIP具有最大的判别力,首先提出DIP优化的两大准则:
因此,DIP评价函数如下:
J ( P ) = 1 2 ∑ i , j K P ( B i , B j ) Q i , j , (2) \mathcal{J}(\mathcal{P})=\frac{1}{2} \sum_{i, j} K_{\mathcal{P}}\left(B_{i}, B_{j}\right) Q_{i, j}, \tag{2} J(P)=21i,j∑KP(Bi,Bj)Qi,j,(2)其中
K P ( B i , B j ) = ∥ I P B i ϕ x − I P B j ϕ x ∥ 2 , (3) K_{\mathcal{P}}\left(B_{i}, B_{j}\right)=\left\|\mathcal{I}_{\mathcal{P}} B_{i}^{\phi_{x}}-\mathcal{I}_{\mathcal{P}} B_{j}^{\phi_{x}}\right\|^{2}, \tag{3} KP(Bi,Bj)=∥∥∥IPBiϕx−IPBjϕx∥∥∥2,(3)其中 B i ϕ x B_{i}^{\phi_{x}} Biϕx与 B i ϕ B_{i}^{\phi} Biϕ类似,不同在于使用所有实例作为DIP; Q Q Q矩阵的元素定义如下:
Q i , j = { − 1 / ∣ A ∣ , y i y j = 1 ; 1 / ∣ B ∣ , y i y j = − 1 , (4) Q_{i, j} = \begin{cases} -1 / \mid A \mid, y_i y_j = 1;\\ 1 / \mid B \mid, y_i y_j = -1, \end{cases} \tag{4} Qi,j={−1/∣A∣,yiyj=1;1/∣B∣,yiyj=−1,(4)其中 A = { ( i , j ) ∣ y i y j = 1 } A = \{ (i, j) \mid y_i y_j = 1 \} A={(i,j)∣yiyj=1}表示满足第一准则的成对约束集; B = { ( i , j ) ∣ y i y j = − 1 } B = \{ (i, j) \mid y_i y_j = -1 \} B={(i,j)∣yiyj=−1}与此类似。根据式3、4,将式2重写为 (具体推导看原文):
J ( P ) = ∑ x k ϕ ∈ P ϕ k T L ϕ k , (5) \mathcal{J} (\mathcal{P}) = \sum_{x_k^{\phi} \in \mathcal{P}} \phi_k^{\rm T} L \phi_k, \tag{5} J(P)=xkϕ∈P∑ϕkTLϕk,(5)其中 [ B 1 ϕ x , ⋯ , B n ϕ x ] = [ ϕ 1 , ⋯ , ϕ p ] ⊤ \left[B_{1}^{\phi_{x}}, \cdots, B_{n}^{\phi_{x}}\right]=\left[\phi_{1}, \cdots, \phi_{p}\right]^{\top} [B1ϕx,⋯,Bnϕx]=[ϕ1,⋯,ϕp]⊤; L L L是一个源自 Q Q Q的拉普拉斯矩阵,满足 L = [ L i , j ] n × n = D − Q L = [L_{i, j}]^{n \times n} = D - Q L=[Li,j]n×n=D−Q; D D D是一个对角矩阵,且 D i , i = ∑ j Q i , j D_{i, i} = \sum_j Q_{i, j} Di,i=∑jQi,j。
令 f ( x k ϕ , L ) = ϕ k T L ϕ k f (x_k^{\phi}, L) = \phi_k^{\rm T} L \phi_k f(xkϕ,L)=ϕkTLϕk,则式1可以转变为:
P ∗ = max P ⊆ X ∑ x k ϕ ∈ P f ( x k ϕ , L ) s . t . ∣ P ∣ = m . (6) \mathcal{P}_* = \max_{\mathcal{P} \subseteq \mathcal{X}} \sum_{x_k^{\phi} \in \mathcal{P}} f (x_k^{\phi}, L)\qquad s.t. \mid \mathcal{P} \mid = m. \tag{6} P∗=P⊆Xmaxxkϕ∈P∑f(xkϕ,L)s.t.∣P∣=m.(6)为了找到最优的 P ∗ \mathcal{P}_* P∗,可以计算所有的 f ( x k ϕ , L ) f (x_k^{\phi}, L) f(xkϕ,L),再取得前 m m m个作为DIP即可。
具体的DIP优化过程如下:
算法1: DIP优化算法
输入:
训练集 B \mathcal{B} B、实例空间 X \mathcal{X} X、DIP池大小 m m m;
输出:
P = { p 1 , ⋯ , p m } \mathcal{P} = \{ p_1, \cdots, p_m \} P={p1,⋯,pm};
1: P = ∅ , τ = 0 \mathcal{P} = \emptyset, \tau = 0 P=∅,τ=0
2:使用所有包标签、式4获取矩阵 Q Q Q
3:获取矩阵 L L L
4:for x k ∈ X x_k \in \mathcal{X} xk∈X do
5: 计算分数 f ( x k , L ) f (x_k, L) f(xk,L)
6: if ∣ P ≤ m \mid \mathcal{P} \leq m ∣P≤m or f ( x k , L ) > τ f (x_k, L) > \tau f(xk,L)>τ, then
7: P ← P ∪ x k \mathcal{P} \leftarrow \mathcal{P} \cup x_k P←P∪xk;
8: if ∣ P > m \mid \mathcal{P} > m ∣P>m, then
9: P ← P / arg min x k ∈ P f ( x k , L ) \mathcal{P} \leftarrow \mathcal{P} / \arg \min_{x_k \in \mathcal{P}} f(x_k, L) P←P/argminxk∈Pf(xk,L);
10: τ = min x k ∈ P f ( x k , L ) \tau = \min_{x_k \in \mathcal{P}} f(x_k, L) τ=minxk∈Pf(xk,L);
11:end for
12:return P \mathcal{P} P;
如上,DIP优化的关键步骤为计算矩阵 L L L以及每一个实例的得分 f ( x k , L ) f (x_k, L) f(xk,L),并找出得分最高的 m m m个实例。当然,计算得分需要知道 ϕ i = B i ϕ x = [ s ( B i , x 1 ϕ x ) , ⋯ , s ( B i , x m ϕ x ) ] \phi_i = B_i^{\phi_x} = [ s(B_i, x_1^{\phi_x}), \cdots, s(B_i, x_m^{\phi_x})] ϕi=Biϕx=[s(Bi,x1ϕx),⋯,s(Bi,xmϕx)],具体的,需要知道如何计算 s ( B i , x k ϕ x ) s(B_i, x_k^{\phi_x}) s(Bi,xkϕx)。
映射的关键在于计算 s ( B i , x k ϕ x ) s(B_i, x_k^{\phi_x}) s(Bi,xkϕx),文中的定义如下:
s ( B i , x k ϕ ) = max x i , j ∈ B i exp ( − ∥ x i , j − x k ϕ ∥ 2 / σ 2 ) s\left(B_{i}, x_{k}^{\phi}\right)=\max _{x_{i, j} \in B_{i}} \exp \left(-\left\|x_{i, j}-x_{k}^{\phi}\right\|^{2} / \sigma^{2}\right) s(Bi,xkϕ)=xi,j∈Bimaxexp(−∥∥∥xi,j−xkϕ∥∥∥2/σ2)其中 x i , j x_{i, j} xi,j是包 B i B_i Bi中的第 j j j个实例, σ \sigma σ是一个预设参数。映射结束之后,可以使用任意的分类算法进行学习。以下描述了两种判别包映射方法。
所有的实例均计算分数,并选取 m m m个高分实例。
对每个包种的实例计算分数,并计算最高判别得分的一个实例加入DIP。