天天看点

计算机视觉面试考点(15)核函数

计算机视觉工程师在面试过程中主要考察三个内容:图像处理、机器学习、深度学习。然而,各类资料纷繁复杂,或是简单的知识点罗列,或是有着详细数学推导令人望而生畏的大部头。为了督促自己学习,也为了方便后人,决心将常考必会的知识点以通俗易懂的方式设立专栏进行讲解,努力做到长期更新。此专栏不求甚解,只追求应付一般面试。希望该专栏羽翼渐丰之日,可以为大家免去寻找资料的劳累。每篇介绍一个知识点,没有先后顺序。想了解什么知识点可以私信或者评论,如果重要而且恰巧我也能学会,会尽快更新。最后,每一个知识点我会参考很多资料。考虑到简洁性,就不引用了。如有冒犯之处,联系我进行删除或者补加引用。在此先提前致歉了!

由来

两个角度

1.将非线性问题转换为线性问题

左图需要用非线性的曲线分类

并不是说这样不行

只是有些问题要求必须线性分类

比如,SVM就需要超平面分类(超平面就是线性的)

将特征空间提高维度

就可以用线性的平面进行分类

计算机视觉面试考点(15)核函数

2.低维特征空间表征能力不够

有时候不需要一定转换为线性问题

但是,低维空间的表征能力较弱

将特征提升维度,可以提升模型的表达能力

抽象例子:

用几条腿,是否下蛋对动物进行分类,两维特征

用几条腿,是否下蛋,几条腿乘是否下蛋对动物分类,三维特征

我无法说清楚几条腿乘是否下蛋是个什么特征,这也是高维特征的一个体现吧

后者对特征进行了简单的组合,增加了一个特征维度,增强了模型的表达能力

具体例子:

我们在K-Means中需要计算点和质心的距离

以欧式距离为例

d=(x1-x2)^2+(y1-y2)^2

x和y代表两个维度的特征

以上方法相当于将每个维度的特征独立了

换个做法

(x1y1-x2y2)^2+x1y2(随便编的式子)

将特征融合,就增加了维度,提升了表征能力

原理

我们通过Φ()函数实现特征从低维到高维的映射

但是这并不是核函数!

比如现在有两维的特征,x,y

我们使用Φ()进行映射,组成了三维特征,x,y,xy

对于A样本,特征为Φ(xa,ya)=xa+ya+xa*ya(式子编的,可能是它们的任意组合)

对于B样本,特征为Φ(xb,yb)=xb+yb+xb*yb

在一些求解过程中,我们经常要计算<Φ(A),Φ(B)>

点积:<(x1,x2,x3),(x4,x5,x6)>=x1x4+x2x5+x3x6

那么核函数的作用就是

K((xa,ya),(xb,yb))=<Φ(xa,ya),Φ(xb,yb)>

所以说,核函数和映射没有关系,它只是一个计算工具

进一步思考

如果有了核函数

我们就不需要计算Φ(xa,ya),Φ(xb,yb)

再进一步

我们甚至不需要知道Φ()是什么

我们只需要指定一个K()

只要K()满足核函数的数学要求,它就间接实现了映射的功能

那么我们为什么不跳过Φ()而直接使用核函数K()呢?

这就是核函数的原理和意义

常用核函数

计算机视觉面试考点(15)核函数

其中v1和v2是两个样本对应的特征

至于用哪个核函数?

除非是被做烂了的模型

否则慢慢试吧

这是世界性难题

当然存在规律,但是我的能力达不到了。。。

欢迎讨论 欢迎吐槽

继续阅读