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


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

    内积 与 余弦相似度

    内积

    存在两个向量

     

    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  专家坐堂:机器学习中对核函数的理解

  • 相关阅读:
    冒泡排序
    获取某年某月有多少天 & 常用日期转换
    left join,right join ,inner join
    Left join加上where条件的困惑
    ORACLE查询练习
    Ch25 文件和注册表操作(2)-- 读写文件
    Ch25 文件和注册表操作(1)--文件系统
    C#入门经典札记_Ch05变量的更多内容
    C#入门经典札记_Ch04流程控制
    C#入门经典札记_Ch03变量和表达式
  • 原文地址:https://www.cnblogs.com/yanshw/p/14948528.html
Copyright © 2020-2023  润新知