IJCAI18 IFKDA: Fast Factorization-Free Kernel Learning for Unlabeled Chunk Data Streams


Alt

亮点:使用核技巧,构建高效特征空间

0 摘要

数据流分析旨在从连续到来的样本中提取用于分类的判别信息。在以高效且稳定的方式更新模型的同时检测新数据极具挑战性,尤其是对于块数据。本文提出了一种**快速免分解的核学习方法**,在一个框架中统一了无标注块数据流的新颖性检测和增量学习。所提出的方法通过求解**核空间中的线性系统**,从已知的**类中心构造联合再生核Hilbert空间。自然,可以通过单个决策模型对未标注数据进行检测和多分类。然后,将样本投影到判别特征空间只需要计算两个小尺寸核矩阵的乘积,而不需要诸如QR分解或奇异值分解之类的耗时因子分解。此外,新类的插入**可以视为向现有特征空间添加新的正交基,从而产生快速且稳定的更新方案。对现实世界数据集的理论分析和实验验证都表明,所提出的方法学习块数据流,其计算成本显著降低,并且具有与现有技术相当或更高的精度。


1 引言

当今数据分析的挑战之一是处理流和快速移动的输入数据,例如数字监视器图像,社交媒体反馈,营销和财务数据。 在实际应用中,这些数据可能来自几个没有标签的终端,同时形成块数据流。 特别地,一大块数据可以包含属于已见/已知类和/或未见/新颖类的一些新示例。 因此,我们必须首先检测新颖性,然后将所有新信息并入现有模型。 尽管数据流的新颖性检测和增量学习在过去几年受到越来越多的关注[Wang 等,2016; Faria等,2016; Lu等,2017],同时检测新颖性和学习块数据流的高效稳定的解决方案仍然很少见。

最近,基于核零空间的判别分析(KNDA)[Bodesheim等,2013]和增量KNDA(IKNDA)[Liu et al。,2017]宣告在多分类和新颖性检测任务中它们的性能优于分类器SVDD [Tax and Duin,2004]和GP-Mean / GP-Var [Kemmler等,2010],以及深度方法(例如,Alexnet)[Krizhevsky等,2012]。 KNDA通过消除再生核Hilbert null(RKHN)空间中的类内方差来学习一个决策模型,该空间为高度复杂和非线性的分布数据提供优雅的判别性。
不幸的是,大核矩阵的特征值分解使得KNDA难以扩展。 IKNDA提供更新方案以更新基于奇异值分解(SVD)零空间。但是,其增量更新机制对于大型数据集上的在线学习任务效率不高。此外,核方法还遭受大型和/或高维数据集上的核矩阵的高内存成本。

在本工作中,我们提出了一种有效的核学习方法,在一个框架中统一了未标注的块数据流的新颖性检测和增量学习。具体来说,我们的贡献有两方面:

  • 我们提出了一种有效的面分解批量核判别分析(FKDA)。 FKDA通过在核空间中求解线性系统[Chu et al。,2015],从k个已知的类中心构造一个k维RKH空间。到特征空间的映射(投影)就是两个小核矩阵的內积,因此FKDA的计算复杂度显著低于其他核DA方法,特别是对于大规模场景。此外,每个类由RKH空间中具有确定的新颖性阈值的单个点表示,这也适合于多类新颖性检测。

  • 我们为FKDA开发了一种快速稳定的增量方案,称为IFKDA。在IFKDA中,通过在原始特征空间中添加新的正交基而不干扰已知类的分布来向已学习的模型插入新类,这使得演化更加稳健和稳定。此外,IFKDA在在线学习场景中非常有效,只需要重新计算一小部分关键核矩阵


2 判别分析(DA)

在本节中,我们简要概述线性判别分析和核判别分析。

给定一个包含 k k k个簇的数据矩阵, X = { X 1 , X 2 , . . . , X k } ∈ R d × n X = \{ {X_1, X_2, ..., X_k} \} \in R^{d \times n} X={X1,X2,...,Xk}Rd×n,其中 X i ∈ R d × n i X_i \in R^{d \times n_i} XiRd×ni, n = ∑ i = 1 k n i n = \sum _{i=1} ^k n_i n=i=1kni。广为人知的Foley-Sammon变换[Chen等,2000]通过最大化以下标准来估计低维子空间到判别特征:

G ∗ : arg ⁡ max ⁡ G t r a c e ( ( G T S t G ) − 1 ( G T S b G ) ) , (1) G^* : \mathop{\arg\max}_G trace((G^TS_tG)^{-1}(G^TS_bG)), \tag{1} G:argmaxGtrace((GTStG)1(GTSbG)),(1)

其中, G ∈ R d × l G \in R^{d \times l} GRd×l是一个转换矩阵,将 d d d 维空间的数据投影到 l l l 维子空间, S b S_b Sb 是类间散列矩阵, S t S_t St是全局散列矩阵( S t = S w + S b S_t = S_w + S_b St=Sw+Sb,其中 S w S_w Sw是类内散列矩阵)。

判别性学习的一个常见问题是小样本(SSS)问题,即样本个数n远远小于特征维数d,导致 S w S_w Sw一般是奇异的。一个流行的扩展方法是用伪逆替换经典模型中的逆,产生了下面的优化模型,[Huang等,2012],

G ∗ : arg ⁡ max ⁡ G t r a c e ( ( G T S t G ) † ( G T S b G ) ) , (2) G^* : \mathop{\arg\max}_G trace((G^TS_tG)^{\dagger}(G^TS_bG)), \tag{2} G:argmaxGtrace((GTStG)(GTSbG)),(2)

其中, ( ⋅ ) † (·)^{\dagger} ()表示 ( ⋅ ) (·) ()的伪逆。而任何转换矩阵满足形式

t r a c e ( ( G T S t G ) † ( G T S b G ) ) = k − 1 , (3) trace((G^TS_tG)^{\dagger}(G^TS_bG)) = k - 1, \tag{3} trace((GTStG)(GTSbG))=k1,(3)

应该是(2)的一个最优解 [Chu等,2015]。

在[Chu等,2015]中,Chu等针对SSS问题提出一个更有效的方法,通过 X X X的经济QR分解来求解(4)中的一个线性系统。

X T G = E (4) X^T G = E \tag{4} XTG=E(4)

其中, G ∈ R d × k G \in R ^ {d \times k} GRd×k E E E是一个 n × k n \times k n×k的矩阵,第 i i i列是 ( 0 , … , e i , … , 0 ) T (0, …, e_i, …, 0)^T (0,,ei,,0)T,其中 e i = [ 1 … 1 ] T ∈ R n i × 1 e_i = [1…1]^T \in R^{n_i \times 1} ei=[11]TRni×1

假设训练样本是线性无关的,带有最小化2范数的(4)的解是

G = Q R − T E (5) G = QR^{-T}E \tag{5} G=QRTE(5)

如果考虑带核技巧的DA,我们应该进一步用一个隐含映射函数 Φ : x j I → ϕ ( x j i ) \Phi : x_j^I \rightarrow \phi(x_j^i) Φ:xjIϕ(xji) X X X映射到一个特征空间 H H H,其中 ϕ ( x j i ) ∈ H \phi(x_j^i) \in H ϕ(xji)H, x j i x_j^i xji表示第 i i i类的第 j j j个元素。并且,我们有

X Φ = Φ ( X ) = [ ϕ ( x 1 ) , … , ϕ ( x n ) ] . (6) X^\Phi = \Phi(X) = [\phi(x_1), …, \phi(x_n)]. \tag{6} XΦ=Φ(X)=[ϕ(x1),,ϕ(xn)].(6)

因此,(2)中的准则扩展到

G ∗ Φ : arg ⁡ max ⁡ G Φ t r a c e ( ( ( G Φ ) T S t Φ G Φ ) † ( ( G Φ ) T S b Φ G Φ ) ) . (7) G^{*\Phi} : \mathop{\arg\max}_{G^\Phi} trace(((G^\Phi)^TS_t^\Phi {G^\Phi})^{\dagger}((G^\Phi)^TS_b^\Phi {G^\Phi})). \tag{7} GΦ:argmaxGΦtrace(((GΦ)TStΦGΦ)((GΦ)TSbΦGΦ)).(7)

而任何 G Φ G^\Phi GΦ满足形式

t r a c e ( ( ( G Φ ) T S t Φ G Φ ) † ( ( G Φ ) T S b Φ G Φ ) ) = k − 1 , (8) trace(((G^\Phi)^TS_t^\Phi {G^\Phi})^{\dagger}((G^\Phi)^TS_b^\Phi {G^\Phi})) = k - 1, \tag{8} trace(((GΦ)TStΦGΦ)((GΦ)TSbΦGΦ))=k1,(8)

