核函数的理解一
来源:互联网 发布:知乎 汽车金融风控 编辑:程序博客网 时间:2024/06/16 11:24
首先给出官方核函数的定义,其定义如下(可参考统计学习方法):
设X是输入空间(欧氏空间或离散集合),Η为特征空间(希尔伯特空间),如果存在一个从X到Η的映射
φ(x): X→Η
使得对所有的x,y∈X,函数Κ(x,y)=φ(x)∙φ(y),
则称Κ(x,y)为核函数,φ(x)为映射函数,φ(x)∙φ(y)为x,y映射到特征空间上的内积。
在该定义中,涉及到几个概念:输入空间、特征空间、以及Mercer's condition。那先从空间说起。简单来说,常见的空间有欧式空间,集合(离散),赋范空间,希尔伯特空间。常见的欧式空间,即平常我们见到1,2……n维且满足可度量条件的空间(注:也可查看欧式五大公理)。而赋范空间通俗的理解就是距离+线性结构+范数=赋范空间,而在赋范空间+内积运算+完备性=希尔伯特空间。关
而百度百科上的定义:
支持向量机通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间。特征空间的维数可能非常高。如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(x, x′) ,它恰好等于在高维空间中这个内积,即K( x, x′) =<φ( x) ⋅φ( x′) > 。那么支持向量机就不用计算复杂的非线性变换,而由这个函数 K(x, x′) 直接得到非线性变换的内积,使大大简化了计算。这样的函数 K(x, x′) 称为核函数
举例,我们现在考虑核函数,即“内积平方”。
这里面是二维空间中的两个点。
这个核函数对应着一个二维空间到三维空间的映射,它的表达式是:
可以验证在三维空间下的两个点的内积公式,
如上面的例子所说,核函数的作用就是隐含着一个从低维空间到高维空间的映射,而这个映射可以把低维空间中线性不可分的两类点变成线性可分的。事实中使用的核函数往往比这个例子复杂得多。它们对应的映射并不一定能够显式地表达出来;它们映射到的高维空间的维数也比我举的例子(三维)高得多,甚至是无穷维的。这样,就可以期待原来并不线性可分的两类点变成线性可分的了。
在机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类:
1) 线性:
2) 多项式:
3) Radial basis function:
4) Sigmoid:
- 核函数的理解一
- Socket中send函数的理解(一)
- Socket中send函数的理解(一)
- 对核函数的理解
- 对于核函数的理解
- 关于核函数的理解
- 《深入理解计算机系统》第八章 (一)关于子进程创建函数fork的理解
- WebService的理解(一)
- 多线程的理解一
- svm核函数的理解和选择
- SVM中核函数kernels的理解
- svm核函数的理解和选择
- SVM中核函数的理解
- 理解函数的默认函数
- 递归函数的理解
- 构造函数的理解
- 虚函数的理解
- fgets函数的理解
- 背包问题-四种解法(穷举,递归,二维数组,一维数组)
- Java性能优化指南,及唯品会的实战
- Java基础笔记Day21
- Windows DOS环境变量配置
- 连续第九十五天
- 核函数的理解一
- Java 自动装箱性能
- 学习重在架构
- python fabric实现远程部署
- java技术栈:一、java编程语言概述
- 关于navicat for mysql使用中出现的问题
- Webpack+Babel+React开发环境搭建
- JavaScript下
- Qt 之 模仿 QQ登陆界面——功能篇(一)