人工智能基础知识笔记一:核函数

1、简介

核函数有严格的数学要求,凡满足Mercer定理【参考本文第9章节】的都可以作为核函数。Mercer 定理确保高维:间任意两个向量的内积一定可以被低维空间中两个向量的某种计算表示(多数时候是内积的某换)。本节通过一个例子讲解核函数的使用。

2、 核函数定义

是输人空间(欧氏空间或离散集合),为特征空间(希尔伯特空间),若存在一个从到H的映射,f(x): → H,使得对所有的x,y€,函数 K(x,y)=f(x)·f(y),则称K(x,y)为核函数f(x)f(y)为向量x,y映射到特征空间上的向量之间的内积。

3、 为什么引入核函数?

核函数在机器学习算法中进行非线性改进的主要思路如下:

(1)对于低维空间非线性可分的样例,可以将样例特征映射到高维空间(也可以是无穷维)中即"升维",以此达到高维空间线性分类的目的。其中关键的部分在于找到低维到高维的非线性射函数f(x),确定参数和高维特征空间维数等问题,实现低维数据到高维数据的映射。

(2)非线性可分的样例映射到高维空间后,需要计算高维空间中数据之间的内积,计算量且计算非常困难,甚至会引起"维数灾难",这些问题可以应用核函数解决。

(3)核函数是对低维数据的计算,其计算结果与高维数据的内积运算结果相同,从而不需要再选取映射函数。用核函数代替高维数据的内积,避免了直接在高维空间中进行复杂计算。

在诸如 SVM、KNN、线性回归和聚类等很多算法中,需要计算特征空间中数据之间的内积时都可以使用核函数。

4、 核函数的作用

  1. 处理非线性问题:通过使用合适的核函数,我们可以将低维空间中的非线性问题转化为高维空间中的线性问题。
  2. 避免直接计算高维空间中的点积:核技巧允许我们在不实际进行复杂计算的情况下利用高维空间的特性。

5、常用的核函数

常用的3种核函数,线性核函数、多项式核函数和高斯径向基核函数。

5.1 线性核函数

线性核函数是最简单的核函数,对应的公式为K(x,y)=x·y。显见,此时的映射函数f(z)=z。

线性核函数可以直接使用,主要用于线性可分的情形。线性核函数的特征空间与输入空间的维度是一样的,对数据不作任何变换,不需要设置任何参数。

5.2 多项式 函数

多项式核函数也是一种很常见的核函数,对应的公式如下。

K (x ,y)=[γ(x·y)+c]d

公式中,有"γ,c,d共3个参数,γ表示对内积(x·y)进行放缩,γ>0,且一般等于1/类别数。c代表常数项,取值范围为c>0,当c>0时,称为非齐次多项式;当c=0时,称为齐次多项式。d为整数,代表项式的阶次,一般设d=2。升维的维度随d的增大而指数倍增长,计算量也随之大。d取值过大,学习的复杂性也会过高,容易出现过拟合的现象。参数d=1,γ=1,c=0时,K (x ,y)是线性核函数。

5.2 高斯径向基核函数

高斯径向基核函数是应用最为广泛的一种核函数,对应的公式如下

>0称为核半径,是用户定义的用于确定到达率或者说函数值跌落到0的速度参数。若x和x'很相近,则核函数值为1;x和x'相差很大,则核函数值约为0。由于这个函数类似于高斯分布,因此被称为高斯核函数,也叫径向基函数(Radial Basis Function,RBF)。RBF 是指数形式,展开就是无穷多的多项式,所以RBF可以将原始特征数据映射到无穷维。该核函数对于大样本和小样本较好的性能,比多项式核函数参数要少。

6、 核函数 的实现

python 复制代码
import numpy as np

#线性核函数
def linear(X, Y):
    K = X.T.dot(Y)
    return K

#RBF
def gaussian(X,Y,sigma):
    K=np.exp(-np.linalg.norm(X-Y)**2)/(2*sgima**2)
    return K

#多项式核函数
def poly(X,Y,gamma, c, degree):
    K=X.T.dot(Y)
    K= (gamma*K +c)**degree
    return K

7、核函数 选择

选择核函数包括两部分工作:一是确定核函数,二是确定核函数类型后相关参数的选择。

在实际问题中选择核函数,采用的方法如下:

一是根据先验知识预先选定核函数,针对特征向量类型选用核函数。

(1)线性核函数:主要用于线性可分的情形。参数少,速度快,对于一般数据,分类效果已经很理想了,适用于维数很大、样本数量差不多的数据集。当维数较少,样本数量很多,可以手动添加一些维数,再使用线性核函数。