是优化问题(7)的一个最优解。


3 无因子分解KDA(FKDA)

在本节中,开发了一种快速免分解批量核判别分析方法(FKDA)。我们首先将(4)中的线性系统引入核空间。

定理1:假设 X Φ X^\Phi XΦ是线性无关的,并且(9)中的线性系统是可解的,则优化问题(7)的解由 G Φ G^\Phi GΦ给出。

( X Φ ) T G Φ = E . (9) (X^\Phi)^T G^\Phi = E. \tag{9} (XΦ)TGΦ=E.(9)

证明:见附录。

考虑到在AKDA / QR[Xiong等,2005]使用类中心作为输入在存储和计算上的优势,我们将它们引入(9)并且有

( C Φ ) T G Φ = M T ( X Φ ) T G Φ = M T E ; (10) (C^\Phi)^TG^\Phi =M^T (X^\Phi)^TG^\Phi =M^TE; \tag{10} (CΦ)TGΦ=MT(XΦ)TGΦ=MTE;(10)

其中, C Φ = X Φ M C^\Phi = X^\Phi M CΦ=XΦM是核空间的一个平均中心矩阵,而 M M M是一个 n × k n \times k n×k的矩阵,第 i i i列是 ( 0 , … , e i / n i , … , 0 ) T (0, …, e_i/n_i, …, 0)^T (0,,ei/ni,,0)T。因为

M T E = [ 1 n 1 e 1 T ⋱ 1 n k e k T ] [ e 1 ⋱ e k ] = [ 1 n 1 e 1 T e 1 ⋱ 1 n k e k T e k ] = I , (11) \begin{split} M^T E &= {\left[ \begin{array}{ccc} \frac 1 {n_1} e_1^T & & \\ & \ddots & \\ & & \frac 1 {n_k} e_k^T \end{array} \right ]} {\left[ \begin{array}{ccc} e_1 & & \\ & \ddots & \\ & & e_k \end{array}\right ]} \\ &= {\left[ \begin{array}{ccc} \frac 1 {n_1} e_1^Te_1 & & \\ & \ddots & \\ & & \frac 1 {n_k} e_k^Te_k \end{array} \right ]} =I, \end{split} \tag {11} MTE= n11e1Tnk1ekT e1ek = n11e1Te1nk1ekTek =I,(11)

其中 I ∈ R k × k I \in R^{k \times k} IRk×k 是一个单位矩阵,然后

( C Φ ) T G Φ = I . (12) (C^\Phi)^T G^\Phi = I. \tag{12} (CΦ)TGΦ=I.(12)

对于最广泛使用的高斯核函数 e x p ( − ∣ ∣ x − y ∣ ∣ 2 / σ ) exp(-||x-y||^2/ \sigma) exp(∣∣xy2/σ)的一个关键观察是:对于相对较大的 σ \sigma σ,原始空间中每个类的中心将被投影到非常接近核空间中每个类的中心 [Xiong等,2005]。 所以我们采用这个想法来计算原始空间中的中心矩阵 C o C_o Co,然后我们通过下式近似核中心矩阵 C n Φ C^n\Phi CnΦ

C Φ ≈ [ ϕ ( c 1 ) , … , ϕ ( c k ) ] ( ≡ C o Φ ) , (13) C^\Phi \approx [\phi(c_1), …, \phi(c_k)](\equiv C_o^\Phi), \tag {13} CΦ[ϕ(c1),,ϕ(ck)](CoΦ),(13)

其中 c i c_i ci表示原始空间中类别 X i X_i Xi的中心矩阵。因此,我们有

( C o Φ ) T G Φ = I . (14) (C_o^\Phi)^T G^\Phi = I. \tag {14} (CoΦ)TGΦ=I.(14)

假设类别中心是线性独立的,我们可以利用$C_o^\Phi = Q^\Phi R^\Phi 的 Q R 分解来求解 的QR分解来求解 QR分解来求解 G^\Phi ,其中 ,其中 ,其中 Q^\Phi 是列正交矩阵, 是列正交矩阵, 是列正交矩阵, R^\Phi $是非奇异矩阵。然后我们有

G Φ = Q Φ ( R Φ ) − T . (15) G^\Phi = Q^\Phi(R^\Phi)^{-T}. \tag {15} GΦ=QΦ(RΦ)T.(15)

