什么是核函数?常见的核函数都有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是核函数?常见的核函数都有哪些?相关的知识,希望对你有一定的参考价值。

参考技术A 姓名:贺文琪

学号:19021210758

【嵌牛导读】核函数通常定义为空间中任一点x到某一中心xc之间欧式距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。核函数不是仅仅在SVM里使用,他是一个工具,把低维数据映射到高维数据的工具。

【嵌牛鼻子】核函数

【嵌牛提问】如何实现核函数

【嵌牛正文】

一、核

1.1 核的介绍

内核方法是一类用于模式分析或识别的算法,其最知名的使用是在支持向量机(SVM)。模式分析的一般任务是在一般类型的数据(例如序列,文本文档,点集,向量,图像等)中找到并研究一般类型的关系(例如聚类,排名,主成分,相关性,分类)图表等)。内核方法将数据映射到更高维的空间,希望在这个更高维的空间中,数据可以变得更容易分离或更好的结构化。对这种映射的形式也没有约束,这甚至可能导致无限维空间。然而,这种映射函数几乎不需要计算的,所以可以说成是在低维空间计算高维空间内积的一个工具。

1.2 核的诀窍

内核技巧是一个非常有趣和强大的工具。 它是强大的,因为它提供了一个从线性到非线性的连接以及任何可以只表示两个向量之间的点积的算法。 它来自如下事实:如果我们首先将我们的输入数据映射到更高维的空间,那么我在这个高维的空间进行操作出的效果,在原来那个空间就表现为非线性。

现在,内核技巧非常有趣,因为不需要计算映射。 如果我们的算法只能根据两个向量之间的内积表示,我们所需要的就是用一些其他合适的空间替换这个内积。 这就是"技巧"的地方:无论使用怎样的点积,它都被内核函数替代。 核函数表示特征空间中的内积,通常表示为:

K(x,y)= <φ(x),φ(y)>

使用内核函数,该算法然后可以被携带到更高维空间中,而不将输入点显式映射到该空间中。 这是非常可取的,因为有时我们的高维特征空间甚至可以是无限维,因此不可能计算。

1.3 核函数的性质

核函数必须是连续的,对称的,并且最优选地应该具有正(半)定Gram矩阵。据说满足Mercer定理的核是正半定数,意味着它们的核矩阵只有非负特征值。使用肯定的内核确保优化问题将是凸的和解决方案将是唯一的。

然而,许多并非严格定义的核函数在实践中表现得很好。一个例子是Sigmoid内核,尽管它广泛使用,但它对于其参数的某些值不是正半定的。 Boughorbel(2005)也实验证明,只有条件正定的内核在某些应用中可能胜过大多数经典内核。

内核还可以分为各向异性静止,各向同性静止,紧凑支撑,局部静止,非稳定或可分离非平稳。此外,内核也可以标记为scale-invariant(规模不变)或scale-dependent(规模依赖),这是一个有趣的属性,因为尺度不变内核驱动训练过程不变的数据的缩放。

补充:Mercer 定理:任何半正定的函数都可以作为核函数。所谓半正定的函数f(xi,xj),是指拥有训练数据集合(x1,x2,...xn),我们定义一个矩阵的元素aij = f(xi,xj),这个矩阵式n*n的,如果这个矩阵是半正定的,那么f(xi,xj)就称为半正定的函数。这个mercer定理不是核函数必要条件,只是一个充分条件,即还有不满足mercer定理的函数也可以是核函数

二、 几种常用的核

2.1 线性核

线性内核是最简单的内核函数。 它由内积<x,y>加上可选的常数c给出。 使用线性内核的内核算法通常等于它们的非内核对应物,即具有线性内核的KPCA与标准PCA相同。

2.2 多项式核函数

多项式核是非固定内核。 多项式内核非常适合于所有训练数据都归一化的问题。我记得一般都会把问题归一化吧?

可调参数是斜率α,常数项c和多项式度d。

2.3 高斯核

