1 核函数K(kernel function)定义

核函数K(kernel function)就是指K(x, y) = <f(x), f(y)>,其中x和y是n维的输入值,f(·) 是从n维到m维的映射(通常,m>>n)。<x, y>是x和y的内积(inner product)(也称点积(dot product))。

举个小小栗子。
令 x = (x1, x2, x3, x4); y = (y1, y2, y3, y4);
令 f(x) = (x1x1, x1x2, x1x3, x1x4, x2x1, x2x2, x2x3, x2x4, x3x1, x3x2, x3x3, x3x4, x4x1, x4x2, x4x3, x4x4); f(y)亦然;
令核函数 K(x, y) = (<x, y>)^2.
接下来,让我们带几个简单的数字进去看看是个什么效果:x = (1, 2, 3, 4); y = (5, 6, 7, 8). 那么:
f(x) = ( 1, 2, 3, 4, 2, 4, 6, 8, 3, 6, 9, 12, 4, 8, 12, 16) ;
f(y) = (25, 30, 35, 40, 30, 36, 42, 48, 35, 42, 49, 56, 40, 48, 56, 64) ;
<f(x), f(y)> = 25+60+105+160+60+144+252+384+105+252+441+672+160+384+672+1024
= 4900.
如果我们用核函数呢?
K(x, y) = (5+12+21+32)^2 = 70^2 = 4900.
就是这样!

所以现在你看出来了吧,kernel其实就是帮我们省去在高维空间里进行繁琐计算的“简便运算法”。甚至,它能解决无限维空间无法计算的问题!因为有时f(·)会把n维空间映射到无限维空间去。

那么kernel在SVM究竟扮演着什么角色?
初学SVM时常常可能对kernel有一个误读,那就是误以为是kernel使得低维空间的点投射到高位空间后实现了线性可分。其实不然。这是把kernel和feature space transformation混为了一谈。(这个错误其实很蠢,只要你把SVM从头到尾认真推导一遍就不会犯我这个错。)


我们成功地找到了那个分界线,这就是最直观的kernel啦!
可能不太严谨,但是kernel大概就是这个意思,详细的数学定义楼上说的很好,就不赘述了。
引用一句这门课的教授的话:
“你在你的一生中可能会经历很多变故,可能会变成完全不同的另一个人,但是这个世界上只有一个你,我要怎样才能把不同的“你”分开呢?最直观的方法就是增加“时间”这个维度,虽然这个地球上只有一个你,这个你是不可分割的,但是“昨天在中国的你”和“今天在美国的你”在时间+空间这个维度却是可以被分割的。”

We know that everything in the world can be decomposed into the combination of the basic elements. For example, water is the combination of hydrogen and oxygen. Similarly, in mathematics, basis is used to represent various things in a simple and unified way.

In RnRn

space, we can use n independent vectors to represent any vector by linear combination. The n independent vectors can be viewed as a set of basis. There are infinite basis sets in RnRn

space. Among them, basis vectors that are orthogonal to each other are of special interests. For example, {ei}ni=1{ei}i=1n

is a special basis set with mutually orthogonal basis vectors in the same length, where eiei is a vector that has all zero entries except the iith entry which equals 1.
The inner product operator measures the similarity between vectors. For two vectors x and y , the inner product is the projection of one vector to the other.

3. Kernel Function

A function f(x)f(x)

can be viewed as an infinite vector, then for a function with two independent variables K(x,y)K(x,y)

, we can view it as an infinite matrix. Among them, if K(x,y)=K(y,x)K(x,y)=K(y,x)

and

 
∫∫f(x)K(x,y)f(y)dxdy≥0∫∫f(x)K(x,y)f(y)dxdy≥0

for any function ff

, then K(x,y)K(x,y)

is symmetric and positive definite, in which case K(x,y)K(x,y)

is a kernel function.



Here are some commonly used kernels:

  • Polynomial kernel K(x,y)=(γxTy+C)dK(x,y)=(γxTy+C)d
  • Gaussian radial basis kernel K(x,y)=exp(−γ∥x−y∥2)K(x,y)=exp⁡(−γ‖x−y‖2)
  • Sigmoid kernel K(x,y)=tanh(γxTy+C)K(x,y)=tanh⁡(γxTy+C)

3.1 补充知识

The hyperbolic functions are:

  • Hyperbolic sine:

     
    sinhx=ex−e−x2=e2x−12ex=1−e−2x2e−x.sinh⁡x=ex−e−x2=e2x−12ex=1−e−2x2e−x.
  • Hyperbolic cosine:
     
    coshx=ex+e−x2=e2x+12ex=1+e−2x2e−x.cosh⁡x=ex+e−x2=e2x+12ex=1+e−2x2e−x.
  • Hyperbolic tangent:
     
    tanhx=sinhxcoshx=ex−e−xex+e−x=1−e−2x1+e−2x.tanh⁡x=sinh⁡xcosh⁡x=ex−e−xex+e−x=1−e−2x1+e−2x.

4. Reproducing Kernel Hilbert Space

Treat {λi−−√ψi}∞i=1{λiψi}i=1∞

as a set of orthogonal basis and construct a Hilbert space HH

. Any function or vector in the space can be represented as the linear combination of the basis. Suppose f=∑∞i=1fiλi−−√ψif=∑i=1∞fiλiψi