定义 K o = ( C o Φ ) T C o Φ ∈ R k × k K_o = (C_o^\Phi)^TC_o^\Phi \in R^{k \times k} Ko=(CoΦ)TCoΦRk×k
因为 ( R Φ ) T R Φ = ( R Φ ) T ( Q Φ ) T Q Φ R Φ = ( C o Φ ) T ( C o Φ ) (R^\Phi)^TR^\Phi = (R^\Phi)^T (Q^\Phi)^T Q^\Phi R^\Phi = (C_o^\Phi)^T(C_o^\Phi) (RΦ)TRΦ=(RΦ)T(QΦ)TQΦRΦ=(CoΦ)T(CoΦ),从而

G Φ = Q Φ R Φ ( R Φ ) − 1 ( R Φ ) − T = C o Φ K o − 1 . (16) G^\Phi = Q^\Phi R^\Phi (R^\Phi)^{-1}(R^\Phi)^{-T} = C_o^\Phi K_o^{-1}. \tag {16} GΦ=QΦRΦ(RΦ)1(RΦ)T=CoΦKo1.(16)

**结果:**给定一个样本 z z z,我们能够通过(17)中的 ( G Φ ) T ϕ ( z ) (G^\Phi)^T\phi(z) (GΦ)Tϕ(z)获得它在k维RKH空间中的投影。

( G Φ ) T ϕ ( z ) = ( C o Φ K o − 1 ) T ϕ ( z ) = K o − 1 K c z , (17) (G^\Phi)^T\phi(z) = (C_o^\Phi K_o^{-1})^T \phi(z) = K_o^{-1} K_{cz}, \tag {17} (GΦ)Tϕ(z)=(CoΦKo1)Tϕ(z)=Ko1Kcz,(17)

其中,$ K_{cz} \in R^{k \times 1}, K_{cz}(i) = <\phi(c_i), \phi(z)>$.

显然,没有必要真正计算 C o Φ C_o^\Phi CoΦ的QR分解。

FKDA的伪代码如下。

-----------------------------------------------------------------------------
算法1 FKDA-批量方法
-----------------------------------------------------------------------------
输入: 数据矩阵 X X X,非线性映射 Φ \Phi Φ,测试用例 z z z
输出: z的投影特征
        阶段1:
1: 计算中心矩阵: C o C_o Co.
2: 构建和矩阵: K o = ( C o Φ ) T ( C o Φ ) K_o = (C_o^\Phi)^T (C_o^\Phi) Ko=(CoΦ)T(CoΦ).
        阶段2:
3: 构建核向量: K c z = < ϕ ( C o Φ ) , ϕ ( z ) > K_{cz} = <\phi(C_o^\Phi), \phi(z)> Kcz=<ϕ(CoΦ),ϕ(z)>.
4: 计算投影: ( G Φ ) T z Φ = K o − 1 K c z (G^\Phi)^T z^\Phi = K_o^{-1} K_{cz} (GΦ)TzΦ=Ko1Kcz
-----------------------------------------------------------------------------

接下来,表1给出了FKDA和算法AKDA/QR[Xiong等,2005],SRKDA [Cai等,2007],KNDA [Bodesheim等,2013],KPE [Min等],LDA/QR [Chu等,2015]的空间和时间复杂度的比较。由于FKDA给出了隐式变换矩阵 G Φ G^Φ GΦ,我们将投影步骤加入到其他方法中以保证公平性。我们还与线性判别分析方法(即LDA/QR)进行比较,因此在与所有核方法的比较中添加了构造核矩阵的空间和时间复杂度。

