用于处理分类器样本的方法和装置与流程

文档序号:14653898发布日期:2018-06-08 22:38阅读:140来源:国知局
用于处理分类器样本的方法和装置与流程

本发明涉及数据处理技术领域,具体地,涉及用于处理分类器样本的方法和装置。



背景技术:

支持向量状态机(Support Vector Machine,SVM)是一种极为有效的分类算法,其主要利用中小型数据训练库进行训练,能够达到效果不错的二分类目标。

基本的线性SVM仅支持线性可分的分类任务。如果要实现负责的非线性变换分类,需要引入径向基函数(Radial Basis Function,RBF)等升维函数对样本的的特征向量进行升维,然后再利用SVM进行分类。

然而,目前在利用RBF进行升维时,实现效果并不理想。



技术实现要素:

本发明实施例提供了用于处理分类器样本的方法和装置,能够简单高效地实现RBF。

第一方面,提供了一种用于处理分类器样本的方法,包括:接收第i索引值,其中,所述第i索引值是对第i输入值量化得到的,所述第i输入值是基于径向基函数RBF对待分类样本的N维原始特征向量中的第i个原始特征向量进行处理而得到的,所述RBF被表示为exp(第1输入值)*exp(第2输入值)*…*exp(第N输入值),N和i均为正整数,i小于或者等于N;根据所述第i索引值,从存储器所存储的指数表中查找第i输出值,其中,所述第i输出值是exp(第i输入值)的近似值,所述指数表用于表示指数函数exp()的近似值;利用乘法器对所述第i输出值进行乘法处理,直到当i等于N时输出所述待分类样本的K维新特征向量中的第j个新特征向量,所述第j个新特征向量是与所述N维原始特征向量分别对应的N个输出值的乘积,K和j为正整数,K大于N,j小于或者等于K。

在一种可能的实现方式中,所述指数表用于表示z与指数函数exp(z)的近似值之间的对应关系,z是y比特的值,y是基于N个输入值的大小范围而预先设定的,所述N个输入值是基于所述RBF分别对所述N维原始特征向量处理而得到的,y为正整数。

在一种可能的实现方式中,所述利用乘法器对所述第i输出值进行乘法处理,包括:当i为1时,利用所述乘法器对所述第i输出值进行乘数为1的当前乘法运算,以及将所述当前乘法运算的结果作为所述乘法器进行下一次乘法运算的乘数;当1<i<N时,利用所述乘法器对所述第i输出值进行当前乘法运算,其中,乘数为第1输出值至第(i-1)输出值的乘积,以及将所述当前乘法运算的结果作为所述乘法器进行下一次乘法运算的乘数;当i为N时,利用所述乘法器对所述第i输出值进行当前乘法运算,其中,乘数为第1输出值至第(i-1)输出值的乘积,以及输出所述当前乘法运算的结果作为所述第j个新特征向量。

在一种可能的实现方式中,所述将所述当前乘法运算的结果作为所述乘法器进行下一次乘法运算的乘数,包括:利用所述延时单元将所述当前乘法运算的结果输入到所述乘法器中,以作为所述乘法器进行下一次乘法运算的乘数。

在一种可能的实现方式中,所述第i输入值是根据以下等式来得到的:

所述第i输入值=-γ*(xi-Rji)2

其中,γ是预先设定的值,xi表示所述第i个原始特征向量,Rji表示在所述N维原始特征向量所对应的特征空间中预先选择的指定点Rj的第i个值。

第二方面,提供了一种用于处理分类器样本的装置,包括:存储有指数表的存储器,所述指数表用于表示指数函数exp()的近似值;以及与所述存储器相连接的乘法器;

其中,所述存储器用于:接收第i索引值,其中,所述第i索引值是对第i输入值量化得到的,所述第i输入值是基于径向基函数RBF对待分类样本的N维原始特征向量中的第i个原始特征向量进行处理而得到的,所述RBF被表示为exp(第1输入值)*exp(第2输入值)*…*exp(第N输入值),N和i均为正整数,i小于或者等于N;根据所述第i索引值,从所述指数表中查找第i输出值,其中,所述第i输出值是exp(第i输入值)的近似值;向所述乘法器输出所述第i输出值;