we can denote ff

as an infinite vector in HH

: f=(f1,f2,...)THf=(f1,f2,...)HT

For another function g=(g1,g2,...)THg=(g1,g2,...)HT

, we have

< f,g >H=∑∞i=1figiH=∑i=1∞figi


5. A Simple Example

6 .

线性核函数

参考文献:
[1] 机器学习里的kernel是指什么? - 算法 - 知乎. http://www.zhihu.com/question/30371867 [2016-9-6]
[2] http://songcy.net/posts/story-of-basis-and-kernel-part-1/
[3] http://songcy.net/posts/story-of-basis-and-kernel-part-2/

[转]核函数K(kernel function)的更多相关文章

  1. 统计学习方法:核函数(Kernel function)

    作者:桂. 时间:2017-04-26  12:17:42 链接:http://www.cnblogs.com/xingshansi/p/6767980.html 前言 之前分析的感知机.主成分分析( ...

  2. Kernel Methods (2) Kernel function

    几个重要的问题 现在已经知道了kernel function的定义, 以及使用kernel后可以将非线性问题转换成一个线性问题. 在使用kernel 方法时, 如果稍微思考一下的话, 就会遇到以下几个 ...

  3. [].slice.call(k).filter(function(l) { return l != 0 });

    [].slice.call(k).filter(function(l) { return l != 0 }); 将类数组调用数组方法.

  4. 核函数(kernel function)

    百度百科的解释: 常用核函数: 1.线性核(Linear Kernel): 2.多项式核(Polynomial Kernel): 3.径向基核函数(Radial Basis Function),也叫高 ...

  5. kernel function

    下面这张图位于第一.二象限内.我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母.我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横.纵坐标是两个特征.显然,在这 ...

  6. Kernel PCA 原理和演示

    Kernel PCA 原理和演示 主成份(Principal Component Analysis)分析是降维(Dimension Reduction)的重要手段.每一个主成分都是数据在某一个方向上的 ...

  7. 支持向量机(SVM)的推导(线性SVM、软间隔SVM、Kernel Trick)

    线性可分支持向量机 给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为 \[w^{\ast }x+b^{\ast }=0\] 以及相应的决策函数 \[f\le ...

  8. 机器学习:SVM(核函数、高斯核函数RBF)

    一.核函数(Kernel Function) 1)格式 K(x, y):表示样本 x 和 y,添加多项式特征得到新的样本 x'.y',K(x, y) 就是返回新的样本经过计算得到的值: 在 SVM 类 ...

  9. 支持向量机 (二): 软间隔 svm 与 核函数

    软间隔最大化(线性不可分类svm) 上一篇求解出来的间隔被称为 "硬间隔(hard margin)",其可以将所有样本点划分正确且都在间隔边界之外,即所有样本点都满足 \(y_{i ...

随机推荐

  1. 网页编辑器CKEditor4.3.1+CKFinder2.4+JW Player6.7(视频播放器)集成

    CKEditor是使用最多的一款在线网页编辑器,不仅好用,而且功能强大.易扩展.浏览器兼容性好.另外,CKEditor网页编辑器经常更新.本程序使用的是最新稳定版CKEditor4.3.1,添加使用了 ...

  2. SQLAlchemy简介

    一.SQLAlchemy简介 SQLAlchemy是Python SQL工具包和对象关系映射器,是python中最著名的ORM(Object Relationship Mapping)框架,它简化了应 ...

  3. 网络编程——UDP协议和通信

    第1章 UDP与TCP协议 在介绍TCP/IP结构时,提到传输层的两个重要的高级协议,分别是UDP和TCP,其中UDP是User Datagram Protocol的简称,称为用户数据报协议,TCP是 ...

  4. java,从键盘输入个数不确定的整数,并判断输入的正数和负数的个数,输入0时结束程序。

    package study01; import java.util.Scanner; public class Test { public static void main(String[] args ...

  5. Oracle 函数 之 wm_concat()

    wm_concat() 把列转换成一行一列显示,使用wm_concat函数可以显示在一行一列. --1 建表 create table province_city ( province varchar ...

  6. C的xml编程-libxml2

    这里主要讲述libxml2在linux下的使用. (以下内容除了linux下的安装步骤是自己写的,其余均出自http://www.blogjava.net/wxb_nudt/archive/2007/ ...

  7. 垂直居中一个img

    { display:table-cell; text-align:center; vertical-align:middle; }

  8. ElasticSearch High Level REST API【4】多搜索

    1.Multi-Search多搜索请求 Multi-Search可同时添加多个search搜索请求,并行地在一个http请求中执行多个搜索请求,相较多次单请求查询可提升查询效率.ES客户掉通过mget ...

  9. 4- vue django restful framework 打造生鲜超市 -restful api 与前端源码介绍

    4- vue django restful framework 打造生鲜超市 -restful api 与前端源码介绍 天涯明月笙 关注 2018.02.20 19:23* 字数 762 阅读 135 ...

  10. MVP模式与MVVM模式

    1.mvp模式(Model层 Presenter层 View 层) Model层 :数据层(ajax请求) Presenter层:呈现层,view逻辑相关的控制层,控制层可以去调Model去发ajax ...