AKDA/QR和FKDA都使用中心矩阵作为输入,因此构建核矩阵所需的空间和时间成本比其他核判别分析方法少。在我们的实现中,构造中心矩阵的成本**[注:空间复杂度]**低至 O ( d n ) O(dn) O(dn)。尽管,FKDA必须用 O ( k 3 ) O(k^3) O(k3)的复杂度来计算 K o ∈ R k × k K_o \in R^{k×k} KoRk×k的逆,但是其他核判别分析方法也有这样的计算,例如,尽管AKDA/QR采用QR分解,也需要相同规模的四次矩阵求逆计算,KNDA必须计算一个矩阵的逆,计算复杂度为 O ( n 3 ) O(n^3) O(n3)的。此外,FKDA的总计算成本(包括构造核矩阵)不超过LDA/QR,特别是当 k k k远小于 n n n时。此外,LDA/QR需要计算 X X X Q Q Q矩阵( d > > n d >> n d>>n)。相比之下,FKDA不需要分解,并且可以在( d > > n > k d >> n > k d>>n>k)和( n > > d n >> d n>>d> k两者上都表现良好。 结果将第5节中展示。


4 块数据流的在线学习

在线阶段,如图1所示,由三个操作组成:检测新颖性,对新样本进行分类,演化决策模型。 我们将在本节详细介绍它们。

在这里插入图片描述
图1:未标注块数据流的在线学习框架。 FKDA从 k k k个已知类中心学习 k k k-RHK空间,并且每个已知类中心的投影固定在每个轴上的单位位置,例如 X 1 X_1 X1(狗)的类中心 C 1 C_1 C1 X 2 X_2 X2(Rabit)的类中心 C 2 C_2 C2。 具有确定性边界阈值的决策模型能够检测和判别新的或/和新颖的示例。 该模型随着集中的新数据而发展。 特别地,插入新类别,例如 X 3 X_3 X3(Eagle)和 X 4 X_4 X4(PolarBear),等价于添加新的基,例如 D 3 D_3 D3 D 4 D_4 D4,它们垂直于原始空间。

4.1 新颖性检测和分类

给定一块未标注数据,我们假设它们通过聚类算法,例如CluStream [Aggarwal等, 2003]聚类而没有噪声或异常值,因为聚类不是本工作的重点。 然后我们把这组未标注的聚类中心作为输入。 然后,在学到的k-RKH空间中执行新颖性检测和分类。

需要注意的是,从(14)的推导出发,我们得到了

( ( C o Φ ) T G Φ ) T = ( G Φ ) T C o Φ = I . (18) ((C_o^\Phi)^T G^\Phi)^T = (G^\Phi )^T C_o^\Phi= I. \tag {18} ((CoΦ)TGΦ)T=(GΦ)TCoΦ=I.(18)

这意味着 k k k个类中心分别被投影到 k k k个正交轴的单位位置,因为 I I I的每一列表示每个已知类类中心在k维RKH空间中的映射点的坐标。例如,如图1所示,给定两个已知类,我们有一个2维RKH空间,其中 X 1 X_1 X1(Dog)的类中心 c 1 c1 c1被投影到 C 1 ( 1 , 0 ) C_1(1, 0) C1(1,0),而 X 2 X_2 X2(Rabit)的类中心 c 2 c_2 c2被投影到 C 2 ( 0 , 1 ) C_2(0, 1) C2(0,1)

因此,我们可以围绕每个类中心建立一个超球面作为分类边界。新实例将根据它们与已知类类中心的距离进行分类。从所有已知类的边界投射的实例被分类为新类。此外,我们为已知类的边界阈值设置相同的值,即两个任意类之间的欧式距离的一半。由于类中心的位置固定在坐标轴上,因此该值对新插入的类也有效,具体将在下一小节中解释。

4.2 更新方法(IFKDA)

通过重新计算或添加核矩阵 K o K_o Ko K c z K_{cz} Kcz的某些部分,可以很容易地完成更新任务。

我们假设一个数据块中的新样例,属于 k a k_a ka个已知类和 k b k_b kb个未知类的新样例组成的。然后新的核矩阵 K o ~ ∈ R ( k + k b ) × ( k + k b ) \tilde{K_o} \in R^{(k + k_b) \times (k + k_b)} Ko~R(k+kb)×(k+kb)可以用公式(19)更新得到

K o ~ = [ K o ′ K o b ( K o b ) T K o c ] , (19) \tilde{K_o} = \left [ \begin{array}{ccc} K_o' & K_o^b \\ (K_o^b)^T & K_o^c \end{array} \right], \tag{19} Ko~=[Ko(Kob)TKobKoc],(19)

其中 K o ′ ∈ R k × k K_o' \in R^{k \times k} KoRk×k 是原来的核矩阵 K o K_o Ko 通过重新计算一些项得到的,这些项和那些有新样例的已知类相关,而 K b ∈ R k × k b K_b \in R^{k \times k_b} KbRk×kb K c ∈ R k × k c K_c \in R^{k \times k_c} KcRk×kc 是由新类别引入的新的项,如公式(20),(21)所示。

K o b = [ < α 1 , α k + 1 > , . . . , < α 1 , α k + k b > ⋮ < α k , α k + 1 > , . . . , < α k , α k + k b > ] , (20) K_o^b = \left [ \begin{array}{ccc} <\alpha_1, \alpha_{k+1}>, ..., <\alpha_1, \alpha_{k+k_b}> \\ \vdots \\ <\alpha_k, \alpha_{k+1}>, ..., <\alpha_k, \alpha_{k+k_b}> \end{array} \right], \tag {20} Kob= <α1,αk+1>,...,<α1,αk+kb><αk,αk+1>,...,<αk,αk+kb> ,(20)

K o c = [ < α k + 1 , α k + 1 > , . . . , < α 1 , α k + k b > ⋮ < α k + k b , α k + 1 > , . . . , < α k , α k + k b > ] , (21) K_o^c = \left [ \begin {array} {ccc} <\alpha_k+1, \alpha_{k+1}>, ..., <\alpha_1, \alpha_{k+k_b}> \\ \vdots \\ <\alpha_k+k_b, \alpha_{k+1}>, ..., <\alpha_k, \alpha_{k+k_b}> \end{array} \right], \tag {21} Koc= <αk+1,αk+1>,...,<α1,αk+kb><αk+kb,αk+1>,...,<αk,αk+kb> ,(21)

其中 α i \alpha _i αi 表示 $ \phi(c_i) $。

计算 K o ~ \tilde{K_o} Ko~,$ K_o^b$ 和$ K_o^c$的时间复杂度分别是 O ( d k k a ) O(dkk_a) O(dkka) O ( d k k b ) O(dkk_b) O(dkkb) O ( d k b 2 ) O(dk_b^2) O(dkb2)

相似地,我们可以分两部分更新 $ K_{cz} $, 通过

K c z ~ = [ K c z ′ , K c z b ] T , (22) \tilde {K_cz} = [K_{cz}', K_{cz}^b] ^T, \tag {22} Kcz~=[Kcz,Kczb]T,(22)

其中, K c z ′ K_{cz}' Kcz 是插入带标注的新样例后通过公式(23)更新的核向量,而 $ K_{cz}^b $ 是添加新类别后通过公式(24)更新的核向量,其中 β \beta β 表示 ϕ ( z ) \phi (z) ϕ(z)

K c z ′ = [ < α 1 , β > , . . . , < α ~ i > , . . . , < α k , β > ] T (23) K_{cz}' = [<\alpha_1, \beta>, ..., <\tilde \alpha_i>, ..., <\alpha_k, \beta>]^T \tag {23} Kcz=[<α1,β>,...,<α~i>,...,<αk,β>]T(23)

K c z b = [ < α k + 1 , β > , . . . , < α k + k b , β > ] T (24) K_{cz}^b = [<\alpha_{k+1}, \beta>, ..., <\alpha_{k+k_b}, \beta>]^T \tag {24} Kczb=[<αk+1,β>,...,<αk+kb,β>]T(24)

正如我们看到的,通过新到达样本更新已知类中心不会改变核矩阵的阶,从而改变特征空间的维度。 在(18)的约束下,已知类中心的位置不会发生变化。而插入一个新类等价于增加核矩阵的一个阶,结果是添加一个垂直于原始空间的新的基,见图1中的证明。并且新类的中心也被投影新坐标轴的单元位置,因此其边界阈值可以设置为和已知类相同的值。 这两个特性使得IFKDA对分类任务更加稳定和稳健,这可以通过第5节中的真实数据集进行验证。

然后,在表2中我们比较了IFKDA,ILDA/SSS [Kim等, 2011] 和 ILDA/QR[Chu等, 2015] 更新块数据的空间和时间复杂度。在空间和速度上,IFKDA的更新代价都是最小的,特别是当 k k k 远小于 n ( k < < n ) n(k << n) n(k<<n)时,优势更加明显。 此外,IKNDA只有用于学习新类的算法,对于插入一个新类,其空间和时间复杂度分别是 O ( n s + s 2 ) O(ns + s^2) O(ns+s2) O ( d ( n + s ) s + n 2 s + n s 2 ) O(d(n + s)s + n^2 s + ns^2) O(d(n+s)s+n2s+ns2) (其中 s s s 是一个新类的样本数)。 相比之下,这种情况下IFKDA仅需要 ( d + k + 1 ) (d + k + 1) (d+k+1)的额外空间,时间复杂度是 O ( d k + d ) O(dk + d) O(dk+d)

k << n ↔ \leftrightarrow 特征维数远小于样本数
这里的时间复杂度,真是不敢恭维!

在这里插入图片描述

表2:学习块数据的增量判别分析方法的空间和时间复杂度。( h h h是块中的样本数, k b k_b kb是块中的新类数, n ~ = n + h \tilde n = n + h n~=n+h k ~ = k + k b \tilde k = k + k_b k~=k+kb f f f是块中的类别总数。)


5 实验

本节,我们在四个公开数据集上对提出的方法进行了性能评估:AR [Kim等, 2011],AWA [Lampert等, 2014],Caltech256 [Griffin等, 2007]和MNIST -Fashion(简称MINST-F)[Xiao等, 2017]。 对于AWA和Caltech256,我们将19层CNN的第7个全连接层的输出作为特征(4096维)。 所有核判别分析方法使用核函数: e x p ( − ∣ ∣ x − y ∣ ∣ 2 / σ ) exp(-||x-y||^2 /σ) exp∣∣xy2/σ。 由于FKDA和AKDA/QR一样用近似中心构造核矩阵,σ设定为较大的值。 实验表明,当选择$(σ= d) 时FKDA(IFKDA)和AKDA/QR产生了良好的总体结果,因此我们在它们的所有实验中都使用该值。所有方法都在MATLAB中实现,运行环境:Intel(R)Core(TM)i7 PC,3.40 GHz CPU和8 GB RAM。

5.1 块数据的多类新颖性检测

初始批量训练阶段和在线块数据的设置如表3所示。表4列出了FKDA和KNDA使用20折交叉验证检测五个未标注数据块的结果。
表3
表3: 数据集设置。( d : d: d: 是特征维数, k t : k_t: kt: 是训练类别数, n i : n_i: ni: 是每个训练类的样本数, k a : k_a: ka: 是一个块的已知类别数, k b : k_b: kb: 是一个块中未知类别数, n c i : n_{c_i}: nci: 是一个块中每个类的样本数)

##5.2 增量学习

我们首先在AWA和Caltech256数据上比较了IFKDA和ILDA/QR和批量算法AKDA/QR,KNDA( σ = 1 σ=1 σ=1)和FKDA学习块数据流的性能。

数据集的设置和表3一致。测试数据从剩余的训练类别和新类别中随机选择相同大小的数据块。两个数据集上的分类准确率以及CPU时间结果分别如图2和图3(使用了20折交叉验证)所示。我们有以下观察:

图2
图2: 插入块数据流的分类准确率。

图3
图3:插入块数据流的CPU时间。

1)IFKDA是FKDA的增量版本,在所有测试中和FKDA给出了相同的准确率。 IFKDA和FKDA的准确率与最佳算法相当。所有核判别分析方法都比ILDA/QR更准确。

2)IFKDA和ILDA/QR都比批量方法快得多,这验证了增量方法相对于批量方法的效率。在两个数据集上,IFKDA比FKDA快5到10倍,比AKDA快数百倍,比KNDA快数千倍。虽然ILDA/QR在AWA上性能与IFKDA类似( d d d = 4096 和 n n n = 2240),但它不能用于Caltech256( d d d = 4096和 n n n = 7400),因为算法中 X X X Q Q Q矩阵有( d > > n d >> n d>>n)的限制。

3)在两个数据集上,FKDA在训练阶段比其他批量方法花费时间少。在AWA数据集上,FKDA甚至比LDA/QR(在初始训练阶段使用的ILDA/QR的批量版本)快五倍。 FKDA在AWA上比AKDA/QR快几十倍且准确率相当,在Caltech256上比AKDA/QR快数百倍且准确率更高,即使它们都使用类中心作为输入。