所述乘法器,用于:从所述存储器接收所述第i输出值;对所述第i输出值进行乘法处理,直到当i等于N时输出所述待分类样本的K维新特征向量中的第j个新特征向量,所述第j个新特征向量是与所述N维原始特征向量分别对应的N个输出值的乘积,K和j为正整数,K大于N,j小于或者等于K。

在一种可能的实现方式中,所述指数表用于表示z与指数函数exp(z)的近似值之间的对应关系,z是y比特的值,y是基于N个输入值的大小范围而预先设定的,所述N个输入值是基于所述RBF分别对所述N维原始特征向量处理而得到的,y为正整数。

在一种可能的实现方式中,所述乘法器具体用于:当i为1时,对所述第i输出值进行乘数为1的当前乘法运算,以及将所述当前乘法运算的结果作为进行下一次乘法运算的乘数;当1<i<N时,对所述第i输出值进行当前乘法运算,其中,乘数为第1输出值至第(i-1)输出值的乘积,以及将所述当前乘法运算的结果作为进行下一次乘法运算的乘数;当i为N时,对所述第i输出值进行当前乘法运算,其中,乘数为第1输出值至第(i-1)输出值的乘积,以及输出所述当前乘法运算的结果作为所述第j个新特征向量。

在一种可能的实现方式中,所述装置还包括延时单元;所述乘法器具有第一输入端、第二输入端、第一输出端和第二输出端;所述第一输入端与所述存储器相连接;所述第一输出端与延时单元相连接,所述延时单元的输出端与所述第二输入端相连接;

所述延时单元用于从所述乘法器接收所述当前乘法运算的结果,并且将所述当前乘法运算的结果输入到所述第二输入端中;所述乘法器用于将所述第二输入端接收的所述当前乘法运算的结果作为进行下一次乘法运算的乘数,以及将所述第j个新特征向量从所述第二输出端输出。

在一种可能的实现方式中,所述第i输入值是根据以下等式来得到的:

所述第i输入值=-γ*(xi-Rji)2

其中,γ是预先设定的值,xi表示所述第i个原始特征向量,Rji表示在所述N维原始特征向量所对应的特征空间中预先选择的指定点Rj的第i个值。

在本发明实施例中,通过查表以及乘法运算来实现RBF,而无需将exp()函数进行例如泰勒多项式之类的展开,不仅能够减少运算量,而且能够极大地减小计算误差。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:

图1示出了exp()的查表计算误差与exp()的输入之间的关系图。

图2是根据本发明实施例的用于处理分类器样本的方法的示意性流程图。

图3是根据本发明实施例的用于处理分类器样本的装置的示意框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。

为了实现复杂的非线性变化分类,可以使用RBF对待分类样本的原始特征向量进行升维,然后再进行SVM分类。

典型的线性SVM分类器预测公式为:

其中,x表示待分类样本的N维原始特征向量(x1,x2,x3,…,xN),w为权重矩阵,b为偏移。从等式(1)可以看出,可以基于wT·x+b的正负来预测目标二分类,即目标y为0类还是1类。另外,N为正整数。

在经过RBF升维之后,SVM分类器的预测部分的计算公式变为:wT·Φ(x)+b。Φ(x)可以表示待分类样本的原始特征向量经过RBF映射后升维的新特征向量,假设维度为K,其中,K为正整数,K大于N。

其中,

其中,R可以表示待分类样本的原始特征向量对应的原始特征空间中的指定点。指定点可以作为参照点,其数量可以根据实际情况而变化。例如,可以在原始特征空间中预先选定K个指定点。其中,第j个指定点可以被表示为Rj,j可以为正整数,并且小于或者等于K。Rji可以表示Rj的第i个值。

另外,γ可以是进行指数高斯化运算时通用的参数,其可以是预先设定的任何值。例如,γ的值可以根据经验来预先设定。