(2)高斯径向基核函数:使用范围较广,是SVM的默认核函数,适用于维数较低和样本数量一般的数据集,主要用于非线性可分的情形。

(3)多项式核函数:非常适合用于图像处理,可调节参数(可通过交叉验证或枚举法获得)获得好的结果。

二是采用交叉验证(Cross-Validation)方法,在选取核函数时,分别试用不同的核函数,通过仿真实验,在相同数据条件下对比分析,归纳误差最小的核函数就是最好的核函数。

三是采用由 Smits 等人提出的混合核函数方法,其基本思想是将不同的核函数结合起来后有更好的特性。该方法是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的方法。

8 、其他核函数

8.1 Sigmoid核函数

  • 定义:K(x,y)=tanh(αxTy+c)
  • 优点:模拟神经网络的行为;适用于特定类型的问题。
  • 缺点:并非所有情况下都保证是有效的核函数;参数调整较复杂。可能不满足Mercer条件,导致非正定核矩阵。

8.2 拉普拉斯核函数

  • 公式:
  • 优点:对数据稀疏性不敏感,适合稀疏数据。
  • 缺点:计算复杂度较高。

9 、 Mercer条件

Mercer条件是核方法中一个重要的理论基础,它提供了一种验证某个函数是否可以作为核函数的标准。具体来说,Mercer条件涉及的是对称核函数的正定性要求,确保该核函数在数学上是有效的,并且可以在支持向量机(SVM)等机器学习算法中使用。

给定一个定义在 X×X 上的对称函数 K(x,y),其中 x,y∈X,如果对于任意有限集合 {x1,x2,...,xn}⊂X和任意一组实数 {c1,c2,...,cn},以下不等式成立:

则称 K(x,y) 满足Mercer条件。这意味着由核函数构成的Gram矩阵必须是半正定的。

作用

Mercer条件的重要性在于它保证了核函数能够被解释为某种映射到高维特征空间后的内积。这对于支持向量机和其他基于核的方法至关重要,因为它确保了这些算法能够在高维空间中找到最优分离超平面或回归函数,即使我们并不显式地知道这种映射是什么。

实际应用中的考量

虽然理论上所有满足Mercer条件的函数都可以作为核函数,但在实际应用中,选择核函数时还需要考虑其他因素,如计算效率、过拟合的风险以及特定问题的数据特性。例如,径向基函数(RBF)核非常流行,因为它具有良好的通用性和灵活性,但其参数选择可能需要仔细调整以避免过拟合。

小结

  • Mercer条件 :确保核函数对应的Gram矩阵是半正定的。
  • 作用 :保证核函数的有效性,使得基于核的方法能够在隐式的高维空间中操作。
  • 实际应用 :除了满足Mercer条件外,还需根据具体应用场景选择合适的核函数及其参数配置。

参考:

Smits 等人提出的混合核函数方法在2002年的论文《Using analytic QP and sparseness to speed training of support vector machines》

Using Analytic QP and Sparseness to Speed Training of Support - 豆丁网

相关推荐
机器之心30 分钟前
魔改AlphaZero后,《我的世界》AI老玩家问世,干活不用下指令
人工智能
Romantic Rose41 分钟前
你所拨打的电话是空号?手机状态查询API
大数据·人工智能
细心的莽夫1 小时前
Docker学习笔记
运维·笔记·后端·学习·docker·容器
羊小猪~~1 小时前
深度学习基础--CNN经典网络之InceptionV1研究与复现(pytorch)
网络·人工智能·pytorch·深度学习·神经网络·机器学习·cnn
硅谷秋水1 小时前
AutoEval:现实世界中通才机器人操作策略的自主评估
人工智能·机器学习·计算机视觉·机器人
weixin_457885821 小时前
DeepSeek的神经元革命:穿透搜索引擎算法的下一代内容基建
人工智能·算法·搜索引擎·deepseek·虎跃办公
大模型真好玩1 小时前
不写一行代码! VsCode+Cline+高德地图MCP Server 帮你搞定和女友的出行规划(附原理解析)
人工智能·python·mcp
再玩一会儿看代码1 小时前
pip 与 conda 的全面比较:Python 包管理的深度解析
经验分享·笔记·python·conda·课程设计·pip
Always_away1 小时前
数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记3
数据库·笔记·sql·学习
zskj_zhyl2 小时前
数据驱动的温暖守护:智慧康养平台如何实现 “千人千面” 的精准照护?
人工智能·科技·生活