figure 4

然后,我们比较了IFKDA与IKNDA两种算法在Caltech256数据集上学习新类的分类准确度和CPU时间。 AKDA/QR和FKDA也被作为基线。批量训练阶段的设置与表3相同。而在线阶段,逐一插入15个新类(每个类 n c i n_{c_i} nci 个样本)。测试样本是从剩余的新类中随机选择的,和插入数据规模相同。从图4的结果,我们得到以下观察:
1)对于准确率,所有算法都会随着新类的顺序插入而下降,但IFKDA是最稳定的,在插入结束时具有最高的准确率。
2)对于CPU时间,IFKDA比IKNDA和AKDA/QR快数百倍,甚至FKDA也比IKNDA快。

此外,我们通过在Caltech256上插入了15个新类测试了IFKDA和IKNDA在已知类识别方面的稳定性。测试样本选自其余的最初的已知类别。批量训练阶段IFKDA的识别准确率为72.35%,最终插入后降至71.10%,而批量训练阶段IKNDA的准确率为75.01%,最终插入后降至49.83%。该结果进一步验证了IFKDA的稳定性和鲁棒性。


6 结论

我们提出了一种快速免分解核方法(FKDA),通过构造近似核中心矩阵来求解核空间中的线性系统。 然后通过更新部分矩阵,增量FKDA(IFKDA)运行得非常快。 理论分析和在几个基准上的经验实验都验证了FKDA和IFKDA对最先进方法的优越性。 通过利用我们提出的算法,核方法可以得到更广泛地应用,尤其是在处理块数据流的增量学习问题时。


