一文读懂支持向量积核函数(附公式)

简介:

核函数(Kernels)

考虑我们最初在“线性回归”中提出的问题,特征是房子的面积x,这里的x是实数,结果y是房子的价格。

假设我们从样本点的分布中看到x和y符合3次曲线,那么我们希望使用x的三次多项式来逼近这些样本点。

那么首先需要将特征x扩展到三维,然后寻找特征和结果之间的模型。我们将这种特征变换称作特征映射(feature mapping)。映射函数称作,在这个例子中


我们希望将得到的特征映射后的特征应用于SVM分类,而不是最初的特征。这样,我们需要将前面公式中的内积从,映射到。

至于为什么需要映射后的特征而不是最初的特征来参与计算,上面提到的(为了更好地拟合)是其中一个原因,另外的一个重要原因是样例可能存在线性不可分的情况,而将特征映射到高维空间后,往往就可分了。(在《数据挖掘导论》Pang-Ning Tan等人著的《支持向量机》那一章有个很好的例子说明)

将核函数形式化定义,如果原始特征内积是,映射后为,那么定义核函数(Kernel)为到这里,我们可以得出结论,如果要实现该节开头的效果,只需先计算,然后计算即可,然而这种计算方式是非常低效的。

比如最初的特征是n维的,我们将其映射到维,然后再计算,这样需要的时间。那么我们能不能想办法减少计算时间呢?

先看一个例子,假设x和z都是n维的,展开后,得


这个时候发现我们可以只计算原始特征x和z内积的平方(时间复杂度是O(n)),就等价与计算映射后特征的内积。也就是说我们不需要花时间了。

现在看一下映射函数(n=3时),根据上面的公式,得到


也就是说核函数只能在选择这样的作为映射函数时才能够等价于映射后特征的内积。


再看一个核函数



对应的映射函数(n=3时)是


更一般地,核函数对应的映射后特征维度为。

由于计算的是内积,我们可以想到IR中的余弦相似度,如果x和z向量夹角越小,那么核函数值越大,反之,越小。因此,核函数值是和的相似度。

再看另外一个核函数


这时,如果x和z很相近(),那么核函数值为1,如果x和z相差很大(),那么核函数值约等于0。

由于这个函数类似于高斯分布,因此称为高斯核函数,也叫做径向基函数(Radial Basis Function 简称RBF)。它能够把原始特征映射到无穷维。

既然高斯核函数能够比较x和z的相似度,并映射到0到1,回想logistic回归,sigmoid函数可以,因此还有sigmoid核函数等等。

下面有张图说明在低维线性不可分时,映射到高维后就可分了,使用高斯核函数。


来自Eric Xing的slides

注意,使用核函数后,怎么分类新来的样本呢?线性的时候我们使用SVM学习出w和b,新来样本x的话,我们使用来判断,如果值大于等于1,那么是正类,小于等于是负类。

在两者之间,认为无法确定。如果使用了核函数后,就变成了,是否先要找到,然后再预测?答案肯定不是了,找很麻烦,回想我们之前说过的


只需将替换成,然后值的判断同上。

核函数有效性判定

问题:给定一个函数K,我们能否使用K来替代计算,也就说,是否能够找出一个,使得对于所有的x和z,都有?

比如给出了,是否能够认为K是一个有效的核函数。

下面来解决这个问题,给定m个训练样本,每一个对应一个特征向量。

那么,我们可以将任意两个和带入K中,计算得到。I可以从1到m,j可以从1到m,这样可以计算出m*m的核函数矩阵(Kernel Matrix)。

为了方便,我们将核函数矩阵和都使用K来表示。

如果假设K是有效地核函数,那么根据核函数定义


可见,矩阵K应该是个对称阵。让我们得出一个更强的结论,首先使用符号来表示映射函数的第k维属性值。那么对于任意向量z,得


最后一步和前面计算时类似。从这个公式我们可以看出,如果K是个有效的核函数(即和等价),那么,在训练集上得到的核函数矩阵K应该是半正定的()

这样我们得到一个核函数的必要条件:

K是有效的核函数 ==> 核函数矩阵K是对称半正定的。

可幸的是,这个条件也是充分的,由Mercer定理来表达。

Mercer定理:

如果函数K是上的映射(也就是从两个n维向量映射到实数域)。那么如果K是一个有效核函数(也称为Mercer核函数),那么当且仅当对于训练样例,其相应的核函数矩阵是对称半正定的。

Mercer定理表明为了证明K是有效的核函数,那么我们不用去寻找,而只需要在训练集上求出各个,然后判断矩阵K是否是半正定(使用左上角主子式大于等于零等方法)即可。

许多其他的教科书在Mercer定理证明过程中使用了范数和再生希尔伯特空间等概念,但在特征是n维的情况下,这里给出的证明是等价的。

核函数不仅仅用在SVM上,但凡在一个模型后算法中出现了,我们都可以常使用去替换,这可能能够很好地改善我们的算法。


原文发布时间为:2018-01-29

本文来自云栖社区合作伙伴“ 数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

相关文章
|
安全 大数据 测试技术
Mongodb亿级数据量的性能测试比较完整收藏一下
原文地址:http://www.cnblogs.com/lovecindywang/archive/2011/03/02/1969324.html 进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插...
5073 0
|
2月前
|
人工智能 API
阿里云百炼两种省钱方案:AI 通用节省计划和 Token Plan 如何选择?抵扣优先级说明
阿里云百炼提供AI通用节省计划与Token Plan双计费方案:前者抵扣百炼通用API按量费用(用sk-密钥),后者专属抵扣Token调用(用sk-sp-密钥),额度独立、可共存。新用户免费领超7000万Tokens!阿里云百炼Token Plan官网:https://t.aliyun.com/U/EsRjVx
226 3
|
2月前
|
人工智能 JSON 安全
别让你的AI还活在打字时代——Hermes 0.20 和 Open WebUI 0.11 这波更新,把智能助手从"工具"推到了"伙伴"
Hermes Agent v0.20 与 Open WebUI v0.11 同步升级:实现真正自然的语音交互、执行中实时纠错、多Agent协同分工,让AI从“工具”进化为“伙伴”。支持微信/WhatsApp等平台语音消息,Mac一键部署,更懂你、更稳定、更像人。
349 2
|
4月前
|
数据采集 人工智能 API
AI 智能体项目的费用
AI智能体项目费用结构迥异于传统开发:研发成本递减,而算力与运营成本持续攀升,核心在于工程化编排。费用分两块——前期研发(8万–100万+,依单任务/目标导向/多智能体分级)与动态运行(Tokens消耗、向量库、沙箱等)。避坑关键:少微调、重提示词+RAG,严控循环次数。
|
4月前
|
人工智能 自然语言处理 搜索推荐
如何让“小龙虾”批量发送 WhatsApp 消息?阿里云 Chat App 发布首个 Skill!
阿里云Chat App推出WhatsApp Skill,将消息发送能力封装为AI Agent可调用技能。运营人员只需自然语言指令,即可完成模板查询、变量填充、批量发送及结果分析,告别控制台与代码切换,大幅提升海外订单通知、营销触达与客服回访效率。
492 1
|
消息中间件 存储 运维
线上环境大规模RocketMQ集群不停机优雅升级实践
线上环境大规模RocketMQ集群不停机优雅升级实践
线上环境大规模RocketMQ集群不停机优雅升级实践
|
缓存 JavaScript UED
Vue 中实现组件的懒加载
【10月更文挑战第23天】组件的懒加载是 Vue 应用中提高性能的重要手段之一。通过合理运用动态导入、路由配置等方式,可以实现组件的按需加载,减少资源浪费,提高应用的响应速度和用户体验。在实际应用中,需要根据具体情况选择合适的懒加载方式,并结合性能优化的其他措施,以打造更高效、更优质的 Vue 应用。
|
存储 数据库 C#
【UiPath2022+C#】UiPath Excel和数据表实战
本博客涵盖最常用的业务工具之一 - Excel。我们将使用 UiPath 特别提供和 RPA 一般提供的特定方法和工具,详细介绍使用 Excel 和类似文件(.xlsx、.xls、.csv)的不同方法。我们还将介绍一种用于处理 Excel 文件和数据库的变量 - 数据表 (System.Data.DataTable)。
【UiPath2022+C#】UiPath Excel和数据表实战
|
SQL 数据库 HIVE
Hive 表 DML 操作——第2关:Select 操作
Hive 表 DML 操作——第2关:Select 操作
1141 1

热门文章

最新文章