高斯核是径向基函数核的一个例子。

可调参数sigma在内核的性能中起着主要作用,并且应该仔细地调整到手头的问题。 如果过高估计,指数将几乎呈线性,高维投影将开始失去其非线性功率。 另一方面,如果低估,该函数将缺乏正则化,并且决策边界将对训练数据中的噪声高度敏感。

2.4指数的内核

指数核与高斯核密切相关,只有正态的平方被忽略。 它也是一个径向基函数内核。

2.5 拉普拉斯算子核

拉普拉斯核心完全等同于指数内核,除了对sigma参数的变化不那么敏感。 作为等价的,它也是一个径向基函数内核。

函数中都有哪些功能,但存储过程中没有? [复制]

【中文标题】函数中都有哪些功能,但存储过程中没有? [复制]【英文标题】:what are the features in Functions but not in Stored Procedure? [duplicate]函数中有哪些功能,但存储过程中没有? [复制] 【发布时间】:2021-09-17 21:44:02 【问题描述】:

1)函数中有哪些特性,而存储过程中没有?

2)什么时候在sql中使用函数而不是存储过程?

3)函数相对于存储过程的优势是什么?

嗨朋友们,我在谷歌上搜索了我只基金与函数和存储过程的区别,但没有得到函数相对于存储过程的好处。 Functions有什么特点,Stored Procedure也有同样的特点,那为什么要使用Functions呢?

何时使用函数而不是存储过程,我对函数感到困惑

1)什么时候在sql中使用函数而不是存储过程?

2)函数相对于存储过程的优势是什么?

谁知道,请帮帮我

【问题讨论】:

我什至不明白这个问题的基础,因为它们是如此不同。函数返回值并且可以在查询中使用。存储过程本质上是脚本,不能在 SQL 语句中使用。 函数中有哪些功能可用,而存储过程中没有? 它们是完全不同的对象,@Anji。它们提供完全不同的东西。 这能回答你的问题吗? Function vs. Stored Procedure in SQL Server 【参考方案1】:

函数和存储过程的相似之处在于它们都用于存储以后可以运行的功能,但它们也有很大不同

我遇到的一些重要差异:

函数可以在SELECT语句中调用,过程不能

虽然函数可以像 function_name() 一样调用,但过程需要显式的 CALL 关键字:CALL procedure_name([args])

函数可以返回一个值,过程可以返回多个

过程并不完全返回值,而是可以获取传递的类似引用的参数。然后可以将它们分配并用作返回值。

常规参数标记为IN 用于输入,用于返回值的参数标记为OUT 用于输出。你可以有两个参数:INOUT。来自MySQL docs的示例

CREATE PROCEDURE citycount (IN country CHAR(3), OUT cities INT)
BEGIN
  SELECT COUNT(*) INTO cities FROM world.city
  WHERE CountryCode = country;
END

另一个区别是stored procedures can return tables,而函数则不能。(除非您提供一个/列作为输入)

【讨论】:

我个人会说过程和功能并不相似;它们实际上非常不同。 "另一个区别是存储过程可以返回表,而函数不能。" 这个说法也是完全错误的。表值函数肯定会返回“表”(数据集);顾名思义,它们返回一个表格结果集。 “过程不完全返回值,但可以获取传递的类似引用的参数。” 如果过程不返回值,RETURN 运算符是什么, 或OUTPUT 参数? 是的,你是对的。我的意思是它们的相似之处在于它们都可以用于存储某些功能,仅此而已。我没有看到任何关于RETURNOUTPUT 的程序。从谷歌搜索来看,OUTPUT 似乎是 OUT 所做的,但在 SQL Server 中 给你举几个例子,@Tim:db<>fiddle。

以上是关于什么是核函数?常见的核函数都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之支持向量机:核函数和KKT条件的理解

[白话解析] 深入浅出支持向量机(SVM)之核函数

机器学习---核函数

机器学习之支持向量机:SMO算法

SVM的类型和核函数选择

关于核函数的一些思考