7. Q&A

  1. 论文的动机是什么?
  2. 代码中 K o − T = = ϕ ( C ) − 1 K_o^{-T} == \phi(C)^{-1} KoT==ϕ(C)1?
    K C K_C KC是核矩阵,是对阵矩阵,转置是本身,所以逆就是 K o − T K_o^{-T} KoT
    3.Q:代码中Xte = [Xte; z.test.X],batch阶段的测试数据,增量阶段为什么还用?
    测试数据包含了模型所有已知类的样本,增量阶段增加的数据块新类的测试样本。新类的测试,是在novel dectection阶段做的。
  3. Q: 更新 K z K_z Kz时,公式[20]为什么转置?
    A: K z K_z Kz是k维坐标点,更新包含两个部分:已知类对应的 l 1 l_1 l1和新类对应的 l 2 l_2 l2维。为什么转置?待探究。
  4. Q: FKDA的复杂度分析? O ( n k 2 + d k ) O(nk^2+dk) O(nk2+dk)
    不合理,复杂度不应该包含次要项、系数项。
  5. Q:ILDA只处理SSS问题?
    是的,ILDA/QR。
    7.为什么FKDA能同时处理SSS问题和大规模问题?
    待探究
  6. 高斯核函数:代码中对样本类中心点矩阵,进行了高斯核函数运算,得到了一个在核空间的中心点矩阵,核空间的这个矩阵的维度是K_by_K,是怎么来到的?有什么道理?
    参考西瓜书P128,核矩阵定义
  7. Ko的计算:代码中,用(Cphi)-1来代替了Ko(-T),怎么推导来的?
    K_C就是核矩阵
  8. 增量学习,更新Kz时,
    1)所使用的测试数据,每次迭代都会加上之前的数据,是考虑数据量太小吗?
    2)Kz的更新策略?计算时,α更新了,为什么β不更新?Kz的维度问题?从k到2k+l2
    答:β也更新了
  9. 书上的高斯核函数,多了1个1/2σ
  10. FKDA复杂度计算中,其他步骤计算复杂度O(n k^2+dk)是怎么来的?
  11. 为什么增量学习阶段,更新Ko用的是增量数据里的训练数据,而更新Kz用的是增量数据里的测试数据?
    代码中的Xte就是测试数据的基础数据,但是在每次迭代的时候,都加入新类的测试数据(即,Inc(i).test,如对于AWA数据集,数据量是:2类,每类18个样本)

8. 参考文献

  1. 论文地址
  2. 主成分分析(PCA)原理总结
  3. 线性判别分析(LDA)原理总结
  4. 说一说核方法(一)——核方法与核函数简介
  5. 再生核希尔伯特空间(RKHS)和核函数
  6. 支持向量机系列
  7. 我所理解的协方差矩阵
  8. 【线性代数的几何意义】向量的基本几何意义
  9. 增强学习、增量学习、迁移学习——概念性认知
  10. 线性判别分析LDA详解
  11. online learning,batch learning&批量梯度下降,随机梯度下降
  12. 史上最好的LDA(线性判别分析)教程
  13. 线性判别分析(Linear Discriminant Analysis, LDA)算法分析
  14. Linear Discriminant Analysis
  15. 统计学习方法 李航—第7章 支持向量机
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值