假设Ai=-γ*(xi-Rji)2 (3),

那么上述等式2可以被表示为:

Φ(x)j=exp(A1+A2+A3+…+AN) (4)

从等式(2)可以看出,Φ(x)中的每个特征向量是原始特征向量与每个R点的距离的高斯分布值。Φ(x)j可以是Φ(x)的K维特征向量中的第j个特征向量,为了便于描述,在本文中可以称为待分类样本的K维新特征向量中的第j个新特征向量。

从上述等式可以看出,对于实现RBF而言,关键在于计算exp()函数。传统上,exp()函数的运算都是通过对该函数进行数学分解,例如,展开为泰勒多项式,然后通过迭代获得结果。然而,这种方式运算量很大,效率较低。

还存在一种通过硬件来实现exp()函数的方式。例如,对于等式(4)的实现,可以直接通过查表方式来得到exp(A1+A2+A3+…+AN)。在这种情况下,可以先计算(A1+A2+A3+…+AN),假设得到的结果为B。那么可以对B进行量化得到量化值,假设该量化值被表示为B’。然后,将B’作为索引值,从存储器中的指数表查找相应的exp()的近似值,从而得到exp(A1+A2+A3+…+AN)的最终结果。

然而,这种方式可能会造成较大的误差。例如,假设Ai的范围为-1至0,那么(A1+A2+A3+…+AN)的范围为-N至0。对于这样的取值范围,假设相应的量化范围可以到达2p,其中,p为正整数。

可以明白的是,量化阶数p决定着计算的准确精度。在数学上已经证明,这种通过查表所得到的exp()函数的近似值的最大相对误差,反比于量化阶数,正比于量化范围。这样,由于(A1+A2+A3+…+AN)的范围相对较大,引起的查表计算误差也相对大。

图1示出了exp()的查表误差与exp()的输入之间的关系图。在图1中,横轴可以表示量化范围的倍数,纵轴可以表示查表计算的相对误差的倍数。

从图1中可以看出,随着量化范围从1倍增大到10倍,查表计算误差会增大到原来的100倍。假设Ai的范围为-1至0,N为10,那么(A1+A2+A3+…+AN)的范围为-10至0。假设查表计算exp(Ai)的相对误差为d(即绝对误差为exp(Ai)*d),这样,exp(A1+A2+A3+…+AN)的相对误差会到100d,而绝对误差就是exp(A1+A2+A3+…+AN)*100d。

而且,随着特征向量的维数N越大,exp(A1+A2+A3+…+AN)的误差的增大倍数就越大。这样,在同等阶数p的情况下,误差会急剧增大。

对此,在本发明实施例中,可以对于等式(4)进行如下变型:

Φ(x)j=exp(A1+A2+A3+…+AN)

=exp(A1)*exp(A2)*exp(A3)*…*exp(AN) (5)

为了减小查表计算误差,可以针对A1、A2、A3、……、AN依次进行处理,分别得到exp(A1)、exp(A2)、exp(A3)、……、exp(AN)。然后通过乘法器进行N次循环,来得到exp(A1)*exp(A2)*exp(A3)*…*exp(AN)。

在这种情况下,仍然假设exp(Ai)的相对误差为d,那么对于exp(A1)*exp(A2)*exp(A3)*…*exp(AN)而言,假设其绝对误差为D,

D=(exp(A1)*(1+d))*(exp(A2)*(1+d))*(exp(A3)*(1+d))*…*(exp(AN)*(1+d))

对以上等式进行分解之后,d的一次项系数为exp(A1)*exp(A2)*exp(A3)*…*exp(AN)。对于d的二次项系数以及再往上的系数而言,因为d本身是小误差值,多次项之后会相对更小,可以忽略。因此,绝对误差D的主要成分项为exp(A1)*exp(A2)*exp(A3)*…*exp(AN)*N*d,相对误差约为N*d。

