【文献阅读】7-MKLpy: a python-based framework for Multiple Kernel Learning(2020)

摘要

MKLpy库提供了用于分类任务的多核学习算法、针对不同数据类型计算核函数的机制以及评估策略。

关键词

Multiple Kernel LearningDeep kernelsKernel methods

背景

一方面,该库提供了高级的API,便于将MKL算法应用到用户的特定任务中。MKL算法的公共接口由简单的原语组成,用于训练算法mkl . fit ( . . . ) 和执行预测mkl . prediction ( . . . )。
另一方面,MKLpy被设计用于剖析整个MKL pipeline,如图1所示,从计算基核到推理阶段,允许模块化、增量式和有针对性的开发。
在这里插入图片描述

创新点

提出a python-based framework for MKL,在Github有代码,以及配套的学习文档英文版。

MKLpy内容

MKLpy的主要特征:

  1. Kernel function:
    多种核函数:homogeneous polynomial kernel (HPK);the conjunctive and disjunctive boolean kernels;the p-spectrum and string kernels;
from MKLpy.metrics.pairwise import monotone_conjunctive_kernel as mck
K = mck(X) #单基核计算
KL = [mck(X, c=arity) for arity in range(1,6)] #组合核计算
  1. MKL algorithms:包装器自动封装内核组合机制,利用生成的内核进行训练,预测机制
    AverageMKL:一个简单的计算基内核平均值的包装器。
    EasyMKL (Aiolli and Donini, 2015)
    R-MKL (Do et al., 2009)
    GRAM (Lauriola et al., 2017)
    popular SVM, KOMD (Aiolli et al., 2008)
from MKLpy.algorithms import AverageMKL,EasyMKL
mkl = AverageMKL()
mkl = mkl.fit(KLtr, Ytr)
prediction = mkl.predict(KLte)
  1. Evaluation: 核学习的一个重要步骤是对学习到的核进行评价。
    MKLpy提供了一些评价内核质量的标准和工具:
from MKLpy import metrics
margin = metrics.margin(K,Y) #margin between classes
radius = metrics.radius(K) #radius of MEB
SR = metrics.spectral_ratio(K,norm=True) #empirical complexity

此外,用户可以使用scikit-Learn包中的工具来评估准确率、AUC等指标。

计算效率:

例举了:EasyMKL with 20 HPKs applied to two datasets(Madelon and Phishing
MKLpy生成器使使用内存消耗的大幅减少,平均减少3.7倍,如图所示。
在这里插入图片描述

from MKLpy.generators import HPK_generator
KLtr = HPK_generator(Xtr, degrees=range(1,21))
mkl = EasyMKL.fit(KLtr,Ytr)

结论与不足

作者建议:

  1. 事实上,不同的表示可能引入噪声或无用信息。为此,组合核与单基核的比较可以证明MKL解的质量
  2. 尽管MKL算法简单,但现有的几种MKL算法的性能甚至不如基核的简单平均。然而,这一基线在评估过程中很少被考虑。因此,我们强烈建议在评估MKL解时使用该基线。
  3. 组合权重提供了关于解的稀疏性和基核贡献的有用见解,它们的分析防止了开发琐碎的解决方案。例如,该算法可以为所有的核分配0个权重,而不是1个。在这种情况下,MKL可以用于特征选择或超参数调优。
  4. 分配给每个核的权重取决于后者的范数。如果我们扩大一个基核的范数,它在组合中的贡献也可能扩大,而核可能因为具有高范数而获得高权重。这一方面可能在某些情况下提供次优的解决方案,而由此产生的权重向量可能具有误导性。为了减少这个问题,我们建议对基核进行归一化。
    优点:每一种MKLpy算法都有论文依据,这对于该类算法进行论文文献阅读比较方便,但是在使用文档的时候,对于函数不太了解的,查找Github有些不太方便。

参考

[3]: Kernel methods for pattern analysis.(John Shawe-Taylor, Nello Cristianini, et al. 2004)
[4]: Multiple kernel learning algorithms.(Mehmet Go ̈nen and Ethem Alpaydin.2011)
[5]: A survey on multi-view learning.(Chang Xu, Dacheng Tao, and Chao Xu.2013)
[6]: Multiple kernel learning based multi-view spectral clustering.(D. Guo, J. Zhang, X. Liu, Y. Cui, and C. Zhao.2014)
[7]: Learning deep kernels in the space of dot product polynomials.(Michele Donini and Fabio Aiolli.2017)
[8]: Enhancing deep neural networks via multiple kernel learning.(Ivano Lauriola, Claudio Gallicchio, and Fabio Aiolli.2020)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值