核函数 <-- 内积 <-- 余弦相似

本文其实是为了讲核函数,由于核函数比较抽象,就从 余弦相似、内积 开始讲起,因为 核函数、内积、余弦相似 本质上都是一种相似性度量 的方式

内积 与 余弦相似度

内积

存在两个向量

 

a,b 内积为

余弦相似度

a·b = |a||b|cos(a, b)      

cos(a, b) = (a·b) / (|a||b|)

二者关系

1. 从上面公式可以看出,余弦相似性 其实是 内积的 归一化

2. 余弦相似性只考虑 向量夹角大小,而内积不仅考虑向量夹角大小,也考虑了向量的长度差

比如两个向量 A 和 B,A=(1,1,0) B=(0, 1, 1),AB余弦相似度为 1/(sqrt(2) * sqrt(2)) = 1/2,
余弦相似度不考虑向量长度,(1,1,0) 和 (0, 3, 3) 的相似度 等于 AB的相似度

但是,如果入股向量的长度对相似性有真实影响,那么 A(1, 1) B(4, 4) C(5, 5) 三个向量,相似度相同,但 BC 内积 大于 AB 内积,故 BC 更相似

核函数

官方定义

设 X 是输入空间(欧式空间或者离散集合),H 是特征空间(希尔伯特空间),

存在一个从 X 到 H 的映射 φ(X): X→H,

使得对所有的 x、y€X,均有 k(x, y) = φ(x) · φ(y),

则称 k(x, y) 为核函数

实例解释

假设 A=(1, 2)^T、B=(3,4)^T,构造一个映射 phi(cdot)=(x_1^2,sqrt{2}x_1x_2,x_2^2)^T,则可知

egin{aligned} &phi(A)=(1,2sqrt{2},4)^T\ &phi(B)=(9,12sqrt{2},16)^T end{aligned}\

因此通过映射 phi(cdot) 将点 A、B 从二维平面升维到三维空间。然后计算

egin{aligned} phi(A)^Tphi(B)&=1	imes9+2sqrt{2}	imes12sqrt{2}+4	imes16\ &=9+48+64\ &=121 end{aligned}\

上述运算是在映射后的高维空间下做内积,

那么是否能直接在原始的空间中进行相应的运算,使得低维情况下的运算结果等于高维情况下的运算结果呢?

答案是肯定的。可以通过核函数 k(x,y)=(x^Ty)^2 来实现

 egin{aligned} k(A,B)&=(A^TB)^2\ &=(1	imes3+2	imes4)^2\&=121 end{aligned}\

是不是很神奇,低维空间和高维空间居然通过核函数巧妙的联通起来了

优点

1. 避免了维度灾难,也就是说高维空间中的运算计算量很大呈指数级别复杂度,难以解决;低维空间中的运算计算量很小,但是两者的最终结果是一致的。

例如上述计算过程,高维空间中执行了11次乘法运算、2次根号运算和2次加法运算,低维空间中仅执行了3次乘法运算和1次加法运算,要知道这才二维空间映射到三维空间如果映射到 n 维空间呢?

2. 核函数使得我们不需要显式计算每一个 φ(x),甚至不需要知道 φ(·) 长什么样,就能直接求出 φ(x)Tφ(y)

常用核函数

未完待续...

参考资料:

https://www.cnblogs.com/lzhu/p/10405091.html  内积

https://blog.csdn.net/kyle1314608/article/details/104582467   内积与余弦相似关系

https://www.zhihu.com/question/24627666  知乎 - 核函数的定义和作用是什么?

https://zhuanlan.zhihu.com/p/47541349  核函数粗浅的理解

https://zhuanlan.zhihu.com/p/30445271  专家坐堂:机器学习中对核函数的理解

原文地址:https://www.cnblogs.com/yanshw/p/14948528.html