可见,与直接针对(A1+A2+A3+…+AN)查表来计算exp(A1+A2+A3+…+AN)的相对误差相比,本发明实施例的这种方式的误差要小得多。例如,当N为10时,针对(A1+A2+A3+…+AN)查表来计算exp(A1+A2+A3+…+AN)的相对误差为100d,而本发明实施例的这种方式的误差仅为10d。

可见,本发明实施例能够有效地减小RBF的误差,从而能够更为精确地对待分类样本的N维原始特征向量进行升维。

此外,这种方式可以通过简单的硬件结构来实现,能够节省实现成本。

下面将结合具体实施例来描述以上技术方案。

图2是根据本发明实施例的用于处理分类器样本的方法的示意性流程图。

如图2所示,在步骤201中,可以接收第i索引值。

具体而言,第i索引值可以是对第i输入值量化而得到的。第i输入值可以是基于RBF对待分类样本的N为原始特征向量中的第i个原始特征向量进行处理得到的。RBF可以被表示为exp(第1输入值)*exp(第2输入值)*…*exp(第N输入值)。

例如,可以将第i输入值表示为Ai,Ai可以根据等式(3)来确定。相应地,RBF可以通过等式(5)来表示。

在步骤202中,可以根据第i索引值,从存储器所存储的指数表中查找第i输出值。

具体而言,第i输出值可以是exp(第i输入值)的近似值。存储器中所存储的指数表可以用于表示指数函数exp()的近似值。

在步骤203中,可以利用乘法器对第i输出值进行乘法处理,直到当i等于N时,输出待分类样本的K维新特征向量中的第j个新特征向量。

从上述等式(5)可以看出,第j个新特征向量可以是与N维原始特征向量分别对应的N个输出值的乘积。

在本发明实施例中,根据与利用RBF得到的第i输入值相对应的第i索引值,从指数表中查找表示exp(第i输入值)的近似值的第i输出值,然后利用乘法器对第i输出值进行乘法处理。将上述过程循环处理N次,当i等于N时,能够获得与N维原始特征向量分别对应的N个输出值的乘积,即K维新特征向量中的第j个新特征向量。可见,在本发明实施例中,通过查表以及乘法运算来实现RBF,而无需将exp()函数进行例如泰勒多项式之类的展开,不仅能够减少运算量,而且能够极大地减小计算误差。

在一个实施例中,上述指数表可以用于表示z与指数函数exp(z)的近似值之间的对应关系。其中,z是y比特的值,y为正整数。y可以是基于N个输入值的大小范围而预先设定的。可以理解的是,N个输入值可以是基于RBF对N维原始向量分别进行处理得到的。例如,如上所述,可以将第i输入值表示为Ai,那么N个输入值可以分别被表示为A1、A2、A3、……、AN。N个输入值可以根据等式(3)来得到。

相应地,上述第i索引值可以是对第i输入值量化得到的y比特的值。

可见,在该实施例中,可以基于N个输入值的大小范围来获得量化范围,这样能够合理地确定在存储器中存储的指数表的范围,从而能够避免由于指数表的范围过大而造成存储资源的浪费,或者由于指数表的范围过小而无法有效地提供相应的输出值。

在一个实施例中,在步骤203中,当i为1时,利用乘法器对第i输出值进行乘数为1的当前乘法运算,并且将当前乘法运算的结果作为乘法器进行下一次乘法运算的乘数。

当1<i<N时,利用乘法器对第i输出值进行当前乘法运算,其中,乘数为第1输出值至第(i-1)输出值的乘积,并且将当前乘法运算的结果作为乘法器进行下一次乘法运算的乘数。

当i为N时,利用乘法器对第i输出值进行当前乘法运算,其中,乘数为第1输出值至第(i-1)输出值的乘积,并且输出所述当前乘法运算的结果作为所述第j个新特征向量。

在本实施例中,可以通过乘法器循环N次,将N个输出值依次相乘,来获得第j个新特征向量。这样,能够最大限度地复用硬件单元,在硬件实现上简单高效,节省实现成本。

在一个实施例中,在步骤203中,可以利用延时单元将当前乘法运算的结果再次输入到乘法器中,作为乘法器进行下一次乘法运算的乘数。可见,在本实施例中,通过延时单元来辅助实现N个输出值之间的依次相乘,在硬件实现上简单高效。

图3是根据本发明实施例的用于处理分类器样本的装置的示意框图。

如图3所示,装置300可以包括存储器310和乘法器320。乘法器320可以与存储器310相连接。例如,存储器310的输出端可以与乘法器320的输入端相连接。

存储器310可以存储有指数表,该指数表可以表示指数函数exp()的近似值。

存储器310可以接收第i索引值。其中,第i索引值可以是对第i输入值量化得到的,第i输入值是基于RBF对待分类样本的N维原始特征向量中的第i个原始特征向量进行处理而得到的。RBF可以被表示为exp(第1输入值)*exp(第2输入值)*…*exp(第N输入值),N和i均为正整数,i小于或者等于N。

存储器310可以根据第i索引值,从指数表中查找第i输出值,然后向乘法器320输出第i输出值。其中,第i输出值是exp(第i输入值)的近似值。

乘法器320可以从存储器310接收第i输出值。

乘法器320可以对第i输出值进行乘法处理,直到当i等于N时输出待分类样本的K维新特征向量中的第j个新特征向量。其中,第j个新特征向量是与N维原始特征向量分别对应的N个输出值的乘积,K和j为正整数,K大于N,j小于或者等于K。

可见,在本发明实施例中,通过查表以及乘法运算来实现RBF,无需将exp()函数进行例如泰勒多项式之类的展开,这样不仅能够减少运算量,而且能够极大地减小计算误差。此外,本发明实施例能够利用简单的存储器和乘法器结构来高效地实现RBF,从而节省实现成本。

在一个实施例中,指数表可以用于表示z与指数函数exp(z)的近似值之间的对应关系,z是y比特的值,y为正整数。y是基于N个输入值的大小范围而预先设定的。N个输入值是基于RBF分别对上述N维原始特征向量处理而得到的。相应地,第i索引值可以是对第i输入值量化得到的y比特的值。

在一个实施例中,当i为1时,乘法器320可以对第i输出值进行乘数为1的当前乘法运算,并且将当前乘法运算的结果作为进行下一次乘法运算的乘数。当1<i<N时,乘法器320可以对第i输出值进行当前乘法运算,其中,乘数为第1输出值至第(i-1)输出值的乘积,并且将当前乘法运算的结果作为进行下一次乘法运算的乘数。当i为N时,乘法器320可以对第i输出值进行当前乘法运算,其中,乘数为第1输出值至第(i-1)输出值的乘积,并且输出当前乘法运算的结果作为第j个新特征向量。

在该实施例中,乘法器可以循环N次,从而得到exp(第1输入值)*exp(第2输入值)*…*exp(第N输入值)的结果。这样,能够最大限度地复用硬件,减小硬件实现成本。此外,如前所述,这种方式能够极大地减小计算误差。

在一个实施例中,装置300还可以包括延时单元530。如图3所示,乘法器320具有第一输入端、第二输入端、第一输出端和第二输出端。

乘法器320的第一输入端可以与存储器310相连接。乘法器320的第一输出端可以与延时单元330相连接。延时单元320的输出端可以与乘法器320的第二输入端相连接。

延时单元330可以从乘法器320的第一输出端接收当前乘法运算的结果,并且将当前乘法运算的结果输入到乘法器320的第二输入端中。乘法器320可以将第二输入端接收的当前乘法运算的结果作为进行下一次乘法运算的乘数。乘法器320可以通过第二输出端输出所得到的第j个新特征向量。

在该实施例中,通过延时单元来实现乘法器的N次循环乘法,在实现上简单高效,能够减少硬件实现成本。

可以理解的是,上述第i输入值和第i索引值可以通过通用的计算设备来得到,也可以通过专用硬件电路来得到,本发明实施例对此不作限定。

应当理解的是,为了描述的方便和简洁,装置300的各个模块的具体功能和操作可以参照前述方法实施例的对应过程,此处将不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的方法的步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的方法和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序校验码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1